Stair climbing as a workout type on HealthKit, Health Connect and Wear OS
3 platforms · 2 facts from the sources beyond the names · read 2026-10-18
Stair climbing has a constant on 3 of the four platforms: HKWorkoutActivityType.stairClimbing, ExerciseSessionRecord.EXERCISE_TYPE_STAIR_CLIMBING (68) and ExerciseType.STAIR_CLIMBING (68). The names match once the EXERCISE_TYPE_ prefix, case and separators are removed, and the Health Connect and Wear OS numbers are equal; none of the Apple and Google pages read for this reference maps them to each other. Apple says: “HealthKit provides optimized calorie calculations for this activity based on the data from Apple Watch’s sensors.” A Health Connect session of type EXERCISE_TYPE_STAIR_CLIMBING accepts EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING segments, besides the 5 segment types every session accepts.
The constant on each platform
These share a row because their names match under the crosswalk rule. None of the Apple and Google pages read for this reference maps them to each other.
| Platform | Constant | Number | What the source says |
|---|---|---|---|
| Apple HealthKit | HKWorkoutActivityType.stairClimbing | none printed | The constant for workouts using a stair climbing machine.iOS 8.0, watchOS 2.0 · Exercise and fitness |
| Android Health Connect | ExerciseSessionRecord.EXERCISE_TYPE_STAIR_CLIMBING | 68 | Google’s Jetpack reference gives no description.Platform API: EXERCISE_SESSION_TYPE_STAIR_CLIMBING = 44 · “Use this type for the stair climbing session.” · API level 34 |
| Wear OS Health Services | ExerciseType.STAIR_CLIMBING | 68 | Google’s ExerciseType reference gives no description. |
| Google Health API | No constant with this name in Exercise.exerciseType. | ||
Health Connect’s EXERCISE_TYPE_STAIR_CLIMBING and Wear OS’s ExerciseType.STAIR_CLIMBING both print 68. Every pair that differs.
What the sources say about stair climbing beyond its names
Quoted from the sources as read on 2026-10-18. These are what give this row a page of its own under the page rule.
Apple’s discussion of the HealthKit case
On stairClimbing, from Apple's page for each HKWorkoutActivityType case (84 JSON documents), read 2026-10-18
HealthKit provides optimized calorie calculations for this activity based on the data from Apple Watch’s sensors.
The segment types Health Connect accepts in this session type
On EXERCISE_TYPE_STAIR_CLIMBING, from ExerciseSegment.kt (androidx source), read 2026-10-18
ExerciseSessionRecord.EXERCISE_TYPE_STAIR_CLIMBING to setOf(EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING)
A Health Connect session of type EXERCISE_TYPE_STAIR_CLIMBING accepts EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING segments, besides the 5 segment types every session accepts.
EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING= 52 · Use this type for stair climbing.
Every session also accepts OTHER_WORKOUT, PAUSE, REST, STRETCHING, UNKNOWN.
Where each platform’s list lives on this site
Other activities side by side
Questions
What is the Health Connect constant for HKWorkoutActivityType.stairClimbing?
ExerciseSessionRecord.EXERCISE_TYPE_STAIR_CLIMBING, value 68. The two names match once the EXERCISE_TYPE_ prefix, case and separators are removed; none of the Apple and Google pages read for this reference maps one to the other, so this is a name match, not a documented equivalence.
Is the Wear OS ExerciseType.STAIR_CLIMBING id the same number as Health Connect's EXERCISE_TYPE_STAIR_CLIMBING?
Yes, both are 68: Health Connect's Jetpack reference prints 68 and the androidx ExerciseType.kt source passes 68. Google does not say the numberings are shared, and 6 other same-name pairs differ.
Which exercise segment types can a Health Connect stair climbing session contain?
A Health Connect session of type EXERCISE_TYPE_STAIR_CLIMBING accepts EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING segments, besides the 5 segment types every session accepts. The universal ones are EXERCISE_SEGMENT_TYPE_OTHER_WORKOUT, EXERCISE_SEGMENT_TYPE_PAUSE, EXERCISE_SEGMENT_TYPE_REST, EXERCISE_SEGMENT_TYPE_STRETCHING and EXERCISE_SEGMENT_TYPE_UNKNOWN. ExerciseSegment.isSegmentTypeCompatibleWithSessionType() answers the question in code, and on devices where the record is not handed to the platform API the ExerciseSessionRecord constructor fails with “segmentType and sessionType is not compatible.”
How does HealthKit estimate calories for a stair climbing workout?
Apple's documentation for HKWorkoutActivityType.stairClimbing says: “HealthKit provides optimized calorie calculations for this activity based on the data from Apple Watch’s sensors.”
Sources (12)
- Apple's HealthKit documentation JSON, as read for this site's HealthKit identifier reference · read 2026-10-02 · sha256 1713010fe143
- HKWorkoutActivityType · read 2026-10-18 · sha256 b3e6bf7bd9d5
- Apple's page for each HKWorkoutActivityType case (84 JSON documents) · read 2026-10-18 · sha256 91c341579aea
- ExerciseSessionRecord (Jetpack reference) · read 2026-10-18 · page last updated 2026-08-26 · sha256 21ca77ecf582
- ExerciseSessionType (Android platform reference) · read 2026-10-18 · page last updated 2026-08-03 · sha256 7dd4604a4779
- ExerciseSessionRecord.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 0c1f0af31734
- IntDefMappings.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 12aa0de76928
- ExerciseSegment (Jetpack reference) · read 2026-10-18 · page last updated 2026-08-26 · sha256 355facabc40c
- ExerciseSegment.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 60a01a3fdec0
- ExerciseType (Jetpack reference, Java) · read 2026-10-18 · page last updated 2026-08-06 · sha256 aecc422742e2
- ExerciseType (Jetpack reference, Kotlin) · read 2026-10-18 · page last updated 2026-08-06 · sha256 336edaebf601
- ExerciseType.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 4878a5203cdc