Fitbit Web API to Google Health API: every endpoint, mapped or not
Search all 121 endpoints in Fitbit's Web API reference (read 2026-11-05) and see what replaces each in the Google Health API, using only Google's own migration tables (read 2026-10-31): the data type, the method Google's endpoint table names, and the scopes. 60 endpoints map on both halves, 2 map their data but have no endpoint-type row, 2 have only a same-named discovery method, and 57 — friends, badges, alarms, goals, favorites, water and Fitbit's OAuth endpoints among them — are not in Google's tables, and the tool says so.
121 of 121 endpoints
- Mapped
Get AZM Time Series by Date
Active Zone Minutes (AZM) Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/active-zone-minutes/date/[date]/[period].jsonScope: activity
This endpoint returns the daily summary values over a period of time by specifying a date and time period.
Google Health API- Active Zone Minutes
active-zone-minutesGoogle’s row: “Active Zone Minutes”. On Fitbit’s page:active-zone-minutesrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Active Zone Minutes) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Active Zone Minutes
- Mapped
Get AZM Time Series by Interval
Active Zone Minutes (AZM) Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/active-zone-minutes/date/[start-date]/[end-date].jsonScope: activity
This endpoint returns the daily summary values over an interval by specifying a date range.
Google Health API- Active Zone Minutes
active-zone-minutesGoogle’s row: “Active Zone Minutes”. On Fitbit’s page:active-zone-minutesrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Active Zone Minutes) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Active Zone Minutes
- Mapped
Get Activity Time Series by Date
Activity Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/[resource-path]/date/[date]/[period].jsonScope: activity
Retrieves the activity data for a given resource over a period of time by specifying a date and time period. The response will include only the daily summary values.
Google Health API- Steps
stepsGoogle’s row: “Steps”. On Fitbit’s page:stepsrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints:dailyRollUp
- Distance
distanceGoogle’s row: “Distance”. On Fitbit’s page:distancerollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints:dailyRollUp
- Floors
floorsGoogle’s row: “Floors”. On Fitbit’s page:floorsrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/floors/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/floors/dataPoints:dailyRollUp
- Altitude
altitudeGoogle’s row: “Elevation”. On Fitbit’s page:elevationrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints:dailyRollUp
- Active Energy Burned
active-energy-burnedGoogle’s row: “Activity Calories”. On Fitbit’s page:activityCaloriesRepresents the calories burned during active periods, inclusive of BMR for those periods. In the Google Health API, this can be reconstructed by adding BMR to the `active-energy-burned` data type (which tracks activity-only burn, excluding basal rate).rollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-energy-burned/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-energy-burned/dataPoints:dailyRollUp
- Basal Energy Burned
basal-energy-burnedGoogle’s row: “Activity `caloriesBMR`”. On Fitbit’s page:caloriesBMRThe calories burned due to Basal Metabolic Rate (BMR) over a specific period of time.Google’s migration table names basal-energy-burned, but Google’s data-types table does not list it, so its methods and scopes are unknown here. - Sedentary Period
sedentary-periodGoogle’s row: “Activity time series minutes sedentary”. On Fitbit’s page:minutesSedentaryrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/sedentary-period/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/sedentary-period/dataPoints:dailyRollUp
- Swim Lengths Data
swim-lengths-dataGoogle’s row: “Activity time series swimming strokes”. On Fitbit’s page:swimming-strokesrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/swim-lengths-data/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/swim-lengths-data/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Steps, Distance, Floors, Elevation, Activity Calories, Activity `caloriesBMR`, Activity time series minutes sedentary, Activity time series swimming strokes) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Steps
- Mapped
Get Activity Time Series by Date Range
Activity Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/[resource-path]/date/[start-date]/[end-date].jsonScope: activity
Retrieves the activity data for a given resource over a period of time by specifying a date range. The response will include only the daily summary values.
Google Health API- Steps
stepsGoogle’s row: “Steps”. On Fitbit’s page:stepsrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints:dailyRollUp
- Distance
distanceGoogle’s row: “Distance”. On Fitbit’s page:distancerollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints:dailyRollUp
- Floors
floorsGoogle’s row: “Floors”. On Fitbit’s page:floorsrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/floors/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/floors/dataPoints:dailyRollUp
- Altitude
altitudeGoogle’s row: “Elevation”. On Fitbit’s page:elevationrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints:dailyRollUp
- Active Energy Burned
active-energy-burnedGoogle’s row: “Activity Calories”. On Fitbit’s page:activityCaloriesRepresents the calories burned during active periods, inclusive of BMR for those periods. In the Google Health API, this can be reconstructed by adding BMR to the `active-energy-burned` data type (which tracks activity-only burn, excluding basal rate).rollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-energy-burned/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-energy-burned/dataPoints:dailyRollUp
- Basal Energy Burned
basal-energy-burnedGoogle’s row: “Activity `caloriesBMR`”. On Fitbit’s page:caloriesBMRThe calories burned due to Basal Metabolic Rate (BMR) over a specific period of time.Google’s migration table names basal-energy-burned, but Google’s data-types table does not list it, so its methods and scopes are unknown here. - Sedentary Period
sedentary-periodGoogle’s row: “Activity time series minutes sedentary”. On Fitbit’s page:minutesSedentaryrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/sedentary-period/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/sedentary-period/dataPoints:dailyRollUp
- Swim Lengths Data
swim-lengths-dataGoogle’s row: “Activity time series swimming strokes”. On Fitbit’s page:swimming-strokesrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/swim-lengths-data/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/swim-lengths-data/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Steps, Distance, Floors, Elevation, Activity Calories, Activity `caloriesBMR`, Activity time series minutes sedentary, Activity time series swimming strokes) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Steps
- Not in Google's tables
Create Activity Goal
Activity
Fitbit Web APIPOST /1/user/[user-id]/activities/goals/[period].jsonScope: activity
Creates or updates a user's daily or weekly activity goal.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Create Activity Log
Activity
Fitbit Web APIPOST /1/user/[user-id]/activities.jsonScope: activity
Creates a log entry containing the Fitbit user's activity or private custom activity.
Google Health API- Exercise
exerciseGoogle’s row: “Recorded activity”. On Fitbit’s page:activityNameRecorded workouts or exercise sessions, which include start/end times, activity types, and session metrics.patchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Recorded activity) and the endpoint type (“CREATE & UPDATE Logs”).
- Exercise
- Not in Google's tables
Create Favorite Activity
Activity
Fitbit Web APIPOST /1/user/[user-id]/activities/favorite/[activity-id].jsonScope: activity
Adds the activity with the given ID to user's list of favorite activities.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Delete Activity Log
Activity
Fitbit Web APIDELETE /1/user/[user-id]/activities/[activity-log-id].jsonScope: activity
Deletes a user’s activity log entry with the given ID.
Google Health API- Exercise
exerciseGoogle’s row: “Recorded activity”. On Fitbit’s page:activity-log-idRecorded workouts or exercise sessions, which include start/end times, activity types, and session metrics.batchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints:batchDelete
Endpoint type: “DELETE Logs” → batchDelete method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Recorded activity) and the endpoint type (“DELETE Logs”).
- Exercise
- Not in Google's tables
Delete Favorite Activity
Activity
Fitbit Web APIDELETE /1/user/[user-id]/activities/favorite/[activity-id].jsonScope: activity
Removes the activity from a user’s list of favorite activities.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Activity Goals
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/goals/[period].jsonScope: activity
Retrieves a user's current daily or weekly activity goals.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Activity Log List
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/list.jsonScope: activity
Retrieves a list of a user's activity log entries before or after a given day.
Google Health API- Exercise
exerciseGoogle’s row: “Recorded activity”. On Fitbit’s page:activityNameRecorded workouts or exercise sessions, which include start/end times, activity types, and session metrics.listGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints
Endpoint type: “GET (Log List)” → list method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Recorded activity) and the endpoint type (“GET (Log List)”).
- Exercise
- Name match
Get Activity TCX
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/[log-id].tcxScope: activity and location
The Training Center XML (TCX) is a data exchange format that contains GPS, heart rate, and lap data. This endpoint retrieves the details of a user's location using GPS and heart rate data during a logged exercise.
Google Health APIusers.dataTypes.dataPoints.exportExerciseTcxGET v4/users/{usersId}/dataTypes/{dataTypesId}/dataPoints/{dataPointsId}:exportExerciseTcx
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonly.location.readonlyGoogle's migration tables do not list this endpoint. The discovery document has a method of the same name; that pairing is this site's name match, not Google's statement.
- Not in Google's tables
Get Activity Type
Activity
Fitbit Web APIGET /1/activities/[activity-id].jsonScope: activity
Retrieves the details for a single activity from the Fitbit activities database in the format requested. If available, activity level details will display.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get All Activity Types
Activity
Fitbit Web APIGET /1/activities.jsonScope: activity
Retrieves a list of all valid Fitbit public activities and the private, user-created activities from the Fitbit activities database in the format requested. If available, activity level details will display.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Daily Activity Summary
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/date/[date].jsonScope: activity
Retrieves a summary and list of a user’s activities and activity log entries for a given day.
Google Health API- Total Calories
total-caloriesGoogle’s row: “Activity `caloriesOut`”. On Fitbit’s page:caloriesOutThe complete number of calories burned by a user over a period of time, inclusive of basal metabolic rate and active energy burned.dailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/total-calories/dataPoints:dailyRollUp
- Basal Energy Burned
basal-energy-burnedGoogle’s row: “Activity `caloriesBMR`”. On Fitbit’s page:caloriesBMRThe calories burned due to Basal Metabolic Rate (BMR) over a specific period of time.Google’s migration table names basal-energy-burned, but Google’s data-types table does not list it, so its methods and scopes are unknown here. - Active Energy Burned
active-energy-burnedGoogle’s row: “Activity Calories”. On Fitbit’s page:activityCaloriesRepresents the calories burned during active periods, inclusive of BMR for those periods. In the Google Health API, this can be reconstructed by adding BMR to the `active-energy-burned` data type (which tracks activity-only burn, excluding basal rate).dailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-energy-burned/dataPoints:dailyRollUp
- Steps
stepsGoogle’s row: “Steps”. On Fitbit’s page:stepsdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints:dailyRollUp
- Floors
floorsGoogle’s row: “Floors”. On Fitbit’s page:floorsdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/floors/dataPoints:dailyRollUp
- Altitude
altitudeGoogle’s row: “Elevation”. On Fitbit’s page:elevationdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints:dailyRollUp
- Daily Resting Heart Rate
daily-resting-heart-rateGoogle’s row: “Resting heart rate”. On Fitbit’s page:restingHeartRateGoogle’s endpoint table names dailyRollup, which Google’s data-types table does not list for daily-resting-heart-rate.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Activity `caloriesOut`, Activity `caloriesBMR`, Activity Calories, Steps, Floors, Elevation, Resting heart rate) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Total Calories
- Not in Google's tables
Get Favorite Activities
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/favorite.jsonScope: activity
Retrieves a list of a user's favorite activities.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Frequent Activities
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/frequent.jsonScope: activity
Retrieves a list of a user's frequent activities.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Lifetime Stats
Activity
Fitbit Web APIGET /1/user/[user-id]/activities.jsonScope: activity
Retrieves the user's activity statistics.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Recent Activity Types
Activity
Fitbit Web APIGET /1/user/[user-id]/activities/recent.jsonScope: activity
Retrieves a list of a user's recent activities types logged with some details of the last activity log of that type.
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Workout Summary
Activity
Fitbit Web APIGET /1/user/-/activities/[logId]/workout-summaryScope: activity
Exposes the ground contact time and step cadence collected during Run workouts:
Google Health APIScopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Blood Glucose by Interval
Blood Glucose
Fitbit Web APIGET /1/user/-/health/metrics/glucose/values/[startDate]/[endDate].jsonScope: blood_glucose
Retrieves the user's daily, min, max, sum and average values of blood glucose levels within an interval.
Google Health API- Blood Glucose
blood-glucoseGoogle’s row: “Blood Glucose”. On Fitbit’s page:glucoserollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/blood-glucose/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/blood-glucose/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Blood Glucose) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Blood Glucose
- Mapped
Get Body Time Series by Date
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/[resource]/date/[date]/[period].jsonScope: weight
Retrieves a list of all user's bmi, body fat, or weight for a given period.
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:dailyRollUp
- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight, Body fat) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Weight
- Mapped
Get Body Time Series by Date Range
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/[resource]/date/[begin-date]/[end-date].jsonScope: weight
Retrieves a list of all user's bmi, body fat, or weight for a given date range.
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:dailyRollUp
- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight, Body fat) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Weight
- Mapped
Get Body Fat Time Series by Date
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/log/fat/date/[date]/[period].jsonScope: weight
Retrieves a list of all user's body fat log entries for a given period.
Google Health API- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Body fat) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Body Fat
- Mapped
Get Body Fat Time Series by Date Range
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/log/fat/date/[start-date]/[end-date].jsonScope: weight
Retrieves a list of all user's body fat log entries for a given date range.
Google Health API- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Body fat) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Body Fat
- Mapped
Get Weight Time Series by Date
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/log/weight/date/[date]/[period].jsonScope: weight
Retrieves a list of all user's weight log entries for a given period.
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Weight
- Mapped
Get Weight Time Series by Date Range
Body Time Series
Fitbit Web APIGET /1/user/[user-id]/body/log/weight/date/[start-date]/[end-date].jsonScope: weight
Retrieves a list of all user's weight log entries for a given date range.
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Weight
- Not in Google's tablesFitbit Web API
POST /1/user/[user-id]/body/log/fat/goal.jsonScope: weight
Create or update a user's body fat goal.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- MappedFitbit Web API
POST /1/user/[user-id]/body/log/fat.jsonScope: weight
Creates a body fat log entry.
Google Health API- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatpatchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Body fat) and the endpoint type (“CREATE & UPDATE Logs”).
- Body Fat
- Not in Google's tablesFitbit Web API
POST /1/user/[user-id]/body/log/weight/goal.jsonScope: weight
Creates or updates a user's weight goal.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- MappedFitbit Web API
POST /1/user/[user-id]/body/log/weight.jsonScope: weight
Creates a weight log entry
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightpatchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight) and the endpoint type (“CREATE & UPDATE Logs”).
- Weight
- MappedFitbit Web API
DELETE /1/user/[user-id]/body/log/fat/[body-fat-log-id].jsonScope: weight
Deletes a body fat log entry
Google Health API- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:body-fat-log-idbatchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:batchDelete
Endpoint type: “DELETE Logs” → batchDelete method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Body fat) and the endpoint type (“DELETE Logs”).
- Body Fat
- MappedFitbit Web API
DELETE /1/user/[user-id]/body/log/weight/[weight-log-id].jsonScope: weight
Deletes a Weight log entry
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weight-log-idbatchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:batchDelete
Endpoint type: “DELETE Logs” → batchDelete method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight) and the endpoint type (“DELETE Logs”).
- Weight
- Not in Google's tables
Get Body Goals
Body
Fitbit Web APIGET /1/user/[user-id]/body/log/[goal-type]/goal.jsonScope: weight
Retrieves a user's body fat and weight goals.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Body Fat Log
Body
Fitbit Web APIGET /1/user/[user-id]/body/log/fat/date/[date].jsonScope: weight
Retrieves a list of all user's body fat log entries for a given date.
Google Health API- Body Fat
body-fatGoogle’s row: “Body fat”. On Fitbit’s page:fatdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/body-fat/dataPoints:dailyRollUp
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Body fat) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Body Fat
- Mapped
Get Weight Log
Body
Fitbit Web APIGET /1/user/[user-id]/body/log/weight/date/[date].jsonScope: weight
Retrieves a list of all user's weight log entries for a given date.
Google Health API- Weight
weightGoogle’s row: “Weight”. On Fitbit’s page:weightdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/weight/dataPoints:dailyRollUp
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Weight) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Weight
- Not in Google's tables
Get Breathing Rate Summary by Date
Breathing Rate
Fitbit Web APIGET /1/user/[user-id]/br/date/[date].jsonScope: respiratory_rate
This endpoint returns average breathing rate data for a single date. Breathing Rate data applies specifically to a user’s “main sleep,” which is the longest single period of time during which they were asleep on a given date.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Breathing Rate Summary by Interval
Breathing Rate
Fitbit Web APIGET /1/user/[user-id]/br/date/[start-date]/[end-date].jsonScope: respiratory_rate
This endpoint returns average breathing rate data for a date range. Breathing Rate data applies specifically to a user’s “main sleep,” which is the longest single period of time during which they were asleep on a given date.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get VO2 Max Summary by Date
Cardio Fitness Score (VO2 Max)
Fitbit Web APIGET /1/user/[user-id]/cardioscore/date/[date].jsonScope: cardio_fitness
This endpoint returns the Cardio Fitness Score (also known as VO2 Max) data for a single date. VO2 Max values will be shown as a range if no run data is available or a single numeric value if the user uses a GPS for runs. See Additional Information for further context.
Google Health API- VO2 Max
vo2-maxGoogle’s row: “VO2 Max value”. On Fitbit’s page:vo2MaxGoogle’s endpoint table names dailyRollup, which Google’s data-types table does not list for vo2-max.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (VO2 Max value) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- VO2 Max
- Mapped
Get VO2 Max Summary by Interval
Cardio Fitness Score (VO2 Max)
Fitbit Web APIGET /1/user/[user-id]/cardioscore/date/[start-date]/[end-date].jsonScope: cardio_fitness
This endpoint returns the Cardio Fitness Score (also know as VO2 Max) data for a date range. VO2 Max values will be shown as a range if no run data is available or a single numeric value if the user uses a GPS for runs. See Additional Information for further context.
Google Health API- VO2 Max
vo2-maxGoogle’s row: “VO2 Max value”. On Fitbit’s page:vo2MaxGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for vo2-max.
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (VO2 Max value) and the endpoint type (“GET (Time Series) by Date or Interval”).
- VO2 Max
- Not in Google's tables
Create Alarms
Devices
Fitbit Web APIPOST /1/user/[user-id]/devices/tracker/[tracker-id]/alarms.jsonScope: settings
Creates an alarm for the given device. This endpoint is supported for trackers that support alarms.
Google Health APIScopes:
.settings.readonly.settings.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Delete Alarm
Devices
Fitbit Web APIDELETE /1/user/[user-id]/devices/tracker/[tracker-id]/alarms/[alarm-id].jsonScope: settings
Deletes an alarm on the given device. This endpoint is supported for trackers that support alarms.
Google Health APIScopes:
.settings.readonly.settings.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Alarms
Devices
Fitbit Web APIGET /1/user/[user-id]/devices/tracker/[tracker-id]/alarms.jsonScope: settings
Retrieves the alarms enabled for a specific device. This endpoint is supported for trackers that support alarms.
Google Health APIScopes:
.settings.readonly.settings.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Devices
Devices
Fitbit Web APIGET /1/user/[user-id]/devices.jsonScope: settings
Retrieves a list of Fitbit devices paired to a user's account.
Google Health APIusers.pairedDevices.getGET v4/users/{usersId}/pairedDevices/{pairedDevicesId}users.pairedDevices.listGET v4/users/{usersId}/pairedDevices
Endpoint type: “Get Devices” → users.pairedDevices returns the list of paired devices
Scopes:
.settings.readonly.settings.writeonlyGoogle's endpoint table names this endpoint (“Get Devices”).
- Not in Google's tables
Update Alarm
Devices
Fitbit Web APIPOST /1/user/[user-id]/devices/tracker/[tracker-id]/alarms/[alarm-id].jsonScope: settings
Updates an alarm on the given device. This endpoint is supported for trackers that support alarms.
Google Health APIScopes:
.settings.readonly.settings.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get ECG Log List
Electrocardiogram (ECG)
Fitbit Web APIGET /1/user/[user-id]/ecg/list.jsonScope: electrocardiogram
This endpoint retrieves a list of the user’s Electrocardiogram (ECG) log entries before or after a given day.
Google Health API- Electrocardiogram (ECG)
electrocardiogramGoogle’s row: “Electrocardiogram (ECG)”. On Fitbit’s page:ECGlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/electrocardiogram/dataPoints
Endpoint type: “GET (Log List)” → list method
Scopes:
.ecg.readonlyGoogle's migration tables cover both halves: the data (Electrocardiogram (ECG)) and the endpoint type (“GET (Log List)”).
- Electrocardiogram (ECG)
- Not in Google's tablesFitbit Web API
GET /1.1/user/[user-id]/friends.jsonScope: social
This endpoint allows the application to retrieves a list of the specified Fitbit user's friends. This scope does not provide access to the friend's Fitbit data. Those users will need to individually consent to share their data with your application.
Google Health APINot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tablesFitbit Web API
GET /1.1/user/-/leaderboard/friends.jsonScope: social
This endpoint returns the user's friend leaderboard in the format requested using units in the unit system which corresponds to the Accept-Language header provided. This scope does not provide access to the friend's Fitbit data. Those users will need to individually consent to share their data with your application.
Google Health APINot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Heart Rate Time Series by Date
Heart Rate Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/heart/date/[date]/[period].jsonScope: heartrate
Retrieves the heart rate time series data over a period of time by specifying a date and time period. The response will include only the daily summary values.
Google Health API- Daily Resting Heart Rate
daily-resting-heart-rateGoogle’s row: “Resting heart rate”. On Fitbit’s page:restingHeartRateGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for daily-resting-heart-rate. - Calories In Heart Rate Zone
calories-in-heart-rate-zoneGoogle’s row: “`caloriesOut` in each heart rate zone”. On Fitbit’s page:caloriesOutrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/calories-in-heart-rate-zone/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/calories-in-heart-rate-zone/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Resting heart rate, `caloriesOut` in each heart rate zone) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Daily Resting Heart Rate
- Mapped
Get Heart Rate Time Series by Date Range
Heart Rate Time Series
Fitbit Web APIGET /1/user/[user-id]/activities/heart/date/[start-date]/[end-date].jsonScope: heartrate
Retrieves the heart rate time series data over a period of time by specifying a date range. The response will include only the daily summary values.
Google Health API- Daily Resting Heart Rate
daily-resting-heart-rateGoogle’s row: “Resting heart rate”. On Fitbit’s page:restingHeartRateGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for daily-resting-heart-rate. - Calories In Heart Rate Zone
calories-in-heart-rate-zoneGoogle’s row: “`caloriesOut` in each heart rate zone”. On Fitbit’s page:caloriesOutrollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/calories-in-heart-rate-zone/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/calories-in-heart-rate-zone/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Resting heart rate, `caloriesOut` in each heart rate zone) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Daily Resting Heart Rate
- Mapped
Get HRV Summary by Date
Heart Rate Variability
Fitbit Web APIGET /1/user/[user-id]/hrv/date/[date].jsonScope: heartrate
This endpoint returns the Heart Rate Variability (HRV) data for a single date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
Google Health API- Daily Heart Rate Variability
daily-heart-rate-variabilityGoogle’s row: “HRV summary”. On Fitbit’s page:dailyRmssdGoogle’s endpoint table names dailyRollup, which Google’s data-types table does not list for daily-heart-rate-variability.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (HRV summary) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Daily Heart Rate Variability
- Mapped
Get HRV Summary by Interval
Heart Rate Variability
Fitbit Web APIGET /1/user/[user-id]/hrv/date/[startDate]/[endDate].jsonScope: heartrate
This endpoint returns the Heart Rate Variability (HRV) data for a date range. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
Google Health API- Daily Heart Rate Variability
daily-heart-rate-variabilityGoogle’s row: “HRV summary”. On Fitbit’s page:dailyRmssdGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for daily-heart-rate-variability.
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (HRV summary) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Daily Heart Rate Variability
- Mapped
Get Activity Intraday by Date
Intraday
Fitbit Web APIGET /1/user/[user-id]/activities/[resource]/date/[date]/1d/[detail-level].jsonGET /1/user/[user-id]/activities/[resource]/date/[date]/1d/[detail-level]/time/[start-time]/[end-time].jsonScope: activity
This endpoint retrieves the activity intraday time series data for a given resource on a specific date or 24 hour period. Intraday support can extend the detail-level response to include 1min, 5min and 15min for Activity.
Google Health API- Steps
stepsGoogle’s row: “Steps”. On Fitbit’s page:stepslistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints
- Distance
distanceGoogle’s row: “Distance”. On Fitbit’s page:distancelistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints
- Floors
floorsGoogle’s row: “Floors”. On Fitbit’s page:floorsGoogle’s endpoint table names list, which Google’s data-types table does not list for floors. - Altitude
altitudeGoogle’s row: “Elevation”. On Fitbit’s page:elevationlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Steps, Distance, Floors, Elevation) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Steps
- MappedFitbit Web API
GET /1/user/[user-id]/activities/[resource]/date/[start-date]/[end-date]/[detail-level].jsonGET /1/user/[user-id]/activities/[resource]/date/[start-date]/[end-date]/[detail-level]/time/[start-time]/[end-time].jsonScope: activity
This endpoint retrieves the activity intraday time series data for a given resource on a specific date range for a 24 hour period. Intraday support can extend the detail-level response to include 1min, 5min and 15min for Activity.
Google Health API- Steps
stepsGoogle’s row: “Steps”. On Fitbit’s page:stepslistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/steps/dataPoints
- Distance
distanceGoogle’s row: “Distance”. On Fitbit’s page:distancelistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/distance/dataPoints
- Floors
floorsGoogle’s row: “Floors”. On Fitbit’s page:floorsGoogle’s endpoint table names list, which Google’s data-types table does not list for floors. - Altitude
altitudeGoogle’s row: “Elevation”. On Fitbit’s page:elevationlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/altitude/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Steps, Distance, Floors, Elevation) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Steps
- Mapped
Get AZM Intraday by Date
Intraday
Fitbit Web APIGET /1/user/[user-id]/activities/active-zone-minutes/date/[date]/1d/[detail-level].jsonGET /1/user/[user-id]/activities/active-zone-minutes/date/[date]/1d/[detail-level]/time/[start-time]/[end-time].jsonScope: activity
This endpoint retrieves the active zone minute (AZM) intraday time series data for a specific date or 24 hour period. Intraday support can extend the detail-level response to include 1min, 5min and 15min for Active Zone Minutes.
Google Health API- Active Zone Minutes
active-zone-minutesGoogle’s row: “Active Zone Minutes”. On Fitbit’s page:active-zone-minuteslistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Active Zone Minutes) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Active Zone Minutes
- Mapped
Get AZM Intraday by Interval
Intraday
Fitbit Web APIGET /1/user/[user-id]/activities/active-zone-minutes/date/[start-date]/[end-date]/[detail-level].jsonGET /1/user/[user-id]/activities/active-zone-minutes/date/[start-date]/[end-date]/[detail-level]/time/[start-time]/[end-time].jsonScope: activity
This endpoint retrieves the active zone minute (AZM) intraday time series data on a specific date range or 24 hour period. Intraday support can extend the detail-level response to include 1min, 5min and 15min for Active Zone Minutes.
Google Health API- Active Zone Minutes
active-zone-minutesGoogle’s row: “Active Zone Minutes”. On Fitbit’s page:active-zone-minuteslistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/active-zone-minutes/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.activity_and_fitness.readonly.activity_and_fitness.writeonlyGoogle's migration tables cover both halves: the data (Active Zone Minutes) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Active Zone Minutes
- Not in Google's tablesFitbit Web API
GET /1/user/[user-id]/br/date/[date]/all.jsonScope: respiratory_rate
This endpoint returns intraday breathing rate data for a specified date. It measures the average breathing rate throughout the day and categories your breathing rate by sleep stage. Sleep stages vary between light sleep, deep sleep, REM sleep, and full sleep.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tablesFitbit Web API
GET /1/user/[user-id]/br/date/[start-date]/[end-date]/all.jsonScope: respiratory_rate
This endpoint returns intraday breathing rate data for a date range. It measures the average breathing rate throughout the day and categories your breathing rate by sleep stage. Sleep stages vary between light sleep, deep sleep, REM sleep, and full sleep.
Google Health APIScopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Heart Rate Intraday by Date
Intraday
Fitbit Web APIGET /1/user/[user-id]/activities/heart/date/[date]/1d/[detail-level].jsonGET /1/user/[user-id]/activities/heart/date/[date]/1d/[detail-level]/time/[start-time]/[end-time].jsonScope: heartrate
This endpoint retrieves the heart rate intraday time series data on a specific date or 24 hour period. Intraday support can extend the detail-level response to include 1sec, 1min, 5min or 15min for Heart Rate.
Google Health API- Heart Rate
heart-rateGoogle’s row: “Heart Rate”. On Fitbit’s page:heartlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/heart-rate/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Heart Rate) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Heart Rate
- MappedFitbit Web API
GET /1/user/[user-id]/activities/heart/date/[start-date]/[end-date]/[detail-level].jsonGET /1/user/[user-id]/activities/heart/date/[start-date][end-date]/[detail-level]/time/[start-time]/[end-time].jsonScope: heartrate
This endpoint retrieves the heart rate intraday time series data on a specific date range for a 24 hour period. Intraday support can extend the detail-level response to include 1sec, 1min, 5min or 15min for Heart Rate.
Google Health API- Heart Rate
heart-rateGoogle’s row: “Heart Rate”. On Fitbit’s page:heartlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/heart-rate/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Heart Rate) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Heart Rate
- Mapped
Get HRV Intraday by Date
Intraday
Fitbit Web APIGET /1/user/[user-id]/hrv/date/[date]/all.jsonScope: heartrate
This endpoint returns the Heart Rate Variability (HRV) intraday data for a single date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. It measures the HRV rate at various times and returns Root Mean Square of Successive Differences (rmssd), Low Frequency (LF), High Frequency (HF), and Coverage data for a given measurement. Rmssd measures short-term variability in your heart rate while asleep. LF and HF capture the power in interbeat interval fluctuations within either high frequency or low frequency bands. Finally, coverage refers to data completeness in terms of the number of interbeat intervals.
Google Health API- Heart Rate Variability
heart-rate-variabilityGoogle’s row: “HRV Intraday”. On Fitbit’s page:rmssdlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/heart-rate-variability/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (HRV Intraday) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Heart Rate Variability
- Mapped
Get HRV Intraday by Interval
Intraday
Fitbit Web APIGET /1/user/[user-id]/hrv/date/[startDate]/[endDate]/all.jsonScope: heartrate
This endpoint returns the Heart Rate Variability (HRV) intraday data for a date range. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. It measures your HRV rate at various times and returns Root Mean Square of Successive Differences (rmssd), Low Frequency (LF), High Frequency (HF), and Coverage data for a given measurement. Rmssd measures short-term variability in your heart rate while asleep. LF and HF capture the power in interbeat interval fluctuations within either high frequency or low frequency bands. Finally, coverage refers to data completeness in terms of the number of interbeat intervals.
Google Health API- Heart Rate Variability
heart-rate-variabilityGoogle’s row: “HRV Intraday”. On Fitbit’s page:rmssdlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/heart-rate-variability/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (HRV Intraday) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Heart Rate Variability
- Mapped
Get SpO2 Intraday by Date
Intraday
Fitbit Web APIGET /1/user/[user-id]/spo2/date/[date]/all.jsonScope: oxygen_saturation
This endpoint returns the SpO2 intraday data for a single date. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date. Spo2 values are calculated on a 5-minute exponentially-moving average.
Google Health API- Oxygen Saturation
oxygen-saturationGoogle’s row: “SpO2 Intraday”. On Fitbit’s page:minutesReturns only validated minute-level SpO2 measurements and excludes readings flagged as invalid due to motion artifacts or low sensor confidence. Because the Fitbit Web API only excluded the 50% sentinel value, the Google Health API returns fewer data points for the same time range. For details, see Oxygen saturation filtering.listGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/oxygen-saturation/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (SpO2 Intraday) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Oxygen Saturation
- Mapped
Get SpO2 Intraday by Interval
Intraday
Fitbit Web APIGET /1/user/[user-id]/spo2/date/[start-date]/[end-date]/all.jsonScope: oxygen_saturation
This endpoint returns the SpO2 intraday data for a specified date range. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date. Spo2 values are calculated on a 5-minute exponentially-moving average.
Google Health API- Oxygen Saturation
oxygen-saturationGoogle’s row: “SpO2 Intraday”. On Fitbit’s page:minutesReturns only validated minute-level SpO2 measurements and excludes readings flagged as invalid due to motion artifacts or low sensor confidence. Because the Fitbit Web API only excluded the 50% sentinel value, the Google Health API returns fewer data points for the same time range. For details, see Oxygen saturation filtering.listGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/oxygen-saturation/dataPoints
Endpoint type: “GET (Intraday) where you are requesting granular data” → list method
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (SpO2 Intraday) and the endpoint type (“GET (Intraday) where you are requesting granular data”).
- Oxygen Saturation
- Mapped
Get IRN Alerts List
Irregular Rhythm Notifications
Fitbit Web APIGET /1/user/[user-id]/irn/alerts/list.jsonScope: irregular_rhythm_notifications
This endpoint returns a paginated list of Irregular Rhythm Notifications (IRN) alerts, as well as all of the alert tachograms. This endpoint will only return alerts that the user has read in the Fitbit app already, as that is meant as the primary entrypoint for viewing notifications.
Google Health API- Irregular Rhythm Notification
irregular-rhythm-notificationGoogle’s row: “Irregular Rhythm Notifications (IRN)”. On Fitbit’s page:IRNlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/irregular-rhythm-notification/dataPoints
Endpoint type: “GET (Log List)” → list method
Scopes:
.irn.readonlyGoogle's migration tables cover both halves: the data (Irregular Rhythm Notifications (IRN)) and the endpoint type (“GET (Log List)”).
- Irregular Rhythm Notification
- Name match
Get IRN Profile
Irregular Rhythm Notifications
Fitbit Web APIGET /1/user/[user-id]/irn/profile.jsonScope: irregular_rhythm_notifications
This endpoint returns the user state for Irregular Rhythm Notifications (IRN). The user state contains most information about the user’s current engagement with the feature, including onboarding progress and algorithm processing state.
Google Health APIusers.getIrnProfileGET v4/users/{usersId}/irnProfile
Scopes:
.irn.readonlyGoogle's migration tables do not list this endpoint. The discovery document has a method of the same name; that pairing is this site's name match, not Google's statement.
- Not in Google's tables
Get Nutrition Time Series by Date
Nutrition Time Series
Fitbit Web APIGET /1/user/[user-id]/foods/log/[resource]/date/[date]/[period].jsonScope: nutrition
Retrieves the food and water consumption data for a given resource over a period of time by specifying a date and time period. The response will include only the daily summary values.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Nutrition Time Series by Date Range
Nutrition Time Series
Fitbit Web APIGET /1/user/[user-id]/foods/log/[resource]/date/[start-date]/[end-date].jsonScope: nutrition
Retrieves the food and water consumption data for a given resource over a period of time by specifying a date range. The response will include only the daily summary values.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Add Favorite Foods
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log/favorite/[food-id].jsonScope: nutrition
Adds a food with the given ID to the user's list of favorite foods.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Create Food
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods.jsonScope: nutrition
Creates a new private food for a user.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Create Food Goal
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log/goal.jsonScope: nutrition
Creates or updates a user's daily calorie consumption or food plan goals.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Create Food Log
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log.jsonScope: nutrition
Creates a food log entry for a given day.
Google Health API- Nutrition Log
nutrition-logGoogle’s row: “Food Log”. On Fitbit’s page:foodIdpatchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/nutrition-log/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's migration tables cover both halves: the data (Food Log) and the endpoint type (“CREATE & UPDATE Logs”).
- Nutrition Log
- Not in Google's tables
Create Meal
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/meals.jsonScope: nutrition
Creates a meal with the given food.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Create Water Goal
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log/water/goal.jsonScope: nutrition
Creates or updates a user's daily water consumption goal.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Create Water Log
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log/water.jsonScope: nutrition
Create a user's water log entry.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Delete Custom Food
Nutrition
Fitbit Web APIDELETE /1/user/[user-id]/foods/[food-id].jsonScope: nutrition
Deletes a custom food created by the user.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Delete Favorite Foods
Nutrition
Fitbit Web APIDELETE /1/user/[user-id]/foods/log/favorite/[food-id].jsonScope: nutrition
Deletes a food with the given ID from the user's list of favorite foods.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Delete Food Log
Nutrition
Fitbit Web APIDELETE /1/user/[user-id]/foods/log/[food-log-id].jsonScope: nutrition
Deletes a user's food log entry using the given log ID.
Google Health API- Nutrition Log
nutrition-logGoogle’s row: “Food Log”. On Fitbit’s page:food-log-idbatchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/nutrition-log/dataPoints:batchDelete
Endpoint type: “DELETE Logs” → batchDelete method
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's migration tables cover both halves: the data (Food Log) and the endpoint type (“DELETE Logs”).
- Nutrition Log
- Not in Google's tables
Delete Meal
Nutrition
Fitbit Web APIDELETE /1/user/[user-id]/meals/[meal-id].jsonScope: nutrition
Deletes an existing meal of the given meal ID.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Delete Water Log
Nutrition
Fitbit Web APIDELETE /1/user/[user-id]/foods/log/water/[water-log-id].jsonScope: nutrition
Deleted a user's water log entry using the given log ID.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Favorite Foods
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/favorite.jsonScope: nutrition
Retrieves a list of user-specific favorite consumed foods.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Data only
Get Food
Nutrition
Fitbit Web APIGET /1/foods/[food-id].jsonScope: nutrition
Retrieves the details of a specific food stored in the Fitbit food database or a private food the authorized user has entered.
Google Health API- Food
foodGoogle’s row: “Food”. On Fitbit’s page:food-id
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's data-type table maps the data, but its endpoint table has no row for this kind of endpoint, so which method replaces it is not stated.
- Food
- Not in Google's tables
Get Food Goals
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/goal.jsonScope: nutrition
Retrieves the user's current daily calorie consumption goal and/or food plan.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Food Locales
Nutrition
Fitbit Web APIGET /1/foods/locales.jsonScope: nutrition
Retrieves the food locales used to search, log or create food.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Food Log
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/date/[date].jsonScope: nutrition
Retrieves a summary of the user's food log entry for a given day.
Google Health API- Nutrition Log
nutrition-logGoogle’s row: “Food Log”. On Fitbit’s page:foodsdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/nutrition-log/dataPoints:dailyRollUp
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's migration tables cover both halves: the data (Food Log) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Nutrition Log
- Data only
Get Food Units
Nutrition
Fitbit Web APIGET /1/foods/units.jsonScope: nutrition
Retrieves a list of all valid Fitbit food units in the format requested.
Google Health API- Food Measurement Unit
food-measurement-unitGoogle’s row: “Food Measurement Unit”. On Fitbit’s page:units
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's data-type table maps the data, but its endpoint table has no row for this kind of endpoint, so which method replaces it is not stated.
- Food Measurement Unit
- Not in Google's tables
Get Frequent Foods
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/frequent.jsonScope: nutrition
Retrieves a list of user-specific frequent consumed foods.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Meal
Nutrition
Fitbit Web APIGET /1/user/[user-id]/meals/[meal-id].jsonScope: nutrition
Retrieves a single meal created by the user from their food log given the meal id.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Meals
Nutrition
Fitbit Web APIGET /1/user/[user-id]/meals.jsonScope: nutrition
Retrieves a list of meals created by the user from their food log.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Recent Foods
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/recent.jsonScope: nutrition
Retrieves a list of user-specific recently consumed foods.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Water Goal
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/water/goal.jsonScope: nutrition
Retrieves a user's daily water consumption goal.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Get Water Log
Nutrition
Fitbit Web APIGET /1/user/[user-id]/foods/log/water/date/[date].jsonScope: nutrition
Retrieves a summary and list of a user's water log entries for a given day.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Search Foods
Nutrition
Fitbit Web APIGET /1/foods/search.jsonScope: nutrition
Retrieves a list of public foods from the Fitbit foods database and private foods the user created in the format requested.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Update Food Log
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log.jsonScope: nutrition
Updates the quantity or calories consumed for a user's food log entry with the given Food Log ID. The food item being edited in the food log must contain a foodId with a positive integer value.
Google Health API- Nutrition Log
nutrition-logGoogle’s row: “Food Log”. On Fitbit’s page:food-log-idpatchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/nutrition-log/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.nutrition.readonly.nutrition.writeonlyGoogle's migration tables cover both halves: the data (Food Log) and the endpoint type (“CREATE & UPDATE Logs”).
- Nutrition Log
- Not in Google's tables
Update Meal
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/meals/[meal-id].jsonScope: nutrition
Updates an existing meal with the contents of the request.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Update Water Log
Nutrition
Fitbit Web APIPOST /1/user/[user-id]/foods/log/water/[water-log-id].jsonScope: nutrition
Updates the quantity consumed for a user's water log entry with the given Water Log ID.
Google Health APIScopes:
.nutrition.readonly.nutrition.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Not in Google's tables
Create Sleep Goal
Sleep
Fitbit Web APIPOST /1.2/user/[user-id]/sleep/goal.jsonScope: sleep
Create or update a user's sleep goal.
Google Health APIScopes:
.sleep.readonly.sleep.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Create Sleep Log
Sleep
Fitbit Web APIPOST /1.2/user/[user-id]/sleep.jsonScope: sleep
Creates a log entry for a sleep event and returns a response in the format requested.
Google Health API- Sleep
sleepGoogle’s row: “Sleep”. On Fitbit’s page:sleeppatchPATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/sleep/dataPoints/{dataPointsId}
Endpoint type: “CREATE & UPDATE Logs” → patch method
Scopes:
.sleep.readonly.sleep.writeonlyGoogle's migration tables cover both halves: the data (Sleep) and the endpoint type (“CREATE & UPDATE Logs”).
- Sleep
- Mapped
Delete Sleep Log
Sleep
Fitbit Web APIDELETE /1.2/user/[user-id]/sleep/[log-id].jsonScope: sleep
Deletes a sleep log with the given log id.
Google Health API- Sleep
sleepGoogle’s row: “Sleep”. On Fitbit’s page:sleepbatchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/sleep/dataPoints:batchDelete
Endpoint type: “DELETE Logs” → batchDelete method
Scopes:
.sleep.readonly.sleep.writeonlyGoogle's migration tables cover both halves: the data (Sleep) and the endpoint type (“DELETE Logs”).
- Sleep
- Not in Google's tables
Get Sleep Goal
Sleep
Fitbit Web APIGET /1.2/user/[user-id]/sleep/goal.jsonScope: sleep
Returns a user's current sleep goal.
Google Health APIScopes:
.sleep.readonly.sleep.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- MappedFitbit Web API
GET /1.2/user/[user-id]/sleep/date/[date].jsonScope: sleep
This endpoint returns a list of a user's sleep log entries for a given date. The data returned can include sleep periods that began on the previous date. For example, if you request a Sleep Log for 2021-12-22, it may return a log entry that began the previous night on 2021-12-21, but ended on 2021-12-22.
Google Health API- Sleep
sleepGoogle’s row: “Sleep”. On Fitbit’s page:levelsGoogle’s endpoint table names dailyRollup, which Google’s data-types table does not list for sleep.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.sleep.readonly.sleep.writeonlyGoogle's migration tables cover both halves: the data (Sleep) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Sleep
- MappedFitbit Web API
GET /1.2/user/[user-id]/sleep/date/[startDate]/[endDate].jsonScope: sleep
This endpoint returns a list of a user's sleep log entries for a date range. The data returned for either date can include a sleep period that ended that date but began on the previous date. For example, if you request a sleep log between 2021-12-22 and 2021-12-26, it may return log entries that span 2021-12-21 and 2021-12-22, as well as 2021-12-25 and 2021-12-26.
Google Health API- Sleep
sleepGoogle’s row: “Sleep”. On Fitbit’s page:levelsGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for sleep.
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.sleep.readonly.sleep.writeonlyGoogle's migration tables cover both halves: the data (Sleep) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Sleep
- Mapped
Get Sleep Log List
Sleep
Fitbit Web APIGET /1.2/user/[user-id]/sleep/list.jsonScope: sleep
This endpoint returns a list of a user's sleep log entries before or after a given date, and specifying offset, limit and sort order. The data returned for different dates can include sleep periods that began on the previous date. For example, a sleep log entry for 2018-10-21 may have ended that day but started the previous night on 2018-10-20.
Google Health API- Sleep
sleepGoogle’s row: “Sleep”. On Fitbit’s page:levelslistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/sleep/dataPoints
Endpoint type: “GET (Log List)” → list method
Scopes:
.sleep.readonly.sleep.writeonlyGoogle's migration tables cover both halves: the data (Sleep) and the endpoint type (“GET (Log List)”).
- Sleep
- Mapped
Get SpO2 Summary by Date
Blood Oxygen Saturation (SpO2)
Fitbit Web APIGET /1/user/[user-id]/spo2/date/[date].jsonScope: oxygen_saturation
This endpoint returns the SpO2 summary data for a single date. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
Google Health API- Daily Oxygen Saturation
daily-oxygen-saturationGoogle’s row: “SpO2 summary”. On Fitbit’s page:avgA daily summary of blood oxygen saturation (SpO2) statistics calculated from validated sleep measurements.Google’s endpoint table names dailyRollup, which Google’s data-types table does not list for daily-oxygen-saturation.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (SpO2 summary) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Daily Oxygen Saturation
- Mapped
Get SpO2 Summary by Interval
Blood Oxygen Saturation (SpO2)
Fitbit Web APIGET /1/user/[user-id]/spo2/date/[start-date]/[end-date].jsonScope: oxygen_saturation
This endpoint returns the SpO2 summary data for a specified date range. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
Google Health API- Daily Oxygen Saturation
daily-oxygen-saturationGoogle’s row: “SpO2 summary”. On Fitbit’s page:avgA daily summary of blood oxygen saturation (SpO2) statistics calculated from validated sleep measurements.Google’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for daily-oxygen-saturation.
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (SpO2 summary) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Daily Oxygen Saturation
- Mapped
Create Subscription
Subscription
Fitbit Web APIPOST /1/user/[user-id]/[collection-path]/apiSubscriptions/[subscription-id].jsonScope: See collection-path URI Argument
Creates a subscription to notify the application when a user has new data available. See Creating a Subscription for more information.
Google Health APIprojects.subscribers.subscriptions.createPOST v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions
Endpoint type: “Create Subscriptions” → projects.subscribers.subscriptions.create manually creates a subscription
Google's endpoint table names this endpoint (“Create Subscriptions”).
- Mapped
Delete Subscription
Subscription
Fitbit Web APIDELETE /1/user/[user-id]/[collection-path]/apiSubscriptions/[subscription-id].jsonScope: See collection-path URI Argument
Deletes a subscription for a specific user. See Deleting a Subscription for more information.
Google Health APIprojects.subscribers.subscriptions.deleteDELETE v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions/{subscriptionsId}
Endpoint type: “Delete Subscriptions” → projects.subscribers.subscriptions.delete delete a subscription
Google's endpoint table names this endpoint (“Delete Subscriptions”).
- Mapped
Get Subscription List
Subscription
Fitbit Web APIGET /1/user/[user-id]/[collection-path]/apiSubscriptions.jsonScope: See collection-path URI Argument
Retrieves a list of subscriptions created by your application for a specific user. You can either fetch subscriptions for a specific collection or the entire list of subscriptions for the user. For best practice, make sure that your application maintains this list on your side and uses this endpoint only to periodically ensure data consistency. See Getting a List of Subscriptions for more information.
Google Health APIprojects.subscribers.subscriptions.listGET v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions
Endpoint type: “Get Subscriptions List” → projects.subscribers.subscriptions.list lists all subscriptions
Google's endpoint table names this endpoint (“Get Subscriptions List”).
- Mapped
Get Temperature (Core) Summary by Date
Temperature
Fitbit Web APIGET /1/user/[user-id]/temp/core/date/[date].jsonScope: temperature
This endpoint returns the Temperature (Core) data for a single date. Temperature (Core) data applies specifically to data logged manually by the user throughout the day.
Google Health API- Core Body Temperature
core-body-temperatureGoogle’s row: “Temperature (Core)”. On Fitbit’s page:coredailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/core-body-temperature/dataPoints:dailyRollUp
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Temperature (Core)) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Core Body Temperature
- Mapped
Get Temperature (Core) Summary by Interval
Temperature
Fitbit Web APIGET /1/user/[user-id]/temp/core/date/[start-date]/[end-date].jsonScope: temperature
This endpoint returns Temperature (Core) data for a date range. Temperature (Core) data applies specifically to data logged manually by the user on a given day. It only returns a value for dates on which the Fitbit device was able to record Temperature (Core) data and the maximum date range cannot exceed 30 days.
Google Health API- Core Body Temperature
core-body-temperatureGoogle’s row: “Temperature (Core)”. On Fitbit’s page:corerollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/core-body-temperature/dataPoints:rollUpdailyRollUpPOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/core-body-temperature/dataPoints:dailyRollUp
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Temperature (Core)) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Core Body Temperature
- Mapped
Get Temperature (Skin) Summary by Date
Temperature
Fitbit Web APIGET /1/user/[user-id]/temp/skin/date/[date].jsonScope: temperature
This endpoint returns the Temperature (Skin) data for a single date. It only returns a value for dates on which the Fitbit device was able to record Temperature (skin) data.
Google Health API- Daily Sleep Temperature Derivations
daily-sleep-temperature-derivationsGoogle’s row: “Skin temperature”. On Fitbit’s page:nightlyRelativeGoogle’s endpoint table names dailyRollup, which Google’s data-types table does not list for daily-sleep-temperature-derivations.
Endpoint type: “GET (Log | Summary | Daily Summary) where you are requesting a single day of data” → dailyRollup method with windowSize = 1 day
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Skin temperature) and the endpoint type (“GET (Log | Summary | Daily Summary) where you are requesting a single day of data”).
- Daily Sleep Temperature Derivations
- Mapped
Get Temperature (Skin) Summary by Interval
Temperature
Fitbit Web APIGET /1/user/[user-id]/temp/skin/date/[start-date]/[end-date].jsonScope: temperature
This endpoint returns Temperature (Skin) data for a date range. It only returns a value for dates on which the Fitbit device was able to record Temperature (skin) data and the maximum date range cannot exceed 30 days.
Google Health API- Daily Sleep Temperature Derivations
daily-sleep-temperature-derivationsGoogle’s row: “Skin temperature”. On Fitbit’s page:nightlyRelativeGoogle’s endpoint table names rollUp, dailyRollUp, which Google’s data-types table does not list for daily-sleep-temperature-derivations.
Endpoint type: “GET (Time Series) by Date or Interval” → rollUp or dailyRollUp method including a date range
Scopes:
.health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonlyGoogle's migration tables cover both halves: the data (Skin temperature) and the endpoint type (“GET (Time Series) by Date or Interval”).
- Daily Sleep Temperature Derivations
- Not in Google's tables
Get Badges
User
Fitbit Web APIGET /1/user/[user-id]/badges.jsonScope: profile
Retrieves a list of the user’s badges.
Google Health APIScopes:
.profile.readonly.profile.writeonlyNot in Google's migration tables: no row maps this endpoint's data or endpoint type to the Google Health API.
- Mapped
Get Profile
User
Fitbit Web APIGET /1/user/[user-id]/profile.jsonScope: profile
Retrieves the user's profile data.
Google Health APIusers.getProfileGET v4/users/{usersId}/profileusers.getSettingsGET v4/users/{usersId}/settings
Endpoint type: “GET Profile” → users.getProfile returns the user's specific information users.getSettings returns the user's units and timezones
Scopes:
.profile.readonly.profile.writeonlyGoogle's endpoint table names this endpoint (“GET Profile”).
- Mapped
Update Profile
User
Fitbit Web APIPOST /1/user/[user-id]/profile.jsonScope: profile
Modifies a user's profile data.
Google Health APIusers.updateProfilePATCH v4/users/{usersId}/profileusers.updateSettingsPATCH v4/users/{usersId}/settings
Endpoint type: “UPDATE Profile” → users.updateProfile modifies the user's specific information users.updateSettings modifies the user's units and timezones
Scopes:
.profile.readonly.profile.writeonlyGoogle's endpoint table names this endpoint (“UPDATE Profile”).
How each row is built
- Fitbit’s side, verbatim. Title, opening sentence, HTTP method, path and
Scope:line from each endpoint page of Fitbit’s Web API reference, read 2026-11-05 through a source snapshot (121 pages in 23 sections). - The data: Google’s data-type table. Google’s API specifications page maps 32 Fitbit data types to Google Health API data types. This site pairs an endpoint with a row only when the endpoint’s own page names the field or resource (the row shows it), and 30 of the 32 rows are used.
- The method: Google’s endpoint-type table. The same page says a single-day read becomes
dailyRollup, an intraday readlist, a time seriesrollUpordailyRollUp, a log writepatch. Which row an endpoint falls under is this site’s reading of its title, and the row is printed with it. Where the data type does not list that method in Google’s data-types table, the row says so. - Scopes: Google’s scope table, from the Fitbit scope on the endpoint’s page.
- Everything else is unmapped. 2 endpoints have a discovery method of the same name (Get Activity TCX and
exportExerciseTcx, Get IRN Profile andgetIrnProfile); those are labeled as this site’s name match, not Google’s statement.
Google rows no endpoint page here names
Google’s data-type table has 2 rows this tool did not pair with a Fitbit endpoint, because no endpoint page carries the field by that name:
- “Contains changes to the user's activity levels” → Activity Level
- “VO2 Max value when the user runs” → Run VO2 Max
Sources and what this cannot tell you
Google’s tables come from its migration guide and API specifications page, read 2026-10-31 by this site’s Google Health API generator. dev.fitbit.com cannot be reached from where this site is built, so Fitbit’s pages were read on a GitHub runner; every quoted path, scope and field is listed with its page in the site’s evidence file, which a weekly workflow re-checks against the live pages.
A row maps names, not values. Google notes where a value changes meaning (Activity Calories is reconstructed by adding BMR, for one); read the data type’s page before you move a number across. Response fields inside each endpoint are not mapped here.
Google’s timeline set November 2, 2026 as the Fitbit Web API’s turn-off date; see the Fitbit API shutdown and the migration playbook.
A free tool from AIFitnessAPI. Each Google data type has its own page under the Google Health API reference. More at free tools for health-app builders.
Next step
Turning this into a choice of API: