Data Types & Units
- iOS supports HealthKit-specific types such as workouts, ECG, sleep stages, nutrition, and many biometrics.
- Android supports Health Connect types including steps, heart rate, sleep, speed/distance, nutrition, hydration, menstruation flow, and more.
The plugin exposes two convenience lists:
// iOSconst List<HealthDataType> dataTypesIOS = [...];
// Androidconst List<HealthDataType> dataTypesAndroid = [...];Use them for quick testing or to build permission requests.
Complete Data Types Reference
Section titled “Complete Data Types Reference”The following table shows all supported health data types, their units, and platform availability:
| Data Type | Unit | Apple Health | Google Health Connect | Comments |
|---|---|---|---|---|
| ACTIVE_ENERGY_BURNED | CALORIES | yes | yes | |
| ATRIAL_FIBRILLATION_BURDEN | PERCENTAGE | yes | ||
| BASAL_ENERGY_BURNED | CALORIES | yes | yes | |
| BLOOD_GLUCOSE | MILLIGRAM_PER_DECILITER | yes | yes | |
| BLOOD_OXYGEN | PERCENTAGE | yes | yes | |
| BLOOD_PRESSURE_DIASTOLIC | MILLIMETER_OF_MERCURY | yes | yes | |
| BLOOD_PRESSURE_SYSTOLIC | MILLIMETER_OF_MERCURY | yes | yes | |
| BODY_FAT_PERCENTAGE | PERCENTAGE | yes | yes | |
| BODY_MASS_INDEX | NO_UNIT | yes | yes | |
| BODY_TEMPERATURE | DEGREE_CELSIUS | yes | yes | |
| BODY_WATER_MASS | KILOGRAMS | yes | ||
| ELECTRODERMAL_ACTIVITY | SIEMENS | yes | ||
| HEART_RATE | BEATS_PER_MINUTE | yes | yes | |
| HEIGHT | METERS | yes | yes | |
| RESTING_HEART_RATE | BEATS_PER_MINUTE | yes | yes | |
| RESPIRATORY_RATE | RESPIRATIONS_PER_MINUTE | yes | yes | |
| PERIPHERAL_PERFUSION_INDEX | PERCENTAGE | yes | ||
| STEPS | COUNT | yes | yes | |
| WAIST_CIRCUMFERENCE | METERS | yes | ||
| WALKING_HEART_RATE | BEATS_PER_MINUTE | yes | ||
| WEIGHT | KILOGRAMS | yes | yes | |
| DISTANCE_WALKING_RUNNING | METERS | yes | ||
| FLIGHTS_CLIMBED | COUNT | yes | yes | |
| DISTANCE_DELTA | METERS | yes | ||
| MINDFULNESS | MINUTES | yes | ||
| SLEEP_ASLEEP | MINUTES | yes | yes | on iOS, this refers to asleepUnspecified, and on Android this refers to STAGE_TYPE_SLEEPING (asleep but specific stage is unknown) |
| SLEEP_AWAKE | MINUTES | yes | yes | |
| SLEEP_AWAKE_IN_BED | MINUTES | yes | ||
| SLEEP_DEEP | MINUTES | yes | yes | |
| SLEEP_IN_BED | MINUTES | yes | ||
| SLEEP_LIGHT | MINUTES | yes | yes | on iOS, this refers to asleepCore |
| SLEEP_OUT_OF_BED | MINUTES | yes | ||
| SLEEP_REM | MINUTES | yes | yes | |
| SLEEP_UNKNOWN | MINUTES | yes | ||
| SLEEP_SESSION | MINUTES | yes | ||
| WATER | LITER | yes | yes | |
| EXERCISE_TIME | MINUTES | yes | ||
| WORKOUT | NO_UNIT | yes | yes | See workout types table below |
| HIGH_HEART_RATE_EVENT | NO_UNIT | yes | Requires Apple Watch to write the data | |
| LOW_HEART_RATE_EVENT | NO_UNIT | yes | Requires Apple Watch to write the data | |
| IRREGULAR_HEART_RATE_EVENT | NO_UNIT | yes | Requires Apple Watch to write the data | |
| HEART_RATE_VARIABILITY_RMSSD | MILLISECONDS | yes | ||
| HEART_RATE_VARIABILITY_SDNN | MILLISECONDS | yes | Requires Apple Watch to write the data | |
| HEADACHE_NOT_PRESENT | MINUTES | yes | ||
| HEADACHE_MILD | MINUTES | yes | ||
| HEADACHE_MODERATE | MINUTES | yes | ||
| HEADACHE_SEVERE | MINUTES | yes | ||
| HEADACHE_UNSPECIFIED | MINUTES | yes | ||
| AUDIOGRAM | DECIBEL_HEARING_LEVEL | yes | ||
| ELECTROCARDIOGRAM | VOLT | yes | Requires Apple Watch to write the data | |
| NUTRITION | NO_UNIT | yes | yes | |
| INSULIN_DELIVERY | INTERNATIONAL_UNIT | yes | ||
| MENSTRUATION_FLOW | NO_UNIT | yes | yes | |
| WATER_TEMPERATURE | DEGREE_CELSIUS | yes | Related to/Requires Apple Watch Ultra’s Underwater Diving Workout | |
| UNDERWATER_DEPTH | METER | yes | Related to/Requires Apple Watch Ultra’s Underwater Diving Workout | |
| UV_INDEX | COUNT | yes | ||
| LEAN_BODY_MASS | KILOGRAMS | yes | yes | |
| WALKING_SPEED | METER_PER_SECOND | yes | (yes) | On Android this will be recorded as SPEED with similar unit |
| APPLE_MOVE_TIME | SECOND | yes | READ Only | |
| APPLE_STAND_HOUR | HOUR | yes | READ Only |
Workout Types
Section titled “Workout Types”The following table shows all supported workout activity types and their platform availability:
| Workout Type | Apple Health | Google Health Connect | Comments |
|---|---|---|---|
| AMERICAN_FOOTBALL | yes | yes | |
| ARCHERY | yes | ||
| AUSTRALIAN_FOOTBALL | yes | yes | |
| BADMINTON | yes | yes | |
| BARRE | yes | ||
| BASEBALL | yes | yes | |
| BASKETBALL | yes | yes | |
| BIKING | yes | yes | on iOS this is CYCLING, but name changed here to fit with Android |
| BOWLING | yes | ||
| BOXING | yes | yes | |
| CALISTHENICS | yes | ||
| CARDIO_DANCE | yes | (yes) | on Android this will be stored as DANCING |
| CLIMBING | yes | ||
| COOLDOWN | yes | ||
| CORE_TRAINING | yes | ||
| CRICKET | yes | yes | |
| CROSS_COUNTRY_SKIING | yes | (yes) | on Android this will be stored as SKIING |
| CROSS_TRAINING | yes | ||
| CURLING | yes | ||
| DANCING | yes | yes | on iOS this is DANCE, but name changed here to fit with Android |
| DISC_SPORTS | yes | ||
| DOWNHILL_SKIING | yes | (yes) | on Android this will be stored as SKIING |
| ELLIPTICAL | yes | yes | |
| EQUESTRIAN_SPORTS | yes | ||
| FENCING | yes | yes | |
| FISHING | yes | ||
| FITNESS_GAMING | yes | ||
| FLEXIBILITY | yes | ||
| FRISBEE_DISC | yes | ||
| FUNCTIONAL_STRENGTH_TRAINING | yes | (yes) | on Android this will be stored as STRENGTH_TRAINING |
| GOLF | yes | yes | |
| GUIDED_BREATHING | yes | ||
| GYMNASTICS | yes | yes | |
| HAND_CYCLING | yes | ||
| HANDBALL | yes | yes | |
| HIGH_INTENSITY_INTERVAL_TRAINING | yes | yes | |
| HIKING | yes | yes | |
| HOCKEY | yes | ||
| HUNTING | yes | ||
| JUMP_ROPE | yes | ||
| KICKBOXING | yes | ||
| LACROSSE | yes | ||
| MARTIAL_ARTS | yes | yes | |
| MIND_AND_BODY | yes | ||
| MIXED_CARDIO | yes | ||
| PADDLE_SPORTS | yes | ||
| PARAGLIDING | yes | ||
| PICKLEBALL | yes | ||
| PILATES | yes | yes | |
| PLAY | yes | ||
| PREPARATION_AND_RECOVERY | yes | ||
| RACQUETBALL | yes | yes | |
| ROCK_CLIMBING | (yes) | yes | on iOS this will be stored as CLIMBING |
| ROWING | yes | yes | |
| RUGBY | yes | yes | |
| RUNNING | yes | yes | |
| RUNNING_TREADMILL | (yes) | yes | on iOS this will be stored as RUNNING |
| SAILING | yes | yes | |
| SCUBA_DIVING | yes | ||
| SKATING | yes | yes | On iOS this will be stored as SKATING_SPORTS |
| SKIING | (yes) | yes | on iOS you have to choose between CROSS_COUNTRY_SKIING and DOWNHILL_SKIING |
| SNOW_SPORTS | yes | ||
| SNOWBOARDING | yes | yes | |
| SOCCER | yes | ||
| SOCIAL_DANCE | yes | (yes) | on Android this will be stored as DANCING |
| SOFTBALL | yes | yes | |
| SQUASH | yes | yes | |
| STAIR_CLIMBING | yes | yes | |
| STAIR_CLIMBING_MACHINE | yes | ||
| STAIRS | yes | ||
| STEP_TRAINING | yes | ||
| STRENGTH_TRAINING | (yes) | yes | on iOS you have to choose between FUNCTIONAL_STRENGTH_TRAINING or TRADITIONAL_STRENGTH_TRAINING |
| SURFING | yes | yes | on iOS this is SURFING_SPORTS, but name changed here to fit with Android |
| SWIMMING | yes | (yes) | on Android you have to choose between SWIMMING_OPEN_WATER and SWIMMING_POOL |
| SWIMMING_OPEN_WATER | (yes) | yes | on iOS this will be stored as SWIMMING |
| SWIMMING_POOL | (yes) | yes | on iOS this will be stored as SWIMMING |
| TABLE_TENNIS | yes | yes | |
| TAI_CHI | yes | ||
| TENNIS | yes | yes | |
| TRACK_AND_FIELD | yes | ||
| TRADITIONAL_STRENGTH_TRAINING | yes | (yes) | on Android this will be stored as STRENGTH_TRAINING |
| UNDERWATER_DIVING | yes | ||
| VOLLEYBALL | yes | yes | |
| WALKING | yes | yes | |
| WATER_FITNESS | yes | ||
| WATER_POLO | yes | yes | |
| WATER_SPORTS | yes | ||
| WEIGHTLIFTING | yes | ||
| WHEELCHAIR | (yes) | yes | on iOS you have to choose between WHEELCHAIR_RUN_PACE or WHEELCHAIR_WALK_PACE |
| WHEELCHAIR_RUN_PACE | yes | (yes) | on Android this will be stored as WHEELCHAIR |
| WHEELCHAIR_WALK_PACE | yes | (yes) | on Android this will be stored as WHEELCHAIR |
| WRESTLING | yes | ||
| YOGA | yes | yes | |
| OTHER | yes | yes |
Each type maps to a default unit via dataTypeToUnit (e.g., HEART_RATE → BEATS_PER_MINUTE, WEIGHT → KILOGRAM). On reads you can optionally request a preferred unit per type.
final unit = dataTypeToUnit[HealthDataType.HEART_RATE]; // BEATS_PER_MINUTESleep & Headache Categories
Section titled “Sleep & Headache Categories”For sleep and headache categorical types, values are converted to minutes based on the dateFrom/dateTo interval.
Workouts
Section titled “Workouts”Workouts are represented as HealthDataType.WORKOUT with a WorkoutHealthValue that may include:
workoutActivityTypetotalEnergyBurned(+ unit)totalDistance(+ unit)totalSteps(+ unit)
An additional workoutSummary is attached when available.
Special Data
Section titled “Special Data”- ECG (
ELECTROCARDIOGRAM) parses voltage series, average heart rate, sampling frequency, and classification. - Nutrition (
NUTRITION) supports a wide set of macro/micronutrients. - Menstruation flow (
MENSTRUATION_FLOW) normalizes platform-specific values.
Full Enums
Section titled “Full Enums”See the source for complete enums and mappings:
lib/src/health_value_types.dartlib/src/heath_data_types.dart
See Also
Section titled “See Also”- API Enums - Complete enumeration reference
- Basic Reading - Reading health data
- Basic Writing - Writing health data