Apple's Newest HealthKit Types Are a Roadmap
Apple ships the data type years before most apps ship the feature. The additions since iOS 16 are a public preview of what the platform expects to matter.
Apple's documentation, read for this site's HealthKit dataset on 2026-08-28, lists 240 type identifiers. 127 of them shipped with iOS 8.0. The rest arrived in batches, and the batches since iOS 16 read less like a changelog than a statement of what Apple expects health apps to be measuring.
Update, October 2, 2026. Re-read on October 2, 2026, Apple's documentation lists 241 identifiers. iOS 27.0 now carries three:
bleedingAfterMenopause,menopausalState, andheartRateVariabilityRMSSD, a second heart rate variability identifier beside the SDNN type Apple Watch records into. Apple lists the RMSSD type with a declaration only — no abstract, no discussion, no aggregation style, no unit family — so it joins the thinly documented newest types described below, and nothing Apple has published says what it measures or what writes it. None of the iOS 27.0 types is marked beta any longer. The table and analysis below are the August 28, 2026 read.
Here is the count per release.
| Release | New identifiers | What arrived |
|---|---|---|
| iOS 16.0 | 17 | Running dynamics, wrist temperature during sleep, AFib burden, heart rate recovery, underwater depth, several menstrual-cycle types |
| iOS 17.0 | 7 | The cycling power family, physical effort, time in daylight, underwater diving |
| iOS 18.0 | 10 | Rowing, paddle sports, cross-country skiing, skating, two workout effort scores, sleeping breathing disturbances |
| iOS 26.2 | 1 | hypertensionEvent |
| iOS 27.0 | 2 | bleedingAfterMenopause, menopausalState — both still in beta |
Four of the 240 identifiers are deprecated in Apple's availability data:
dance, danceInspiredTraining, mixedMetabolicCardioTraining and
audioExposureEvent, each deprecated in iOS 14.0 or earlier. None has been
removed, and every one is available on all six platforms Apple lists: iOS,
iPadOS, Mac Catalyst, macOS, visionOS and watchOS. Apple adds and does not
prune; a deprecated identifier stays in the catalogue beside its replacement.
Each new identifier is a permanent commitment to a storage shape, which is
exactly why the additions are worth reading as a roadmap.
Correction, October 2, 2026. This paragraph originally said none of the 240 identifiers was marked deprecated. Four were. Apple records a deprecation as a
deprecatedAtversion on each platform entry and leaves a separatedeprecatedflag false, and the generator behind this post read only the flag. The corrections log records the change. The full catalogue with introducing versions is on /healthkit-identifiers, and the underlying data is published at /datasets.
iOS 16: running stopped being a distance#
Seventeen identifiers arrived in iOS 16.0, and one group in it describes how you run rather than how far:
runningGroundContactTimerunningStrideLengthrunningVerticalOscillationrunningPowerrunningSpeed
Before that release a run in HealthKit was a workout with a distance, a duration and a heart-rate series. Afterwards the store could hold biomechanics. That is a different product surface: pace tells a runner what happened, ground contact time and vertical oscillation tell them why.
The same release brought appleSleepingWristTemperature,
atrialFibrillationBurden, environmentalSoundReduction,
heartRateRecoveryOneMinute, underwaterDepth and waterTemperature, along
with infrequentMenstrualCycles, irregularMenstrualCycles,
persistentIntermenstrualBleeding and prolongedMenstrualPeriods, plus the
swimBikeRun and transition workout activity types.
Look at that list as a set of bets: gait quality, overnight physiology, triathlon, and cycle irregularity as a signal rather than a log. Most running apps still show pace and heart rate. The identifiers for the richer version have been sitting in the store for several releases, unread.
iOS 17: the same treatment for cycling#
Seven identifiers in iOS 17.0. The cycling family in it does for the bike what
iOS 16 did for the run: cyclingCadence, cyclingSpeed, cyclingPower and
cyclingFunctionalThresholdPower.
FTP is the interesting one. It is not a raw sensor reading, it is a training construct — the number a cyclist organises a whole training plan around. Apple adding a first-class type for it means the platform is willing to hold derived training state, not just samples. If you are reading power from a crank or trainer over BLE, there is now a canonical place to put it and a canonical place to find someone else's.
The release also added physicalEffort, timeInDaylight and
underwaterDiving. physicalEffort is one of the four quantity types for which
Apple's documentation states no unit family, which is a reasonable early warning
that the semantics were not fully settled when it shipped.
iOS 18: sports Apple had not been measuring, and a score for effort#
Ten identifiers. Most of them extend distance and speed to sports the store had
not been measuring: distanceRowing and rowingSpeed, distancePaddleSports
and paddleSportsSpeed, distanceCrossCountrySkiing and
crossCountrySkiingSpeed, and distanceSkatingSports.
The rest are the ones to pay attention to: workoutEffortScore,
estimatedWorkoutEffortScore and appleSleepingBreathingDisturbances.
Those are the 3 quantity types in the entire catalogue for which Apple states no
aggregation style — is a workout effort score something you sum over a week or
something you average? The documentation does not say. Apple resolves a unit
family for 116 of 120 quantity types, and the exceptions are physicalEffort
plus these three. And all four identifiers Apple lists with no abstract at all
arrived in iOS 18.0 or later: these three, and the iOS 26.2 addition below.
The newest, most product-shaped types are the worst documented ones in the set. That is the cost of reading the roadmap early, and it is a cost you pay in test devices rather than in reading time.
An effort score, and separately an estimated effort score the system produces on your behalf, is a platform-level answer to the question every training app solves privately: how hard was that. If you have built your own RPE capture, you now have a system-provided neighbour to reconcile against, and no prose from Apple telling you how it behaves. You will be reading the enum and testing on device.
iOS 26.2 and iOS 27: hypertension, and the only two beta types#
iOS 26.2 added exactly one identifier: hypertensionEvent. It is a category
type, and it is one of only two category types in the catalogue with no value
enum resolved in Apple's documentation. It also has no abstract. A single event
type, shipped alone, with the semantics left to the reader — that is what an
early platform bet looks like before the feature it supports is announced. If
you handle blood pressure, that identifier is the
one to watch.
iOS 27.0 added bleedingAfterMenopause and menopausalState. These two are
the only identifiers in the whole set of 240 marked as beta on any platform.
bleedingAfterMenopause is the other category type with no value enum resolved.
Apple is extending cycle tracking past the
reproductive years, and it is doing so in the open, in beta, before any app has
to ship anything.
What to do with the lead time#
The pattern across all five releases is the same: the type lands, then the documentation fills in, then apps use it. That gap is the opportunity.
- Treat a new identifier as advance notice, not a feature request. Between the identifier appearing and users expecting the feature there is real runway. Spend it on the data model rather than the UI.
- Make adding an identifier a configuration change. If supporting
rowingSpeedrequires a schema migration, you will not do it, and you will keep not doing it for years. Read types from a list, store them uniformly, and let a new one be a row. - Do not wait for Apple's prose. For the effort scores and the hypertension event there is nothing to wait for. Read the enum, write samples on a device, read them back, and write down what you observed.
- Guard the beta pair.
bleedingAfterMenopauseandmenopausalStatewill change. Feature-flag anything that touches them and check availability at runtime rather than at compile time. - Audit what you already ignore. Running dynamics have been available since iOS 16.0 and the cycling family since iOS 17.0. Before chasing iOS 27, check how many identifiers your app could already be reading and is not.
Frequently asked questions
- Which HealthKit data types did iOS 18 add?
- Ten identifiers arrived in iOS 18.0: sleeping breathing disturbances, cross-country skiing speed and distance, paddle sports distance and speed, rowing distance and speed, skating sports distance, workout effort score, and estimated workout effort score. Apple's documentation, read for this site's dataset on 2026-08-28, records the introducing version for every identifier, which is how that grouping was counted.
- Are any HealthKit identifiers still in beta?
- Not as of October 2, 2026, when this site last read Apple's documentation. On August 28, 2026 two were: bleedingAfterMenopause and menopausalState, both introduced in iOS 27.0 and then the only identifiers in the set marked beta on any platform. Neither is marked beta now. Check the flag on Apple's page at the moment you build rather than trusting a cached status.
- Why do the newest HealthKit types have so little documentation?
- As of October 2, 2026, Apple lists five identifiers with no abstract at all, and every one of them arrived in iOS 18.0 or later, the newest being iOS 27.0's heartRateVariabilityRMSSD. Four quantity types state no aggregation style, and they are the same recent additions. Median discussion length across the catalogue is fifteen words, so thin prose is normal, but the newest types are the thinnest. Test on device.
Read next
- HealthKit: 127 of 240 Types Are iOS 8.0HealthKit has 240 type identifiers and 127 shipped in iOS 8.0. Four are deprecated, none removed. The full version histogram, and what it costs you.
- 58 HealthKit Types Apple Never Explains58 of HealthKit's 240 identifiers carry zero words of discussion prose, and the median across all 240 is 15 words. What to do when the docs say nothing.
- Health Connect SDK: 32 Releases, One StableGoogle has shipped 32 connect-client releases since August 2022 and one stable build, 1.1.0. The alpha runs, gaps and cadence, counted from the notes.
Last verified . Figures come from this site’s own published datasets; see how we verify.