HealthKit Nutrition: 39 Dietary Types
39 identifiers · read from Apple’s documentation on 2026-08-28
HealthKit's Nutrition group is 39 type identifiers, every one a quantity type and every one cumulative. No discrete types. None with the aggregation style left blank. It is the one group in the API where the sum-or-average question has a single answer for every member, and the answer is sum. The list comes from this site's HealthKit identifier dataset, parsed from Apple's developer documentation on 2026-08-28.
Three unit families cover all 39. dietaryEnergyConsumed is the only energy
type. dietaryWater is the only volume type. Everything else is mass. Note
that the dataset records a unit family rather than a specific unit, so the
family tells you the shape of a value and nothing about its magnitude.
The group is also finished. 38 of the 39 shipped with iOS 8.0, and
dietaryWater followed in 9.0. Nothing in this group has a later
availability than that, so the nutrition side of HealthKit you write against
today is the one Apple shipped alongside the original framework.
Five identifiers carry most products. dietaryEnergyConsumed is the calorie
total. dietaryProtein, dietaryCarbohydrates and dietaryFatTotal are
the macros, and dietaryFatTotal is the only identifier in the group whose
documentation runs past the standard one-line abstract, because it sits above
three breakdown types: dietaryFatSaturated, dietaryFatMonounsaturated
and dietaryFatPolyunsaturated. dietaryWater completes the set, and
being volume rather than mass, it will not share a code path with the other
four.
Past those five, the group is a long micronutrient list. Minerals get
dietaryCalcium, dietaryIron, dietaryPotassium, dietarySodium,
dietaryZinc, dietarySelenium, dietaryChromium,
dietaryMolybdenum and more. The vitamins are where the naming gets
awkward, because Apple documents several of them under two names at once.
dietaryThiamin is vitamin B1, dietaryRiboflavin is B2,
dietaryNiacin is B3, dietaryPantothenicAcid is B5, dietaryBiotin
is B7, dietaryVitaminB6 is pyridoxine, dietaryVitaminB12 is
cyanocobalamin, and dietaryFolate is folic acid. Build your mapping table
from Apple's identifier names alone and it will silently miss whichever
synonym your food source happens to use.
Which brings up the thing that actually decides how much of this group you can fill. Your food database does, not HealthKit. The API defines 39 fields, and if the item your user searched for resolves to four nutrient values, four is what you write. Coverage per item is the number to test when you pick a source, not the headline item count, and the only honest test is running a sample of foods your own users eat through the API. Our notes on nutrition APIs and the USDA FoodData Central and Open Food Facts comparison cover what each source returns per food, and nutrition tracking apps covers the rest of the build.
None of the 39 has a verified Android counterpart in our cross-platform matrix, which tracks ten metrics and does not currently reach into food. Treat the whole group as Apple-only until verified, and if you ship on both platforms, budget the nutrition mapping as real work rather than a rename.
One last consequence of everything being cumulative. The number a user sees is a daily total, and a daily total is only as good as your definition of a day. A snack logged at 00:20 belongs to a different date depending on whether you roll up in the device's timezone, the user's home timezone or UTC, and users notice when yesterday's total changes. Day boundaries and timezones covers the rollup that survives travel.
The 39 identifiers in nutrition
Every field is joined from Apple’s documentation. Aggregation style and unit family are the two Apple states only in prose — where its wording does not state one, this table says so rather than guessing. Android names appear only where the mapping is verified on both platforms.
| Identifier | What it is | Aggregate | Unit | iOS | Android |
|---|---|---|---|---|---|
| dietaryBiotinHKQuantityTypeIdentifierDietaryBiotin | A quantity sample type that measures the amount of biotin (vitamin B7) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryCaffeineHKQuantityTypeIdentifierDietaryCaffeine | A quantity sample type that measures the amount of caffeine consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryCalciumHKQuantityTypeIdentifierDietaryCalcium | A quantity sample type that measures the amount of calcium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryCarbohydratesHKQuantityTypeIdentifierDietaryCarbohydrates | A quantity sample type that measures the amount of carbohydrates consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryChlorideHKQuantityTypeIdentifierDietaryChloride | A quantity sample type that measures the amount of chloride consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryCholesterolHKQuantityTypeIdentifierDietaryCholesterol | A quantity sample type that measures the amount of cholesterol consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryChromiumHKQuantityTypeIdentifierDietaryChromium | A quantity sample type that measures the amount of chromium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryCopperHKQuantityTypeIdentifierDietaryCopper | A quantity sample type that measures the amount of copper consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryEnergyConsumedHKQuantityTypeIdentifierDietaryEnergyConsumed | A quantity sample type that measures the amount of energy consumed. | .cumulativeSum | energy | 8.0 | not verified |
| dietaryFatMonounsaturatedHKQuantityTypeIdentifierDietaryFatMonounsaturated | A quantity sample type that measures the amount of monounsaturated fat consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryFatPolyunsaturatedHKQuantityTypeIdentifierDietaryFatPolyunsaturated | A quantity sample type that measures the amount of polyunsaturated fat consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryFatSaturatedHKQuantityTypeIdentifierDietaryFatSaturated | A quantity sample type that measures the amount of saturated fat consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryFatTotalHKQuantityTypeIdentifierDietaryFatTotal | A quantity sample type that measures the total amount of fat consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryFiberHKQuantityTypeIdentifierDietaryFiber | A quantity sample type that measures the amount of fiber consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryFolateHKQuantityTypeIdentifierDietaryFolate | A quantity sample type that measures the amount of folate (folic acid) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryIodineHKQuantityTypeIdentifierDietaryIodine | A quantity sample type that measures the amount of iodine consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryIronHKQuantityTypeIdentifierDietaryIron | A quantity sample type that measures the amount of iron consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryMagnesiumHKQuantityTypeIdentifierDietaryMagnesium | A quantity sample type that measures the amount of magnesium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryManganeseHKQuantityTypeIdentifierDietaryManganese | A quantity sample type that measures the amount of manganese consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryMolybdenumHKQuantityTypeIdentifierDietaryMolybdenum | A quantity sample type that measures the amount of molybdenum consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryNiacinHKQuantityTypeIdentifierDietaryNiacin | A quantity sample type that measures the amount of niacin (vitamin B3) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryPantothenicAcidHKQuantityTypeIdentifierDietaryPantothenicAcid | A quantity sample type that measures the amount of pantothenic acid (vitamin B5) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryPhosphorusHKQuantityTypeIdentifierDietaryPhosphorus | A quantity sample type that measures the amount of phosphorus consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryPotassiumHKQuantityTypeIdentifierDietaryPotassium | A quantity sample type that measures the amount of potassium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryProteinHKQuantityTypeIdentifierDietaryProtein | A quantity sample type that measures the amount of protein consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryRiboflavinHKQuantityTypeIdentifierDietaryRiboflavin | A quantity sample type that measures the amount of riboflavin (vitamin B2) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietarySeleniumHKQuantityTypeIdentifierDietarySelenium | A quantity sample type that measures the amount of selenium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietarySodiumHKQuantityTypeIdentifierDietarySodium | A quantity sample type that measures the amount of sodium consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietarySugarHKQuantityTypeIdentifierDietarySugar | A quantity sample type that measures the amount of sugar consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryThiaminHKQuantityTypeIdentifierDietaryThiamin | A quantity sample type that measures the amount of thiamin (vitamin B1) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminAHKQuantityTypeIdentifierDietaryVitaminA | A quantity sample type that measures the amount of vitamin A consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminB12HKQuantityTypeIdentifierDietaryVitaminB12 | A quantity sample type that measures the amount of cyanocobalamin (vitamin B12) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminB6HKQuantityTypeIdentifierDietaryVitaminB6 | A quantity sample type that measures the amount of pyridoxine (vitamin B6) consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminCHKQuantityTypeIdentifierDietaryVitaminC | A quantity sample type that measures the amount of vitamin C consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminDHKQuantityTypeIdentifierDietaryVitaminD | A quantity sample type that measures the amount of vitamin D consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminEHKQuantityTypeIdentifierDietaryVitaminE | A quantity sample type that measures the amount of vitamin E consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryVitaminKHKQuantityTypeIdentifierDietaryVitaminK | A quantity sample type that measures the amount of vitamin K consumed. | .cumulativeSum | mass | 8.0 | not verified |
| dietaryWaterHKQuantityTypeIdentifierDietaryWater | A quantity sample type that measures the amount of water consumed. | .cumulativeSum | volume | 9.0 | not verified |
| dietaryZincHKQuantityTypeIdentifierDietaryZinc | A quantity sample type that measures the amount of zinc consumed. | .cumulativeSum | mass | 8.0 | not verified |
What will bite you
A field you never write and a field that is genuinely zero look identical to anything reading the store later. Nothing in the group carries a "not measured" state. Pick the fields you can source for every logged item and write those consistently, rather than writing whatever the current food database happened to return for this particular burrito.
Apple's abstracts here give you almost nothing. Each is the same sentence with
the nutrient swapped in, and dietaryFatTotal is the only one that runs
longer. None of the 39 abstracts mentions a meal, a serving or a brand, so
there is no documented guidance on what to write when a food resolves
partially, or how to group items into a meal. Those are your product's
decisions.
Mass is a family, not a unit. It covers every type here except
dietaryEnergyConsumed and dietaryWater, and a converter that treats
"the mass ones" as a single hard-coded unit will look correct on protein and
carbohydrates and be wrong wherever a nutrient is not recorded on that scale.
Read the unit per identifier from Apple before you fix a column type.
dietaryWater is the one field here a user can log with no food attached,
and it is the only volume type in the group. Any ingestion path that assumes
every nutrition sample is a mass breaks on it. The same goes for
dietaryEnergyConsumed being the only energy type, which matters because
calories are usually the first field a nutrition product writes and the last
one anybody thinks to special-case.
Questions
- Are HealthKit nutrition samples summed or averaged?
- Summed. All 39 identifiers in the Nutrition group state cumulative aggregation, so a day's intake is the sum of that day's samples and there is no discrete type in the group to get wrong. Averaging one of these fields gives you the mean size of a logged item, which describes your user's logging habits rather than their diet.
- Which HealthKit nutrition types are not measured in mass?
- Two. dietaryEnergyConsumed is the group's only energy type, and dietaryWater is its only volume type. Everything else falls in the mass family. dietaryWater is also the only identifier in the group that did not ship with iOS 8.0, arriving one release later in iOS 9.0.
- Why does HealthKit name the same vitamin twice?
- Apple documents several B vitamins under both their chemical name and their number. dietaryThiamin is B1, dietaryRiboflavin is B2, dietaryNiacin is B3, dietaryPantothenicAcid is B5 and dietaryBiotin is B7, while dietaryVitaminB6 is documented as pyridoxine and dietaryVitaminB12 as cyanocobalamin. Food databases pick one convention or the other, so map both.
All 39 identifiers above were read from Apple’s documentation on 2026-08-28. See the full 240-identifier table for every group at once, or the datasets for the same data as JSON and CSV. Apple’s abstracts are quoted for identification; the grouping, the aggregation split and the cross-platform mapping are AIFitnessAPI’s.