Skip to content
CARP Docs
Ask AISystemLightDark
On this page

Data types

Every HealthDataType with its default unit and its availability on Apple Health and Google Health Connect, plus the supported workout types.

Copy MarkdownOpen inOpen in GitHubView as MarkdownOpen in Scira AIOpen in ChatGPTOpen in ClaudeOpen in Cursor

Data types are defined in the HealthDataType enum, and each type has a default HealthDataUnit.

  • 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 and distance, nutrition, hydration, menstruation flow, and more.

Platform type lists

The plugin exposes a list of the supported types for each platform:

// iOS
const List<HealthDataType> dataTypesIOS = [...];

// Android
const List<HealthDataType> dataTypesAndroid = [...];

Use them for quick testing or to build permission requests.

Health data types

All supported health data types, their units, and their platform availability. In the platform columns, (yes) marks a type that is mapped to, or must be replaced by, another type on that platform; the comments give the details.

Data typeUnitApple HealthGoogle Health ConnectComments
ACTIVE_ENERGY_BURNEDCALORIESyesyes
ATRIAL_FIBRILLATION_BURDENPERCENTAGEyes
BASAL_ENERGY_BURNEDCALORIESyesyes
BLOOD_GLUCOSEMILLIGRAM_PER_DECILITERyesyes
BLOOD_OXYGENPERCENTAGEyesyes
BLOOD_PRESSURE_DIASTOLICMILLIMETER_OF_MERCURYyesyes
BLOOD_PRESSURE_SYSTOLICMILLIMETER_OF_MERCURYyesyes
BODY_FAT_PERCENTAGEPERCENTAGEyesyes
BODY_MASS_INDEXNO_UNITyesyes
BODY_TEMPERATUREDEGREE_CELSIUSyesyes
BODY_WATER_MASSKILOGRAMSyes
ELECTRODERMAL_ACTIVITYSIEMENSyes
HEART_RATEBEATS_PER_MINUTEyesyes
HEIGHTMETERSyesyes
RESTING_HEART_RATEBEATS_PER_MINUTEyesyes
RESPIRATORY_RATERESPIRATIONS_PER_MINUTEyesyes
PERIPHERAL_PERFUSION_INDEXPERCENTAGEyes
STEPSCOUNTyesyes
WAIST_CIRCUMFERENCEMETERSyes
WALKING_HEART_RATEBEATS_PER_MINUTEyes
WEIGHTKILOGRAMSyesyes
DISTANCE_WALKING_RUNNINGMETERSyes
FLIGHTS_CLIMBEDCOUNTyesyes
DISTANCE_DELTAMETERSyes
MINDFULNESSMINUTESyes
SLEEP_ASLEEPMINUTESyesyesOn iOS, this refers to asleepUnspecified, and on Android this refers to STAGE_TYPE_SLEEPING (asleep but specific stage is unknown)
SLEEP_AWAKEMINUTESyesyes
SLEEP_AWAKE_IN_BEDMINUTESyes
SLEEP_DEEPMINUTESyesyes
SLEEP_IN_BEDMINUTESyes
SLEEP_LIGHTMINUTESyesyesOn iOS, this refers to asleepCore
SLEEP_OUT_OF_BEDMINUTESyes
SLEEP_REMMINUTESyesyes
SLEEP_UNKNOWNMINUTESyes
SLEEP_SESSIONMINUTESyes
WATERLITERyesyes
EXERCISE_TIMEMINUTESyes
WORKOUTNO_UNITyesyesSee workout types table below
HIGH_HEART_RATE_EVENTNO_UNITyesRequires Apple Watch to write the data
LOW_HEART_RATE_EVENTNO_UNITyesRequires Apple Watch to write the data
IRREGULAR_HEART_RATE_EVENTNO_UNITyesRequires Apple Watch to write the data
HEART_RATE_VARIABILITY_RMSSDMILLISECONDSyes
HEART_RATE_VARIABILITY_SDNNMILLISECONDSyesRequires Apple Watch to write the data
HEADACHE_NOT_PRESENTMINUTESyes
HEADACHE_MILDMINUTESyes
HEADACHE_MODERATEMINUTESyes
HEADACHE_SEVEREMINUTESyes
HEADACHE_UNSPECIFIEDMINUTESyes
AUDIOGRAMDECIBEL_HEARING_LEVELyes
ELECTROCARDIOGRAMVOLTyesRequires Apple Watch to write the data
NUTRITIONNO_UNITyesyes
INSULIN_DELIVERYINTERNATIONAL_UNITyes
MENSTRUATION_FLOWNO_UNITyesyes
WATER_TEMPERATUREDEGREE_CELSIUSyesRelated to/Requires Apple Watch Ultra's Underwater Diving Workout
UNDERWATER_DEPTHMETERyesRelated to/Requires Apple Watch Ultra's Underwater Diving Workout
UV_INDEXCOUNTyes
LEAN_BODY_MASSKILOGRAMSyesyes
WALKING_SPEEDMETER_PER_SECONDyes(yes)On Android this will be recorded as SPEED with similar unit
APPLE_MOVE_TIMESECONDyesREAD Only
APPLE_STAND_HOURHOURyesREAD Only

Workout types

All supported workout activity types (HealthWorkoutActivityType) and their platform availability. Workouts are represented as HealthDataType.WORKOUT; see Workouts for the value they carry.

Workout typeApple HealthGoogle Health ConnectComments
AMERICAN_FOOTBALLyesyes
ARCHERYyes
AUSTRALIAN_FOOTBALLyesyes
BADMINTONyesyes
BARREyes
BASEBALLyesyes
BASKETBALLyesyes
BIKINGyesyesOn iOS this is CYCLING, but name changed here to fit with Android
BOWLINGyes
BOXINGyesyes
CALISTHENICSyes
CARDIO_DANCEyes(yes)On Android this will be stored as DANCING
CLIMBINGyes
COOLDOWNyes
CORE_TRAININGyes
CRICKETyesyes
CROSS_COUNTRY_SKIINGyes(yes)On Android this will be stored as SKIING
CROSS_TRAININGyes
CURLINGyes
DANCINGyesyesOn iOS this is DANCE, but name changed here to fit with Android
DISC_SPORTSyes
DOWNHILL_SKIINGyes(yes)On Android this will be stored as SKIING
ELLIPTICALyesyes
EQUESTRIAN_SPORTSyes
FENCINGyesyes
FISHINGyes
FITNESS_GAMINGyes
FLEXIBILITYyes
FRISBEE_DISCyes
FUNCTIONAL_STRENGTH_TRAININGyes(yes)On Android this will be stored as STRENGTH_TRAINING
GOLFyesyes
GUIDED_BREATHINGyes
GYMNASTICSyesyes
HAND_CYCLINGyes
HANDBALLyesyes
HIGH_INTENSITY_INTERVAL_TRAININGyesyes
HIKINGyesyes
HOCKEYyes
HUNTINGyes
JUMP_ROPEyes
KICKBOXINGyes
LACROSSEyes
MARTIAL_ARTSyesyes
MIND_AND_BODYyes
MIXED_CARDIOyes
PADDLE_SPORTSyes
PARAGLIDINGyes
PICKLEBALLyes
PILATESyesyes
PLAYyes
PREPARATION_AND_RECOVERYyes
RACQUETBALLyesyes
ROCK_CLIMBING(yes)yesOn iOS this will be stored as CLIMBING
ROWINGyesyes
RUGBYyesyes
RUNNINGyesyes
RUNNING_TREADMILL(yes)yesOn iOS this will be stored as RUNNING
SAILINGyesyes
SCUBA_DIVINGyes
SKATINGyesyesOn iOS this will be stored as SKATING_SPORTS
SKIING(yes)yesOn iOS you have to choose between CROSS_COUNTRY_SKIING and DOWNHILL_SKIING
SNOW_SPORTSyes
SNOWBOARDINGyesyes
SOCCERyes
SOCIAL_DANCEyes(yes)On Android this will be stored as DANCING
SOFTBALLyesyes
SQUASHyesyes
STAIR_CLIMBINGyesyes
STAIR_CLIMBING_MACHINEyes
STAIRSyes
STEP_TRAININGyes
STRENGTH_TRAINING(yes)yesOn iOS you have to choose between FUNCTIONAL_STRENGTH_TRAINING or TRADITIONAL_STRENGTH_TRAINING
SURFINGyesyesOn iOS this is SURFING_SPORTS, but name changed here to fit with Android
SWIMMINGyes(yes)On Android you have to choose between SWIMMING_OPEN_WATER and SWIMMING_POOL
SWIMMING_OPEN_WATER(yes)yesOn iOS this will be stored as SWIMMING
SWIMMING_POOL(yes)yesOn iOS this will be stored as SWIMMING
TABLE_TENNISyesyes
TAI_CHIyes
TENNISyesyes
TRACK_AND_FIELDyes
TRADITIONAL_STRENGTH_TRAININGyes(yes)On Android this will be stored as STRENGTH_TRAINING
UNDERWATER_DIVINGyes
VOLLEYBALLyesyes
WALKINGyesyes
WATER_FITNESSyes
WATER_POLOyesyes
WATER_SPORTSyes
WEIGHTLIFTINGyes
WHEELCHAIR(yes)yesOn iOS you have to choose between WHEELCHAIR_RUN_PACE or WHEELCHAIR_WALK_PACE
WHEELCHAIR_RUN_PACEyes(yes)On Android this will be stored as WHEELCHAIR
WHEELCHAIR_WALK_PACEyes(yes)On Android this will be stored as WHEELCHAIR
WRESTLINGyes
YOGAyesyes
OTHERyesyes

Units

Each type maps to a default unit through dataTypeToUnit, for example HEART_RATE → BEATS_PER_MINUTE and WEIGHT → KILOGRAM. When you read data, you can optionally request a preferred unit per type.

final unit = dataTypeToUnit[HealthDataType.HEART_RATE]; // BEATS_PER_MINUTE

Sleep and headache categories

For the categorical sleep and headache types, values are converted to minutes based on the dateFrom/dateTo interval.

Workouts

A workout is a HealthDataType.WORKOUT data point with a WorkoutHealthValue, which may include:

  • workoutActivityType
  • totalEnergyBurned (+ unit)
  • totalDistance (+ unit)
  • totalSteps (+ unit)

An additional workoutSummary is attached when available.

Special data

TypeHandling
ECG (ELECTROCARDIOGRAM)Parses the voltage series, average heart rate, sampling frequency, and classification.
Nutrition (NUTRITION)Supports a wide set of macro- and micronutrients.
Menstruation flow (MENSTRUATION_FLOW)Normalizes platform-specific values.

Full enums

The complete enums and mappings are defined in the plugin source, in the GitHub repository:

  • lib/src/health_value_types.dart
  • lib/src/heath_data_types.dart

The generated enum reference is in the API reference on pub.dev.

See also

Basic reading

Read health data.

Basic writing

Write health data.

Permissions

Request access to these data types.

Quick links

Page · DocumentationCARP DocumentationPage · DocumentationIntroductionPage · DocumentationQuickstartPage · DocumentationTerminologyPage · DocumentationArchitecture