HealthKit Deprecated and Beta Types
0 beta · 5 undocumented · 4 deprecated · read from Apple’s documentation on 2026-10-02
Apple marks 4 of 241 HealthKit identifiers deprecated: dance, danceInspiredTraining, mixedMetabolicCardioTraining and audioExposureEvent. None is beta.
Four of the 241 HealthKit type identifiers in this dataset are deprecated, as
of this site's 2026-10-02 read of Apple's documentation: the workout activity
constants dance (deprecated in iOS 14.0), danceInspiredTraining (iOS 10.0)
and mixedMetabolicCardioTraining (iOS 11.0), and the category type
audioExposureEvent (iOS 14.0). None has been removed. All 241, the four
included, still carry an availability entry for each of the six platforms
Apple documents: iOS, iPadOS, Mac Catalyst, macOS, visionOS and watchOS.
There is no watchOS-only type and no iOS-only type in the set.
Where Apple records it. Apple's documentation JSON marks a deprecation by
giving a platform entry a deprecatedAt version. The deprecated flag beside
it was false on every platform entry of every identifier in the 2026-10-02
read, the four deprecated ones included. Until 2026-10-02 this site's
generator read only that flag, and this page reported that nothing in
HealthKit was deprecated. That was wrong, and the corrections
log records it.
Each deprecated type comes with a note saying what to use instead. Apple's
note on dance reads "Use HKWorkoutActivityType.cardioDance or
HKWorkoutActivityType.socialDance instead." The note on
danceInspiredTraining points to dance, barre or pilates, and dance
was itself deprecated in iOS 14.0, so following the older note lands you on a
second deprecated constant. mixedMetabolicCardioTraining points to
mixedCardio or highIntensityIntervalTraining. audioExposureEvent is the
one Apple records as a rename: its availability data names
HKCategoryTypeIdentifier.environmentalAudioExposureEvent as the new name,
and its note says to use that instead.
Apple's group name only catches three of them. Apple files dance,
danceInspiredTraining and mixedMetabolicCardioTraining under a topic group
named "Deprecated activity types", so a check for that group finds them.
audioExposureEvent sits in Apple's Hearing group, next to
environmentalAudioExposureEvent, the type Apple names as its replacement,
and only the availability data marks it. Check deprecatedAt, not the group
name.
The platforms do not all agree. None of the four carries a deprecatedAt
on its macOS entry. On visionOS all four show 1.0, the same version Apple
gives for their introduction there, and on watchOS the versions run from 3.0
to 7.0. The table below lists every
platform Apple gives a version for.
No identifier is marked beta in the 2026-10-02 read. The two that were
marked beta on 2026-08-28 are bleedingAfterMenopause and menopausalState,
both category types introduced in iOS 27.0; the flag was the only thing that
changed in their rows. menopausalState resolves to its own value
enum, HKCategoryValueMenopausalState. bleedingAfterMenopause does not
resolve to one at all in this dataset — it is one of only two category types
without a resolved value enum.
Five identifiers are listed with no abstract at all as of 2026-10-02:
appleSleepingBreathingDisturbances, estimatedWorkoutEffortScore,
workoutEffortScore, heartRateVariabilityRMSSD and hypertensionEvent. The
first four are quantity types that also have no stated aggregation style and
no unit family, which
means there is no documented answer to what they measure, in what, or whether
you may add them together. hypertensionEvent is a category type from iOS
26.2 with no abstract, no discussion and no resolved value enum.
59 identifiers carry zero words of discussion prose as of 2026-10-02, and the median discussion length across the whole set is 15 words. Silence is not a lifecycle status, but it has the same practical effect: an undocumented type is one you cannot verify your assumptions against, and assumptions about health data tend to be wrong in ways that never throw.
So the honest four-part answer to "is X safe to build on" is: four
identifiers are deprecated in Apple's availability data, three of them in the
group Apple named for it and audioExposureEvent outside it; none is beta as
of 2026-10-02; and a much larger population is simply underdocumented. The
counts come from this site's HealthKit identifier
dataset, read from Apple's developer documentation on
2026-10-02. Which release each identifier arrived in is on HealthKit types by
iOS version. For what the silent ones cost you in
practice, see the silent types, and for
how these judgements are made, how we
verify. If a type you depend on does go away, migrating
off a deprecated API covers
the mechanics.
The four status edges of the catalogue
Every count below is read from Apple’s documentation for the 241 identifiers on 2026-10-02. Beta and deprecation are per-platform facts in Apple’s availability data — a deprecation is a deprecatedAt version on a platform entry; “undocumented” means Apple ships the declaration with neither an abstract nor a discussion.
Beta — 0 identifiers
No identifier is marked beta on any platform in this read.
No abstract — 5 identifiers
Apple ships these with a declaration and nothing else — no abstract, no discussion. The types exist and compile; what they contain and how Apple derives them is simply not stated, so anything you infer from observed values is unverified.
| Identifier | Family | iOS | Apple’s abstract |
|---|---|---|---|
| appleSleepingBreathingDisturbances | quantity | 18.0 | Apple publishes no abstract for this type. |
| estimatedWorkoutEffortScore | quantity | 18.0 | Apple publishes no abstract for this type. |
| heartRateVariabilityRMSSD | quantity | 27.0 | Apple publishes no abstract for this type. |
| workoutEffortScore | quantity | 18.0 | Apple publishes no abstract for this type. |
| hypertensionEvent | category | 26.2 | Apple publishes no abstract for this type. |
Deprecated — 4 identifiers
Apple gives each of these a deprecatedAt version on at least one platform entry. In Apple’s 2026-10-02 JSON the separate deprecated flag was false on every platform entry, these included, so a tool that reads only the flag reports none. Their macOS entries carry no deprecation at all. The note is Apple’s, verbatim.
| Identifier | Introduced | Deprecated in | Apple’s note |
|---|---|---|---|
| audioExposureEventcategory · Hearing | iOS 13.0 | iOS 14.0 · iPadOS 14.0 · Mac Catalyst 14.0 · visionOS 1.0 · watchOS 7.0 | Use environmentalAudioExposureEvent instead.Renamed to HKCategoryTypeIdentifier.environmentalAudioExposureEvent |
| danceworkoutActivity · Deprecated activity types | iOS 8.0 | iOS 14.0 · iPadOS 14.0 · Mac Catalyst 14.0 · visionOS 1.0 · watchOS 7.0 | Use HKWorkoutActivityType.cardioDance or HKWorkoutActivityType.socialDance instead. |
| danceInspiredTrainingworkoutActivity · Deprecated activity types | iOS 8.0 | iOS 10.0 · iPadOS 10.0 · Mac Catalyst 13.1 · visionOS 1.0 · watchOS 3.0 | Use HKWorkoutActivityType.dance, HKWorkoutActivityType.barre, or HKWorkoutActivityType.pilates instead. |
| mixedMetabolicCardioTrainingworkoutActivity · Deprecated activity types | iOS 8.0 | iOS 11.0 · iPadOS 11.0 · Mac Catalyst 13.1 · visionOS 1.0 · watchOS 4.0 | Use HKWorkoutActivityType.mixedCardio or HKWorkoutActivityType.highIntensityIntervalTraining instead. |
Apple’s deprecated group — 3 identifiers
Apple files these under a topic group named “Deprecated activity types”. All 3 are also deprecated in the availability data above, so for these the group and the data agree. The group is not the whole list: audioExposureEvent (Hearing) is deprecated outside it, so checking group names misses it.
| Identifier | Family | iOS | Apple’s abstract |
|---|---|---|---|
| dance | workoutActivity | 8.0 | The constant for dancing. |
| danceInspiredTraining | workoutActivity | 8.0 | The constant for workouts inspired by dance, including Pilates, Barre, and Feldenkrais. |
| mixedMetabolicCardioTraining | workoutActivity | 8.0 | The constant for performing any mix of cardio-focused exercises. |
What will bite you
Check the version, not the flag. Apple's deprecated flag was false on
every platform entry in HealthKit's documentation JSON on 2026-10-02,
including the four deprecated identifiers'. If you build tooling over Apple's
JSON, read deprecatedAt. A tool that reads the flag reports a clean
catalogue, which is how this page got it wrong.
A replacement can be deprecated too. danceInspiredTraining's note sends
you to dance, which Apple deprecated in iOS 14.0. Treat the symbol a
deprecation note names as something to check, not something to trust.
Deprecated is not removed. All four keep availability entries on all six platforms, and Apple marks none of those entries unavailable. Keep them in your read path and map them to a readable label, so data written with them still renders; stop offering them in anything a user picks from or that your app writes.
Deprecation also happens below the type. A type can be current while one
of its enum values is not. Apple deprecated the .asleep value of
HKCategoryValueSleepAnalysis in iOS 16.0: its availability data names
asleepUnspecified as the new name, and its note says to use asleepCore,
asleepDeep, asleepREM or asleepUnspecified instead. An integration
reading sleepAnalysis can be building on a deprecated value inside a
non-deprecated type, and a type-level check will never surface that. Error
codes have the same problem: noError in HKError.Code is deprecated as of
iOS 27.2 with unknownError as its new name, and Apple ships unknownError
with no description at all — see every HealthKit error
code.
A cleared beta flag is not documentation. bleedingAfterMenopause and
menopausalState lost their beta flags between this site's 2026-08-28 and
2026-10-02 reads, and bleedingAfterMenopause still has no value enum
resolved in this dataset. Before you persist its samples keyed by a raw
integer value, read its value set on Apple's page yourself, and keep the raw
sample so you can re-derive your interpretation if you got it wrong.
Undocumented is the largest risk category, and it has no flag. As of 2026-10-02, five types have no abstract and 59 have no discussion. Nothing in the API distinguishes them from a well-documented type at call time, so the guard has to be yours: verify against Apple's page for that identifier before you ship a rollup, and record what you found and when.
Questions
Are any HealthKit type identifiers deprecated?
Four of 241, as of this site's 2026-10-02 read of Apple's documentation: dance (deprecated in iOS 14.0), danceInspiredTraining (iOS 10.0), mixedMetabolicCardioTraining (iOS 11.0) and audioExposureEvent (iOS 14.0). Apple records each as a deprecatedAt version on the platform entries, while its separate deprecated flag stays false. The first three sit in Apple's Deprecated activity types group; audioExposureEvent sits in Hearing, and Apple names environmentalAudioExposureEvent as its new name.
Which HealthKit identifiers are in beta?
None, as of the 2026-10-02 read of Apple's documentation. The two that were marked beta on 2026-08-28, bleedingAfterMenopause and menopausalState, are reproductive health category types introduced in iOS 27.0, and the flag was the only thing that changed in their rows. bleedingAfterMenopause still has no value enum resolved in this dataset.
How do I tell whether a HealthKit type is safe to build on?
Check four things rather than one: whether any platform entry carries a deprecatedAt version, what Apple's deprecation note says to use instead, whether it is beta, and whether Apple actually documented it. That last one catches the most cases here: as of 2026-10-02, five identifiers have no abstract at all and 59 have no discussion prose.
Derived by AIFitnessAPI from Apple’s published documentation, read 2026-10-02. The full table with units, aggregation and value enums is at every HealthKit type identifier, and the machine-readable export is on datasets.