Which Health Connect data types can I get, and which apps write them?
Life Dashboard Companion, an open-source Android app, reads 33 Health Connect data types and sends each under its own key as JSON, from steps, sleep stages and heart rate to blood pressure, nutrition and cycle tracking. What actually arrives depends on what your watch's app writes to Health Connect: Samsung Health doesn't write heart rate variability or resting heart rate, and Garmin Connect writes neither of those nor oxygen saturation.
The iPhone app sends 29 of the 33 keys from its 28 Apple Health types (active energy fills both calorie keys), in the same format and units. Screen time isn't a Health Connect type, but the Android app sends it too, as a payload of its own. The tables below are as of October 2026, from each app's own list of what it writes to Health Connect.
All 33 types at a glance
Each type has its own key in the payload, and its unit is fixed, whatever unit the source app used. A type over a period carries start_time and end_time, a type at a moment carries time, and every record carries a uuid and the source app that wrote it.
| Type | Payload key | Unit | Android | iPhone |
|---|---|---|---|---|
| Steps | steps | steps | Yes | Yes |
| Distance | distance | m | Yes | Yes |
| Active calories | active_calories | kcal | Yes | Yes |
| Total calories | total_calories | kcal | Yes | Yes |
| Exercise sessions | exercise | s | Yes | Yes |
| Weight | weight | kg | Yes | Yes |
| Height | height | m | Yes | Yes |
| Body temperature | body_temperature | °C | Yes | Yes |
| Body fat | body_fat | % | Yes | Yes |
| Lean body mass | lean_body_mass | kg | Yes | Yes |
| Bone mass | bone_mass | kg | Yes | No |
| Body water mass | body_water_mass | kg | Yes | No |
| Heart rate | heart_rate | bpm | Yes | Yes |
| Resting heart rate | resting_heart_rate | bpm | Yes | Yes |
| Heart rate variability (HRV) | heart_rate_variability | ms | Yes | Yes |
| Blood pressure | blood_pressure | mmHg | Yes | Yes |
| Blood glucose | blood_glucose | mmol/L | Yes | Yes |
| Oxygen saturation (SpO2) | oxygen_saturation | % | Yes | Yes |
| Respiratory rate | respiratory_rate | breaths/min | Yes | Yes |
| Sleep | sleep | s | Yes | Yes |
| Mindfulness | mindfulness | s | Yes | Yes |
| Hydration | hydration | L | Yes | Yes |
| Nutrition | nutrition | kcal, g, mg, mcg | Yes | Yes |
| Menstruation period | menstruation_period | none | Yes | Yes |
| Menstruation flow | menstruation_flow | none | Yes | Yes |
| Intermenstrual bleeding | intermenstrual_bleeding | none | Yes | Yes |
| Ovulation test | ovulation_test | none | Yes | Yes |
| Cervical mucus | cervical_mucus | none | Yes | Yes |
| Sexual activity | sexual_activity | none | Yes | Yes |
| Basal body temperature | basal_body_temperature | °C | Yes | Yes |
| Basal metabolic rate | basal_metabolic_rate | kcal/day | Yes | No |
| VO2 max | vo2_max | mL/kg/min | Yes | Yes |
| Skin temperature | skin_temperature | °C | Yes | No |
Which apps write which type
As of October 2026. Yes means the type is in that app's own list of what it writes to Health Connect, and No that it isn't. From exercise means the app writes it only with the workouts it records. Withings publishes no list, so its column names the Withings device that measures the type, or says Unknown; check Health Connect > App permissions > Withings on your phone.
| Type | Samsung Health | Garmin Connect | Google Health | Oura | Withings | Gadgetbridge |
|---|---|---|---|---|---|---|
| Steps | Yes | Yes | Yes | Yes | Watch | Yes |
| Distance | From exercise | Yes | Yes | Yes | Watch | Yes |
| Active calories | No | Yes | No | Yes | Unknown | From exercise |
| Total calories | From exercise | Yes | Yes | No | Unknown | From exercise |
| Exercise sessions | Yes | Yes | Yes | Yes | Unknown | Yes |
| Weight | Yes | Yes | Yes | Yes | Scale | Yes |
| Height | Yes | No | No | Yes | Unknown | No |
| Body temperature | No | No | Yes | No | Thermometer | Yes |
| Body fat | Yes | Yes | Yes | No | Scale | No |
| Lean body mass | No | No | No | No | Scale | No |
| Bone mass | No | No | No | No | Scale | No |
| Body water mass | No | No | No | No | Scale | No |
| Heart rate | Yes | Yes | Yes | Yes | Watch, blood pressure monitor | Yes |
| Resting heart rate | No | No | Yes | No | Unknown | Yes |
| Heart rate variability (HRV) | No | No | Yes | Yes | Unknown | Yes |
| Blood pressure | Yes | No | No | No | Blood pressure monitor | Yes |
| Blood glucose | Yes | No | Yes | No | Unknown | Yes |
| Oxygen saturation (SpO2) | Yes | No | No* | No | Watch | Yes |
| Respiratory rate | No | No | Yes | No | Unknown | Yes |
| Sleep | Yes | Yes | Yes | Yes | Watch | Yes |
| Mindfulness | No | No | No | No | Unknown | No |
| Hydration | No | No | Yes | No | Unknown | No |
| Nutrition | Yes | No | Yes | No | Unknown | No |
| Menstruation period | No | No | Yes | No | Unknown | No |
| Menstruation flow | No | No | Yes | No | Unknown | No |
| Intermenstrual bleeding | No | No | Yes | No | Unknown | No |
| Ovulation test | No | No | No | No | Unknown | No |
| Cervical mucus | No | No | No | No | Unknown | No |
| Sexual activity | No | No | No | No | Unknown | No |
| Basal body temperature | No | No | No | No | Unknown | No |
| Basal metabolic rate | Yes | No | No | No | Unknown | No |
| VO2 max | From exercise | No | Yes | No | Unknown | Yes |
| Skin temperature | No | No | Yes | No | Unknown | Yes |
* Not in Google's list, but Fitbit's nightly SpO2 was seen arriving through Health Connect in September 2026, as DATA_SOURCES.md records.
Each app can change what it shares with any update, so look on your own phone under Health Connect > App permissions > the app. Types none of these six apps lists, such as ovulation tests or mindfulness sessions, come from other apps: cycle trackers, food loggers or meditation apps that write to Health Connect.
What each app keeps to itself
- Samsung Health doesn't share heart rate variability, resting heart rate, skin temperature, respiratory rate, cycle tracking, stress, ECG or Energy Score. Distance, total calories and VO2 max come only from workouts, and active calories isn't in its list. See Samsung Health to your own server.
- Garmin Connect keeps Body Battery, stress, HRV status, training load, Pulse Ox, respiration and resting heart rate. Its Health Connect sync needs Garmin Connect 5.14.1 or later on Android 14 or later. See Garmin in Home Assistant.
- Google Health, the app for Fitbit and Pixel Watch, lists neither oxygen saturation nor active calories. See Fitbit and Pixel Watch in Home Assistant.
- Oura keeps its Readiness, Sleep and Activity scores, blood oxygen, temperature, resting heart rate and respiratory rate. See the Oura guide.
- Withings keeps scores and analyses such as the Sleep score, Vascular Age, Nerve Health Score and ECG recordings. See the Withings guide.
- Gadgetbridge writes what your watch model records and Gadgetbridge supports for it. Stress and scores the watch computes stay in Gadgetbridge. See the Gadgetbridge guide.
Health Connect has no type for stress, Body Battery, training load, ECG, Energy Score or any vendor's scores, so no app can pass those on through it.
Activity
Steps
Key steps: count, an integer, over an interval. Android and iPhone.
Written by Samsung Health, Garmin Connect, Google Health, Oura and Gadgetbridge. Withings watches measure it, but Withings publishes no list of what it writes.
Distance
Key distance: meters, over an interval. Android and iPhone.
Written by Garmin Connect, Google Health, Oura and Gadgetbridge, and by Samsung Health from exercise only. Withings watches measure it, but Withings publishes no list of what it writes.
Active calories
Key active_calories: calories in kcal, over an interval. Android and iPhone.
Written by Garmin Connect and Oura, and by Gadgetbridge from exercise only. Not in the lists of Samsung Health or Google Health.
Total calories
Key total_calories: calories in kcal, over an interval. Android and iPhone. On an iPhone this is resting plus active energy, because Apple Health has no total energy type.
Written by Garmin Connect and Google Health, and by Samsung Health and Gadgetbridge from exercise only. Not in Oura's list.
Exercise sessions
Key exercise: type and duration_seconds, over an interval. Android and iPhone. Android sends Health Connect's exercise type number as a string, such as "56" for running; an iPhone sends a name, such as "running".
Written by Samsung Health, Garmin Connect, Google Health, Oura and Gadgetbridge.
Body
Weight
Key weight: kilograms, at a moment. Android and iPhone.
Written by Samsung Health, Garmin Connect, Google Health, Oura and Gadgetbridge. Withings scales measure it, but Withings publishes no list of what it writes.
Height
Key height: meters, at a moment. Android and iPhone.
Written by Samsung Health and Oura. Not in the lists of Garmin Connect, Google Health or Gadgetbridge.
Body temperature
Key body_temperature: celsius, at a moment. Android and iPhone.
Written by Google Health and Gadgetbridge. Not in the lists of Samsung Health, Garmin Connect or Oura. The Withings thermometer measures it, but Withings publishes no list of what it writes.
Body fat
Key body_fat: percentage, 0 to 100, at a moment. Android and iPhone.
Written by Samsung Health, Garmin Connect and Google Health. Not in the lists of Oura or Gadgetbridge. Withings scales measure it, but Withings publishes no list of what it writes.
Lean body mass
Key lean_body_mass: kilograms, at a moment. Android and iPhone.
None of the six apps on this page lists it. Withings scales measure it, but Withings publishes no list of what it writes.
Bone mass
Key bone_mass: kilograms, at a moment. Android only. Apple Health has no bone mass type.
None of the six apps on this page lists it. Withings scales measure it, but Withings publishes no list of what it writes.
Body water mass
Key body_water_mass: kilograms, at a moment. Android only. Apple Health has no body water type.
None of the six apps on this page lists it. Withings scales measure it, but Withings publishes no list of what it writes.
Heart and breathing
Heart rate
Key heart_rate: bpm, an integer, one object per sample. Android and iPhone. From Android, each sample's uuid is the record's ID plus # and the time in epoch milliseconds.
Written by Samsung Health, Garmin Connect, Google Health, Oura and Gadgetbridge. Withings watches and blood pressure monitors measure it, but Withings publishes no list of what it writes.
Resting heart rate
Key resting_heart_rate: bpm, an integer, at a moment. Android and iPhone.
Written by Google Health and Gadgetbridge. Not in the lists of Samsung Health, Garmin Connect or Oura.
Heart rate variability (HRV)
Key heart_rate_variability: heart_rate_variability_millis, at a moment. Android and iPhone. Android sends RMSSD, the measure Health Connect stores. An iPhone sends SDNN, the one Apple Health stores. They're not the same number.
Written by Google Health, Oura and Gadgetbridge. Not in the lists of Samsung Health or Garmin Connect.
Blood pressure
Key blood_pressure: systolic and diastolic, at a moment. Android and iPhone.
Written by Samsung Health and Gadgetbridge. Not in the lists of Garmin Connect, Google Health or Oura. Withings blood pressure monitors measure it, but Withings publishes no list of what it writes.
Blood glucose
Key blood_glucose: mmol_per_liter, at a moment. Android and iPhone.
Written by Samsung Health, Google Health and Gadgetbridge. Not in the lists of Garmin Connect or Oura.
Oxygen saturation (SpO2)
Key oxygen_saturation: percentage, 0 to 100, at a moment. Android and iPhone.
Written by Samsung Health and Gadgetbridge. Not in the lists of Garmin Connect or Oura. Fitbit's nightly SpO2 was seen arriving through Health Connect in September 2026, though it isn't in Google's list. Withings watches measure it, but Withings publishes no list of what it writes.
Respiratory rate
Key respiratory_rate: rate in breaths per minute, at a moment. Android and iPhone.
Written by Google Health and Gadgetbridge. Not in the lists of Samsung Health, Garmin Connect or Oura.
Sleep and mindfulness
Sleep
Key sleep: session_end_time, duration_seconds and stages, each stage with stage, start_time, end_time and duration_seconds. Android and iPhone. Android's stage values are unknown, awake, sleeping, out_of_bed, light, deep, rem and awake_in_bed. An iPhone also sends in_bed, and never out_of_bed or awake_in_bed.
Written by Samsung Health, Garmin Connect, Google Health, Oura and Gadgetbridge. Withings watches measure it, but Withings publishes no list of what it writes.
Mindfulness
Key mindfulness: duration_seconds and an optional title, over an interval. Android and iPhone. An iPhone sends no title.
None of the six apps on this page lists it.
Food and drink
Hydration
Key hydration: liters, over an interval. Android and iPhone.
Written by Google Health. Not in the lists of Samsung Health, Garmin Connect, Oura or Gadgetbridge.
Nutrition
Key nutrition: calories in kcal, protein_grams, carbs_grams, fat_grams, name, meal_type and 38 nutrient fields, all optional, over an interval. Android and iPhone. Each nutrient key ends in its unit, such as sodium_mg. An iPhone sends 34 of the 38 nutrients and no meal_type.
Written by Samsung Health and Google Health. Not in the lists of Garmin Connect, Oura or Gadgetbridge.
Cycle tracking
Menstruation period
Key menstruation_period: only start_time and end_time. Android and iPhone. An iPhone derives periods from consecutive flow days, because Apple Health has no period record.
Written by Google Health. Not in the lists of Samsung Health, Garmin Connect, Oura or Gadgetbridge.
Menstruation flow
Key menstruation_flow: flow: light, medium, heavy or unknown, at a moment. Android and iPhone.
Written by Google Health. Not in the lists of Samsung Health, Garmin Connect, Oura or Gadgetbridge.
Intermenstrual bleeding
Key intermenstrual_bleeding: only time. Android and iPhone.
Written by Google Health. Not in the lists of Samsung Health, Garmin Connect, Oura or Gadgetbridge.
Ovulation test
Key ovulation_test: result: positive, high, negative, inconclusive or unknown, at a moment. Android and iPhone.
None of the six apps on this page lists it.
Cervical mucus
Key cervical_mucus: appearance and sensation, at a moment. Android and iPhone. An iPhone always sends sensation as unknown.
None of the six apps on this page lists it.
Sexual activity
Key sexual_activity: protection_used: protected, unprotected or unknown, at a moment. Android and iPhone.
None of the six apps on this page lists it.
Basal body temperature
Key basal_body_temperature: celsius, at a moment. Android and iPhone.
None of the six apps on this page lists it.
Metabolism and fitness
Basal metabolic rate
Key basal_metabolic_rate: kilocalories_per_day, at a moment. Android only. Apple Health stores resting energy per interval instead, and an iPhone sends it as part of total_calories.
Written by Samsung Health. Not in the lists of Garmin Connect, Google Health, Oura or Gadgetbridge.
VO2 max
Key vo2_max: vo2_ml_per_min_per_kg, at a moment. Android and iPhone.
Written by Google Health and Gadgetbridge, and by Samsung Health from exercise only. Not in the lists of Garmin Connect or Oura.
Skin temperature
Key skin_temperature: delta_celsius, the change from a baseline, and an optional baseline_celsius, one object per sample. Android only. Apple Health stores an absolute wrist temperature, not a change from a baseline, so an iPhone doesn't send this key.
Written by Google Health and Gadgetbridge. Not in the lists of Samsung Health, Garmin Connect or Oura.
Daily totals
Besides the records, each payload with records carries daily_totals, unless you switch them off: per local day, steps, distance_meters, active_calories and total_calories (kcal), for today and the two days before. They come from Health Connect's own aggregate, which counts a stretch of activity once even when the phone and the watch both recorded it, so they match the Health Connect app. The iPhone app computes them from Apple Health the same way, and sends total_calories only on days with resting energy.
Screen time is sent too
Screen time isn't a Health Connect type. The Android app reads it from Android's usage statistics and sends it as a separate payload with "source": "screen_time": per day a date, total_screen_time_minutes and apps, each app with package, name, minutes and last_used. Every sync sends the last 7 days again. It works on Android 8.0 or newer, without Health Connect. The iPhone app doesn't send screen time. See screen time in Home Assistant.
What the app doesn't send
Health Connect has more record types than these 33. The app doesn't read floors climbed, speed, power, elevation gained, cadence or exercise routes, even when Samsung Health, Garmin Connect, Google Health or Gadgetbridge writes them.
Choose which types go out
- Switch types on and off under Data Types on the Health tab, and grant each one in Health Connect. The setup wizard's The essentials preset turns on only steps, sleep, heart rate, resting heart rate, distance, calories and weight.
- Under Data Resolution, heart rate, heart rate variability, oxygen saturation, respiratory rate and skin temperature can go out as averages per 1, 5 or 15 minutes or per hour, and steps, distance and calories as sums. Every record is the default.
- View on the Health tab shows what the next sync would send. Health Connect to a webhook covers receiving it, and Health Connect to n8n a complete n8n workflow.
Pick your types under Data Types on the Health tab and tap View to see what the next sync would send.
Get the Android app Payload referenceCommon questions
Does Samsung Health sync HRV to Health Connect?
No. As of October 2026, heart rate variability isn't in Samsung's list of what Samsung Health syncs with Health Connect, and neither are resting heart rate, skin temperature and respiratory rate. Google Health, Oura and Gadgetbridge do write HRV.
What does Garmin Connect sync to Health Connect?
Steps, distance, active and total calories, activities as exercise sessions, sleep with stages, heart rate, weight and body fat. HRV, resting heart rate, Pulse Ox, respiration, Body Battery, stress and training load stay with Garmin.
Does the iPhone app send the same types?
It sends 29 of the 33 keys from Apple Health, in the same format and units. It doesn't send bone_mass, body_water_mass, skin_temperature or basal_metabolic_rate, and its heart rate variability is SDNN where Android sends RMSSD.
Can I get these types as a CSV file?
No. The apps send JSON to a webhook, MQTT or Home Assistant, and your receiver stores it in any format it likes.
Can the app write data into Health Connect as well?
The Android app can write weight, height, body fat, lean body mass, bone mass, body water mass and blood pressure from Home Assistant into Health Connect, with the Life Dashboard integration 0.7.0 or newer. See smart scale to Samsung Health. The iPhone app doesn't write to Apple Health.