Skip to content
AF
Google Health API reference

Exercise: the Google Health API exercise data type

Read from Google’s documentation on 2026-10-17 · discovery document revision 20261014 · Google’s data-types page last updated 2026-10-06

Exercise (exercise) is a Session data type in the Google Health API. Google's data-types table lists list, get, reconcile, create, update and batchDelete for it under the .activity_and_fitness.readonly and .activity_and_fitness.writeonly scopes. The table marks it with webhook support. Google's Fitbit migration table maps the Fitbit Web API's Recorded activity data to it.

Exercise at a glance

From the Exercise row of Google’s data-types table, joined to the discovery document’s DataPoint schema.

Display name
Exercise
dataType (in endpoint URLs)
exercise
filter parameter
exerciseGoogle: “The identifier separated by underscores (for example, active_minutes) used as the value for the dataType filter parameter in daily rollup and rollup requests.”
Record type
Session — Google: “Represents a continuous block of recording, such as a workout or an electrocardiogram (ECG) session.”
Storage resolution
not stated in Google’s table
Webhook support
Yes · automatic-subscription token WEBHOOK_DATA_TYPE_EXERCISE
True zeros support
Not marked in Google’s table
Channel
v4
DataPoint field
DataPoint.exercise → ExerciseIts description: “Optional. Data for points in the exercise session data type collection.”
Compatible devices
28 in Google’s table

Operations and request paths

The operations Google’s table lists for exercise, each matched to its users.dataTypes.dataPoints method in the discovery document. The path is the documented path template (the method’s flatPath on https://health.googleapis.com/) with {dataTypesId} filled in as exercise. Google on {user}: “The {user} can be either the alias me or the authenticated user's numeric Health User ID (retrieved via GetIdentity).”

Table listsMethodDocumented path template
listlistGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints
getgetGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints/{dataPointsId}
reconcilereconcileGET https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints:reconcile
createcreatePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints
updatepatchvia Google’s endpoint-mapping table (flagged below)PATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints/{dataPointsId}
batchDeletebatchDeletePOST https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints:batchDelete

Every method, and how many of the data types list it: the methods overview.

Scopes

The scopes Google’s table lists for exercise, as full URLs, with the consent text Google’s Scopes page gives each. Every Google Health API scope.

ScopeAccessGoogle’s permission text
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonlyreadSee your Google Health activity and fitness data.
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonlywriteAdd activity and fitness data to Google Health, and edit or delete the data it adds.

Fields of Exercise

The schema the discovery document gives DataPoint.exercise, required fields first. Types are as the discovery document states them; the label is the word Google’s description opens with. The schemas its fields refer to follow, one level deep.

Exercise — Google: “An exercise that stores information about a physical activity.”

FieldTypeGoogle’s description
displayNameRequiredstringRequired. The localized, human-readable name of the exercise. For all exercise types other than OTHER, the system ignores client input and overrides this field with a generated name based on exercise_type (e.g., "Walking" for WALKING). If exercise_type is OTHER, this field can contain the user's custom, free-form display name.
exerciseTypeRequiredstringRequired. The type of activity performed during an exercise.
  • EXERCISE_TYPE_UNSPECIFIED — Exercise type is unspecified.
  • AEROBIC_WORKOUT — Aerobic workout type.
  • ARCHERY — Archery type.
  • ASSAULT_BIKE — Assault bike type.
  • BACKPACKING — Backpacking type.
  • BADMINTON — Badminton type.
  • BALLET — Ballet type.
  • BALLROOM_DANCE — Ballroom dance type.
  • BARRE_CLASS — Barre class type.
  • BASEBALL — Baseball type.
  • BASKETBALL — Basketball type.
  • BIKING — Biking type.
  • BILLIARDS — Billiards type.
  • BODY_WEIGHT — Body weight type.
  • BOOTCAMP — Bootcamp type.
  • BOWLING — Bowling type.
  • BOXING — Boxing type.
  • BREAKDANCING — Breakdancing type.
  • CALISTHENICS — Calisthenics type.
  • CANOEING — Canoeing type.
  • CARDIO_SCULPT — Cardio sculpt type.
  • CARDIO_WORKOUT — Cardio workout type.
  • CARPENTRY — Carpentry type.
  • CHEERLEADING — Cheerleading type.
  • CIRCUIT_TRAINING — Circuit training type.
  • CLEANING — Cleaning type.
  • CLIMBING — Climbing type.
  • CORE_TRAINING — Core training type.
  • CRICKET — Cricket type.
  • CROQUET — Croquet type.
  • CROSS_COUNTRY_SKI — Cross country ski type.
  • CROSS_TRAINING — Cross training type.
  • CROSSFIT — Crossfit type.
  • CURLING — Curling type.
  • DANCING — Dancing type.
  • DIVING — Diving type.
  • ELECTRIC_BIKE — Electric bike type.
  • ELECTRIC_SCOOTER — Electric scooter type.
  • ELLIPTICAL — Elliptical type.
  • EQUESTRIAN_SPORTS — Equestrian sports type.
  • EXERCISE_CLASS — Exercise class type.
  • FENCING — Fencing type.
  • FIELD_HOCKEY — Field hockey type.
  • FISHING — Fishing type.
  • FITNESS_GAMING — Fitness gaming type.
  • FOILING — Foiling type.
  • FOOTBALL_AMERICAN — Football american type.
  • FOOTBALL_AUSTRALIAN — Football australian type.
  • FREE_WEIGHTS — Free weights type.
  • FRISBEE_PLAYING_GENERAL — Frisbee playing general type.
  • FUNCTIONAL_STRENGTH_TRAINING — Functional strength training type.
  • GARDENING — Gardening type.
  • GOLF — Golf type.
  • GYMNASTICS — Gymnastics type.
  • HANDBALL — Handball type.
  • HAND_CYCLING — Hand cycling type.
  • HIIT — Hiit type.
  • HIKING — Hiking type.
  • HIP_HOP — Hip hop type.
  • HOCKEY — Hockey type.
  • HOEING — Hoeing type.
  • HOUSEHOLD_CHORES — Household chores type.
  • HUNTING — Hunting type.
  • ICE_SKATING — Ice skating type.
  • INCLINE_RUN — Incline run type.
  • INCLINE_WALK — Incline walk type.
  • INDOOR_CLIMBING — Indoor climbing type.
  • INTERVAL_WORKOUT — Interval workout type.
  • JAZZ_DANCE — Jazz dance type.
  • JIU_JITSU — Jiu jitsu type.
  • JUMPING_ROPE — Jumping rope type.
  • KARATE — Karate type.
  • KAYAKING — Kayaking type.
  • KICKBOXING — Kickboxing type.
  • KITESURFING — Kitesurfing type.
  • LACROSSE — Lacrosse type.
  • MARTIAL_ARTS — Martial arts type.
  • MEDITATE — Meditate type.
  • MODERN_DANCE — Modern dance type.
  • MOTOCROSS — Motocross type.
  • MOTORCYCLE — Motorcycle type.
  • MOUNTAIN_BIKE — Mountain bike type.
  • MOWING_LAWN — Mowing lawn type.
  • MUAY_THAI — Muay thai type.
  • MULTISPORT — Multisport type.
  • MUSICAL_PERFORMANCE — Musical performance type.
  • NORDIC_WALKING — Nordic walking type.
  • ORIENTEERING — Orienteering type.
  • OTHER — Other type.
  • OUTDOOR_BIKE — Outdoor bike type.
  • OUTDOOR_WORKOUT — Outdoor workout type.
  • PADDLEBOARDING — Paddleboarding type.
  • PADEL — Padel type.
  • PAINTING — Painting type.
  • PARAGLIDING — Paragliding type.
  • PARKOUR — Parkour type.
  • PICKELBALL — Pickelball type.
  • PILATES — Pilates type.
  • POLO — Polo type.
  • POWERLIFTING — Powerlifting type.
  • POWER_WALKING — Power walking type.
  • RACKET_SPORTS — Racket sports type.
  • RACQUETBALL — Racquetball type.
  • RESISTANCE_BANDS — Resistance bands type.
  • ROCK_CLIMBING — Rock climbing type.
  • ROLLERBLADING — Rollerblading type.
  • ROLLER_SKATING — Roller skating type.
  • ROWING — Rowing type.
  • ROWING_MACHINE — Rowing machine type.
  • RUCKING — Rucking type.
  • RUGBY — Rugby type.
  • RUNNING — Running type.
  • SAILING — Sailing type.
  • SCOOTERING — Scootering type.
  • SCUBA_DIVING — Scuba diving type.
  • SHOOTING — Shooting type.
  • SHOVELING — Shoveling type.
  • SKATEBOARDING — Skateboarding type.
  • SKATING — Skating type.
  • SKIING — Skiing type.
  • SKYDIVING — Skydiving type.
  • SNORKELING — Snorkeling type.
  • SNOWBOARDING — Snowboarding type.
  • SNOWMOBILING — Snowmobiling type.
  • SNOWSHOEING — Snowshoeing type.
  • SNOW_SPORT — Snow sport type.
  • SOCCER — Soccer type.
  • SOFTBALL — Softball type.
  • SPEED_SKATING — Speed skating type.
  • SPINNING — Spinning type.
  • SPORT — Sport type.
  • SQUASH — Squash type.
  • STAIRCLIMBER — Stairclimber type.
  • STATIONARY_BIKE — Stationary bike type.
  • STEP_TRAINING — Step training type.
  • STRENGTH_TRAINING — Strength training type.
  • STRETCHING — Stretching type.
  • STROLLER_WALK — Stroller walk type.
  • SURFING — Surfing type.
  • SWIMMING — Swimming type.
  • SWIMMING_OPEN_WATER — Swimming open water type.
  • SWIMMING_POOL — Swimming pool type.
  • SYNCHRONIZED_SWIMMING — Synchronized swimming type.
  • TABATA_WORKOUT — Tabata workout type.
  • TABLE_TENNIS — Table tennis type.
  • TAEKWONDO — Taekwondo type.
  • TAI_CHI — Tai chi type.
  • TANGO — Tango type.
  • TENNIS — Tennis type.
  • TRACK_AND_FIELD — Track and field type.
  • TRAIL_RUN — Trail run type.
  • TRAMPOLINE — Trampoline type.
  • TREADMILL — Treadmill type.
  • TREADMILL_WALK — Treadmill walk type.
  • TRX — Trx type.
  • ULTIMATE_FRISBEE — Ultimate frisbee type.
  • UNICYCLING — Unicycling type.
  • VOLLEYBALL — Volleyball type.
  • VOLLEYBALL_BEACH — Volleyball beach type.
  • WAKEBOARDING — Wakeboarding type.
  • WALKING — Walking type.
  • WALK_WITH_WEIGHTS — Walk with weights type.
  • WATER_AEROBICS — Water aerobics type.
  • WATER_JOGGING — Water jogging type.
  • WATER_POLO — Water polo type.
  • WATER_SKIING — Water skiing type.
  • WATER_SPORT — Water sport type.
  • WATER_VOLLEYBALL — Water volleyball type.
  • WEEDING — Weeding type.
  • WEIGHTLIFTING — Weightlifting type.
  • WEIGHT_MACHINES — Weight machines type.
  • WEIGHTS — Weights type.
  • WHEELCHAIR — Wheelchair type.
  • WINDSURFING — Windsurfing type.
  • WORKOUT — Workout type.
  • WRESTLING — Wrestling type.
  • YOGA — Yoga type.
  • YOGA_BIKRAM — Yoga bikram type.
  • YOGA_HATHA — Yoga hatha type.
  • YOGA_POWER — Yoga power type.
  • YOGA_VINYASA — Yoga vinyasa type.
  • ZUMBA — Zumba type.
intervalRequiredSessionTimeIntervalRequired. Observed exercise interval
metricsSummaryRequiredMetricsSummaryRequired. Summary metrics for this exercise ( )
activeDurationOptionalstring/google-durationOptional. Duration excluding pauses.
createTimeOutput onlystring/google-datetimeOutput only. Represents the timestamp of the creation of the exercise.
exerciseEventsOptionalarray<ExerciseEvent>Optional. Exercise events that happen during an exercise, such as pause & restarts.
exerciseMetadataOptionalExerciseMetadataOptional. Additional exercise metadata.
notesOptionalstringOptional. Standard free-form notes captured at manual logging.
splitsOptionalarray<SplitSummary>Optional. The default split is 1 km or 1 mile. - if the movement distance is less than the default, then there are no splits - if the movement distance is greater than or equal to the default, then we have splits
splitSummariesOptionalarray<SplitSummary>Optional. Laps or splits recorded within an exercise. Laps could be split based on distance or other criteria (duration, etc.) Laps should not be overlapping with each other.
updateTimeOutput onlystring/google-datetimeOutput only. This is the timestamp of the last update to the exercise.

SessionTimeInterval

Google: “Represents a time interval of session data point, which bundles multiple observed metrics together.”

FieldTypeGoogle’s description
endTimeRequiredstring/google-datetimeRequired. The end time of the observed session.
endUtcOffsetRequiredstring/google-durationRequired. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
startTimeRequiredstring/google-datetimeRequired. The start time of the observed session.
startUtcOffsetRequiredstring/google-durationRequired. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
civilEndTimeOutput onlyCivilDateTimeOutput only. Session end time in civil time in the timezone the subject is in at the end of the session.
civilStartTimeOutput onlyCivilDateTimeOutput only. Session start time in civil time in the timezone the subject is in at the start of the session.

MetricsSummary

Google: “Summary metrics for an exercise.”

FieldTypeGoogle’s description
activeZoneMinutesOptionalstring/int64Optional. Total active zone minutes for the exercise.
averageHeartRateBeatsPerMinuteOptionalstring/int64Optional. Average heart rate during the exercise.
averagePaceSecondsPerMeterOptionalnumber/doubleOptional. Average pace in seconds per meter.
averageSpeedMillimetersPerSecondOptionalnumber/doubleOptional. Average speed in millimeters per second.
caloriesKcalOptionalnumber/doubleOptional. Total calories burned by the user during the exercise.
distanceMillimetersOptionalnumber/doubleOptional. Total distance covered by the user during the exercise.
elevationGainMillimetersOptionalnumber/doubleOptional. Total elevation gain during the exercise.
heartRateZoneDurationsOptionalTimeInHeartRateZonesOptional. Time spent in each heart rate zone.
mobilityMetricsOptionalMobilityMetricsOptional. Mobility workouts specific metrics. Only present in the advanced running exercises.
runVo2MaxOptionalnumber/doubleOptional. Run VO2 max value for the exercise. Only present in the running exercises at the top level as in the summary of the whole exercise.
stepsOptionalstring/int64Optional. Total steps taken during the exercise.
totalSwimLengthsOptionalnumber/doubleOptional. Number of full pool lengths completed during the exercise. Only present in the swimming exercises at the top level as in the summary of the whole exercise.

ExerciseEvent

Google: “Represents instantaneous events that happen during an exercise, such as start, stop, pause, split.”

FieldTypeGoogle’s description
eventTimeRequiredstring/google-datetimeRequired. Exercise event time
eventUtcOffsetRequiredstring/google-durationRequired. Exercise event time offset from UTC
exerciseEventTypeRequiredstringRequired. The type of the event, such as start, stop, pause, resume.
  • EXERCISE_EVENT_TYPE_UNSPECIFIED — Exercise event type is unspecified.
  • START — Exercise start event.
  • STOP — Exercise stop event.
  • PAUSE — Exercise pause event.
  • RESUME — Exercise resume event.
  • AUTO_PAUSE — Exercise auto-pause event.
  • AUTO_RESUME — Exercise auto-resume event.

ExerciseMetadata

Google: “Additional exercise metadata.”

FieldTypeGoogle’s description
hasGpsOptionalbooleanOptional. Whether the exercise had GPS tracking.
poolLengthMillimetersOptionalstring/int64Optional. Pool length in millimeters. Only present in the swimming exercises.

SplitSummary

Google: “Represents splits or laps recorded within an exercise. Lap events partition a workout into segments based on criteria like distance, time, or calories.”

FieldTypeGoogle’s description
endTimeRequiredstring/google-datetimeRequired. Lap end time
endUtcOffsetRequiredstring/google-durationRequired. Lap end time offset from UTC
metricsSummaryRequiredMetricsSummaryRequired. Summary metrics for this split.
splitTypeRequiredstringRequired. Method used to split the exercise laps. Users may manually mark the lap as complete even if the tracking is automatic.
  • SPLIT_TYPE_UNSPECIFIED — Split type is unspecified.
  • MANUAL — Manual split.
  • DURATION — Split by duration.
  • DISTANCE — Split by distance.
  • CALORIES — Split by calories.
startTimeRequiredstring/google-datetimeRequired. Lap start time
startUtcOffsetRequiredstring/google-durationRequired. Lap start time offset from UTC
activeDurationOutput onlystring/google-durationOutput only. Lap time excluding the pauses.

Fitbit Web API predecessor

Google’s Fitbit Web API → Google Health API data-type table maps Recorded activity to exercise. Google’s note: “Recorded workouts or exercise sessions, which include start/end times, activity types, and session metrics.”

Fitbit Web API scopes Google maps to exercise’s scopes: activity, cardio_fitness.

Google’s full Fitbit Web API mapping tables · the migration playbook

Where Google’s guides name exercise

  • “Variable page sizes: Capping limits depend on the endpoint and data type. For most data types, page sizes are capped at a maximum of 10,000. However, for certain data types like exercise and sleep, the default and maximum page size is capped at 25. For example, if a client requests all sleep data for the past 10 years, the API will still return only 25 sleep sessions on the first page.”Google's endpoints guide, “Query historical data”

Where Google’s pages disagree

Published as found, with the texts that disagree; nothing here is corrected by us.

  • Operation name differs

    The table lists "update" for exercise, but the discovery document has no method named update; Google's endpoint-mapping table points updates at patch.

    • Google's Fitbit migration API specifications: “CREATE & UPDATE Logs”
    • Google's Fitbit migration API specifications: “patch method”
    • the v4 discovery document: “Updates a single identifiable data point. If a data point with the specified name is not found, the request will fail.”
  • Method missing from the table

    The discovery document's exportExerciseTcx method is documented for exercise, but the table's operations for exercise do not list it.

    • the v4 discovery document: “Exports exercise data in TCX format. IMPORTANT: HTTP clients must append ?alt=media to the request URL to download the raw TCX file.”
    • Google's data-types page: “list, get, reconcile, create, update, batchDelete”

Compatible devices

The 28 devices Google’s table lists as able to record and sync exercise.

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Charge 4
  • Fitbit Charge 5
  • Fitbit Charge 6
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire 2
  • Fitbit Inspire 3
  • Fitbit Inspire HR
  • Fitbit Ionic
  • Fitbit Luxe
  • Fitbit MobileTrack
  • Pixel Watch
  • Pixel Watch 2
  • Pixel Watch 3
  • Pixel Watch 4
  • Fitbit Sense
  • Fitbit Sense 2
  • Fitbit Versa
  • Fitbit Versa 2
  • Fitbit Versa 3
  • Fitbit Versa 4
  • Fitbit Versa Lite

Google’s documentation

Related on this site

Questions

Which OAuth scopes does the Google Health API exercise data type need?

Google's data-types table (read 2026-10-17) lists https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly and https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly for exercise. The Scopes page's consent text: .activity_and_fitness.readonly, "See your Google Health activity and fitness data."; .activity_and_fitness.writeonly, "Add activity and fitness data to Google Health, and edit or delete the data it adds."

Can apps write exercise data to the Google Health API?

Yes. Google's data-types table lists create, update and batchDelete for exercise. create is POST https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints. The table's "update" has no method of that name in the discovery document; Google's endpoint-mapping table points updates at patch, which is PATCH https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints/{dataPointsId}. batchDelete is POST https://health.googleapis.com/v4/users/{usersId}/dataTypes/exercise/dataPoints:batchDelete. Writes need https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.

How do you aggregate exercise data with the Google Health API?

Not with rollUp or dailyRollUp, going by Google's data-types table: it lists only list, get, reconcile, create, update and batchDelete for exercise. Read the data points with list (or reconcile, where listed) and compute any summary yourself.

What did the Google Health API exercise data type replace in the Fitbit Web API?

Google's Fitbit Web API migration table maps the Fitbit Web API's "Recorded activity" to exercise. Google's note on the row: "Recorded workouts or exercise sessions, which include start/end times, activity types, and session metrics." The Fitbit Web API scopes Google maps to its scopes: activity and cardio_fitness.

Other activity and fitness data types

All activity and fitness data types →

Sources checked

Google’s text is quoted for identification; each guide page’s footer reads: “Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License.”. Generated from Google’s pages by scripts/fetch-google-health-api.mjs, not typed by hand; Google’s documentation remains the authority.

← All Google Health API data types