Skip to content
  • There are no suggestions because the search field is empty.

Google Health Exercise Export Format

Google Health data exports are not yet available, but data collection is available for MyDataHelps participants. This article is being published ahead of Google Health data export availability and is subject to change.

As a reminder, Google is deprecating the Fitbit API on September 30th, 2026. After this date, Fitbit data will only be available through Google Health. Please refer to the Migrating Fitbit to Google Health article for additional information.

The Google Health Exercise export contains individual fitness sessions (runs, workouts, etc.) reported through the Google Health API's exercise data type, along with each session's splits and start/stop events.

Deleted exercise session records are described in GoogleHealthExercise_Deleted. See Google Health Deleted Export Format for the full field reference and how to apply it.

Data Fields

Exercise

Field Description
GoogleHealthExerciseKey Unique key for this exercise session, derived from the `ParticipantID` and `SessionId`.
ParticipantIdentifier The identifier of the participant this entry was recorded for. Can be used to cross reference with Participants.
StartDate Session start time in ISO 8601 format, includes time zone offset.
EndDate Session end time in ISO 8601 format, includes time zone offset.
ParticipantID The stable, automatically generated, internal system identifier for this participant. Universally unique identifier (UUID).
ModifiedDate When this record was last modified, in ISO 8601 format. Is always in UTC.
SessionId The provided identifier for this session (e.g. users/…/dataTypes/exercise/dataPoints/…). May not be unique.
ExerciseType The type of exercise this record represents, e.g., "RUNNING". See Google's exercise data type reference for the full list of values.
DisplayName Participant- or device-assigned label for the session, e.g., “Morning Run.”
ActiveDurationSeconds Active duration of the session, in seconds.
Notes Free-text notes associated with the session, if provided.
CaloriesKcal Calories burned during the session or split, in kilocalories.
DistanceMillimeters Distance covered during the session or split, in millimeters.
Steps Steps taken during the session or split.
AverageSpeedMillimetersPerSecond Average speed during the session or split, in millimeters per second.
AveragePaceSecondsPerMeter Average pace during the session or split, in seconds per meter.
AverageHeartRateBeatsPerMinute Average heart rate during the session or split.
ElevationGainMillimeters Total elevation gained during the session or split, in millimeters.
ActiveZoneMinutes Minutes spent in an elevated heart rate zone during the session or split.
RunVo2Max VO2 max estimate calculated from this run.
TotalSwimLengths Total pool lengths swum during the session or split.
HeartRateZoneDurationsLightSeconds  Time spent in "light" heart rate zone during the session or split, in seconds.
HeartRateZoneDurationsModerateSeconds Time spent in "moderate" heart rate zone during the session or split, in seconds.
HeartRateZoneDurationsVigorousSeconds Time spent in "vigorous" heart rate zone during the session or split, in seconds.
HeartRateZoneDurationsPeakSeconds Time spent in "peak" heart rate zone during the session or split, in seconds.
MobilityMetricsAvgGroundContactSeconds The average amount of time for which the foot was in contact with the ground on each stride in this session or split.
MobilityMetricsAvgCadenceStepsPerMinute The average cadence during this session or split, in steps per minute.
MobilityMetricsAvgStrideLengthMillimeters The average distance covered by each stride in this session or split, in millimeters.
MobilityMetricsAvgVerticalOscillationMillimeters The average distance off the ground the user's center of mass moves with each stride during this session or split, in millimeters.
MobilityMetricsAvgVerticalRatio The average ration between vertical oscillation and stride length during this session or split, ranging from 5.0 to 11.0.
MetadataHasGps Whether GPS data is available for the session.
MetadataPoolLengthMillimeters Pool length used for lap counting, in millimeters (swim sessions only).
CreateTime When this session was first recorded in Google Health, in ISO 8601 format. Is always in UTC.
UpdateTime When the record was last updated in Google Health, in ISO 8601 format. Is always in UTC.
DataSourceRecordingMethod How the data was captured, e.g., "AUTOMATICALLY_RECORDED", "MANUALLY_ENTERED", or "DERIVED".
DataSourcePlatform The platform that uploaded this session to Google Health, e.g., "FITBIT".
DataSourceDeviceFormFactor The form factor of the device which recorded this session, e.g., "WATCH".
DataSourceDeviceManufacturer The manufacturer of the device which recorded this session, e.g., `"Fitbit"`.
DataSourceDeviceDisplayName The display name of the device which recorded this session, e.g., `“Sense 2”`.
DataSourceApplicationPackageName The package name of the application that recorded the data, e.g., `"com.fitbit.app"`.
DataSourceApplicationWebClientId The client ID of the application that recorded the data, when applicable.
DataSourceApplicationGoogleWebClientId The Google OAuth 2.0 client ID of the web application or service that recorded the data, when applicable.

Exercise Splits

Field Description
GoogleHealthExerciseKey Unique key for the exercise session this split is part of, derived from the `ParticipantID` and `SessionId`.
ParticipantIdentifier The identifier of the participant this entry was recorded for. Can be used to cross reference with Participants.
StartDate The starting time of this split, ISO 8601 format. Includes time zone offset.
EndDate The ending time of this split, ISO 8601 format. Includes time zone offset.
ParticipantID The stable, automatically generated, internal system identifier for this participant. Universally unique identifier (UUID).
ActiveDurationSeconds Active duration of the split, in seconds.
SplitType How the split was divided, e.g., "DISTANCE".

All other data types found in Exercise Splits are defined as above for the exercise session, but apply only to the Split record.

Exercise Events

Field Description
GoogleHealthExerciseKey Unique key for the exercise session this event is part of, derived from the `ParticipantID` and `SessionId`.
ParticipantIdentifier The identifier of the participant this entry was recorded for. Can be used to cross reference with Participants.
EventDate When the event occurred, ISO 8601 format. Includes time zone offset..
ParticipantID The stable, automatically generated, internal system identifier for this participant. Universally unique identifier (UUID).
ExerciseEventType Type of event, e.g., "START" or "STOP".

Sample CSV Export

Exercise

GoogleHealthExerciseKey,ParticipantIdentifier,StartDate,EndDate,ParticipantID,ModifiedDate,SessionId,ExerciseType,DisplayName,ActiveDurationSeconds,Notes,CaloriesKcal,DistanceMillimeters,Steps,AverageSpeedMillimetersPerSecond,AveragePaceSecondsPerMeter,AverageHeartRateBeatsPerMinute,ElevationGainMillimeters,ActiveZoneMinutes,RunVo2Max,TotalSwimLengths,HeartRateZoneDurationsLightSeconds,HeartRateZoneDurationsModerateSeconds,HeartRateZoneDurationsVigorousSeconds,HeartRateZoneDurationsPeakSeconds,MobilityMetricsAvgGroundContactSeconds,MobilityMetricsAvgCadenceStepsPerMinute,MobilityMetricsAvgStrideLengthMillimeters,MobilityMetricsAvgVerticalOscillationMillimeters,MobilityMetricsAvgVerticalRatio,MetadataHasGps,MetadataPoolLengthMillimeters,CreateTime,UpdateTime,DataSourceRecordingMethod,DataSourcePlatform,DataSourceDeviceFormFactor,DataSourceDeviceManufacturer,DataSourceDeviceDisplayName,DataSourceApplicationPackageName,DataSourceApplicationWebClientId,DataSourceApplicationGoogleWebClientId
917c6a52-242c-5a92-8441-284deced6d09,MDH-123,2025-11-19T16:08:29-05:00,2025-11-19T16:29:35-05:00,11111111-aaaa-1111-1111-111111111111,2025-01-01T04:00:01Z,users/123000000000000000/dataTypes/exercise/dataPoints/627907511364595992,RUNNING,Morning Run,1266.0,,214.5,3218688,2838,,,148,,18,,,,,,,,,,,,True,,2025-11-19T21:30:00Z,2025-11-19T22:00:00Z,AUTOMATICALLY_RECORDED,FITBIT,WATCH,Fitbit,Sense 2,com.fitbit.app,,

Exercise Splits

GoogleHealthExerciseKey,ParticipantIdentifier,StartDate,EndDate,ParticipantID,ActiveDurationSeconds,SplitType,CaloriesKcal,DistanceMillimeters,Steps,AverageSpeedMillimetersPerSecond,AveragePaceSecondsPerMeter,AverageHeartRateBeatsPerMinute,ElevationGainMillimeters,ActiveZoneMinutes,RunVo2Max,TotalSwimLengths,HeartRateZoneDurationsLightSeconds,HeartRateZoneDurationsModerateSeconds,HeartRateZoneDurationsVigorousSeconds,HeartRateZoneDurationsPeakSeconds,MobilityMetricsAvgGroundContactSeconds,MobilityMetricsAvgCadenceStepsPerMinute,MobilityMetricsAvgStrideLengthMillimeters,MobilityMetricsAvgVerticalOscillationMillimeters,MobilityMetricsAvgVerticalRatio
917c6a52-242c-5a92-8441-284deced6d09,MDH-123,2025-11-19T16:09:28-05:00,2025-11-19T16:18:35-05:00,11111111-aaaa-1111-1111-111111111111,547.785218357,DISTANCE,,1609344,,,0.3403779542204774,,,,,,,,,,,,,,
917c6a52-242c-5a92-8441-284deced6d09,MDH-123,2025-11-19T16:18:35-05:00,2025-11-19T16:29:35-05:00,11111111-aaaa-1111-1111-111111111111,730.214781643,DISTANCE,,1609344,,,0.4537224,,,,,,,,,,,,,,

Exercise Events

GoogleHealthExerciseKey,ParticipantIdentifier,EventDate,ParticipantID,ExerciseEventType
917c6a52-242c-5a92-8441-284deced6d09,MDH-123,2025-11-19T16:08:29-05:00,11111111-aaaa-1111-1111-111111111111,START
917c6a52-242c-5a92-8441-284deced6d09,MDH-123,2025-11-19T16:29:35-05:00,11111111-aaaa-1111-1111-111111111111,STOP

Sample JSON Export

{
  "GoogleHealthExerciseKey": "917c6a52-242c-5a92-8441-284deced6d09",
  "ParticipantIdentifier": "MDH-123",
  "StartDate": "2025-11-19T16:08:29-05:00",
  "EndDate": "2025-11-19T16:29:35-05:00",
  "ParticipantID": "11111111-aaaa-1111-1111-111111111111",
  "ModifiedDate": "2025-01-01T04:00:01Z",
  "SessionId": "users/123000000000000000/dataTypes/exercise/dataPoints/627907511364595992",
  "ExerciseType": "RUNNING",
  "DisplayName": "Morning Run",
  "ActiveDurationSeconds": 1266.0,
  "MetricsSummary": {
    "CaloriesKcal": 214.5,
    "DistanceMillimeters": 3218688.0,
    "Steps": 2838,
    "AverageHeartRateBeatsPerMinute": 148,
    "ActiveZoneMinutes": 18
  },
  "MetadataHasGps": true,
  "CreateTime": "2025-11-19T21:30:00Z",
  "UpdateTime": "2025-11-19T22:00:00Z",
  "DataSourceRecordingMethod": "AUTOMATICALLY_RECORDED",
  "DataSourcePlatform": "FITBIT",
  "DataSourceDeviceFormFactor": "WATCH",
  "DataSourceDeviceManufacturer": "Fitbit",
  "DataSourceDeviceDisplayName": "Sense 2",
  "DataSourceApplicationPackageName": "com.fitbit.app",
  "Splits": [
    {
      "StartDate": "2025-11-19T16:09:28-05:00",
      "EndDate": "2025-11-19T16:18:35-05:00",
      "ActiveDurationSeconds": 547.785218357,
      "SplitType": "DISTANCE",
      "MetricsSummary": {
        "DistanceMillimeters": 1609344.0,
        "AveragePaceSecondsPerMeter": 0.3403779542204774
      }
    },
    {
      "StartDate": "2025-11-19T16:18:35-05:00",
      "EndDate": "2025-11-19T16:29:35-05:00",
      "ActiveDurationSeconds": 730.214781643,
      "SplitType": "DISTANCE",
      "MetricsSummary": {
        "DistanceMillimeters": 1609344.0,
        "AveragePaceSecondsPerMeter": 0.4537224
      }
    }
  ],
  "Events": [
    { "EventDate": "2025-11-19T16:08:29-05:00", "ExerciseEventType": "START" },
    { "EventDate": "2025-11-19T16:29:35-05:00", "ExerciseEventType": "STOP" }
  ]
}