{
  "name": "Health Connect Record Types 2026",
  "version": "2026.1",
  "publisher": "AIFitnessAPI (aifitnessapi.com)",
  "license": "CC BY 4.0",
  "methodology": "Every record class in Google's Health Connect data-types table (https://developer.android.com/health-and-fitness/health-connect/data-types), read on 2026-10-03, joined to each class's Jetpack reference page. Class name, category, record shape, unit class, mandatory fields and the read/write permission strings are copied from Google's data-types table; the permission evidence column keeps the table text the strings were read from. Aggregate metrics, availability, feature flags and the description are copied from the Jetpack reference. Nothing is inferred: a field Google's pages do not state is null. Where Google's own pages disagree (the data-types table and the HealthPermissions reference spell one exercise-route permission differently), the record page shows both readings; this dataset carries the data-types table's string.",
  "generatedFrom": "src/data/healthConnectRecords.ts (generated by scripts/fetch-health-connect-records.mjs, then by scripts/build-datasets.mjs)",
  "isBasedOn": "https://developer.android.com/health-and-fitness/health-connect/data-types",
  "sourceReadOn": "2026-10-03",
  "fields": {
    "className": "Jetpack record class name",
    "category": "Google's category for the data type, as printed on the data-types page",
    "recordShape": "Interval, Instantaneous or Series, per Google's table",
    "unitClass": "Unit class Google's table names; null where none",
    "mandatoryFields": "Fields Google's table lists as mandatory, semicolon-separated",
    "readPermissions": "android.permission.health read strings for the class, semicolon-separated",
    "writePermissions": "android.permission.health write strings for the class, semicolon-separated",
    "permissionEvidence": "The table text the permission strings were read from",
    "aggregateMetrics": "AggregateMetric constants on the class, semicolon-separated; null where none",
    "addedIn": "Availability as the Jetpack reference prints it",
    "description": "The first paragraph of Google's class description, verbatim",
    "googleDocs": "Google's Jetpack reference page the row was read from",
    "sourceUpdated": "That page's \"Last updated\" date",
    "page": "This site's page for the record"
  },
  "items": [
    {
      "className": "ActiveCaloriesBurnedRecord",
      "qualifiedName": "androidx.health.connect.client.records.ActiveCaloriesBurnedRecord",
      "dataType": "Active calories burned",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": "Energy",
      "mandatoryFields": "endTime; energy; metadata; startTime",
      "readPermissions": "android.permission.health.READ_ACTIVE_CALORIES_BURNED",
      "writePermissions": "android.permission.health.WRITE_ACTIVE_CALORIES_BURNED",
      "permissionEvidence": "Google's data-types table, row \"Active calories burned\" (ActiveCaloriesBurnedRecord): android.permission.health.READ_ACTIVE_CALORIES_BURNED, android.permission.health.WRITE_ACTIVE_CALORIES_BURNED",
      "aggregateMetrics": "ActiveCaloriesBurnedRecord.ACTIVE_CALORIES_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the estimated active energy burned by the user (in kilocalories), excluding basal metabolic rate (BMR). Each record represents the total kilocalories burned over a time interval, so both the start and end times should be set.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/ActiveCaloriesBurnedRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/active-calories-burned-record"
    },
    {
      "className": "ActivityIntensityRecord",
      "qualifiedName": "androidx.health.connect.client.records.ActivityIntensityRecord",
      "dataType": "Activity intensity",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "activityIntensityType; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_ACTIVITY_INTENSITY",
      "writePermissions": "android.permission.health.WRITE_ACTIVITY_INTENSITY",
      "permissionEvidence": "Google's data-types table, row \"Activity intensity\" (ActivityIntensityRecord): android.permission.health.READ_ACTIVITY_INTENSITY, android.permission.health.WRITE_ACTIVITY_INTENSITY",
      "aggregateMetrics": "ActivityIntensityRecord.DURATION_TOTAL; ActivityIntensityRecord.INTENSITY_MINUTES_TOTAL; ActivityIntensityRecord.MODERATE_DURATION_TOTAL; ActivityIntensityRecord.VIGOROUS_DURATION_TOTAL",
      "addedIn": "1.2.0-alpha06",
      "featureFlag": "FEATURE_ACTIVITY_INTENSITY",
      "deprecated": "no",
      "description": "Represents intensity of an activity.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/ActivityIntensityRecord",
      "sourceUpdated": "2026-08-26",
      "page": "https://aifitnessapi.com/health-connect/activity-intensity-record"
    },
    {
      "className": "BasalBodyTemperatureRecord",
      "qualifiedName": "androidx.health.connect.client.records.BasalBodyTemperatureRecord",
      "dataType": "Basal body temperature",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": "Temperature",
      "mandatoryFields": "temperature; measurementLocation; metadata; time",
      "readPermissions": "android.permission.health.READ_BASAL_BODY_TEMPERATURE",
      "writePermissions": "android.permission.health.WRITE_BASAL_BODY_TEMPERATURE",
      "permissionEvidence": "Google's data-types table, row \"Basal body temperature\" (BasalBodyTemperatureRecord): android.permission.health.READ_BASAL_BODY_TEMPERATURE, android.permission.health.WRITE_BASAL_BODY_TEMPERATURE",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the body temperature of a user when at rest (for example, immediately after waking up). Can be used for checking the fertility window. Each data point represents a single instantaneous body temperature measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BasalBodyTemperatureRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/basal-body-temperature-record"
    },
    {
      "className": "BasalMetabolicRateRecord",
      "qualifiedName": "androidx.health.connect.client.records.BasalMetabolicRateRecord",
      "dataType": "Basal metabolic rate",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": "Power",
      "mandatoryFields": "basalMetabolicRate; metadata; time",
      "readPermissions": "android.permission.health.READ_BASAL_METABOLIC_RATE",
      "writePermissions": "android.permission.health.WRITE_BASAL_METABOLIC_RATE",
      "permissionEvidence": "Google's data-types table, row \"Basal metabolic rate\" (BasalMetabolicRateRecord): android.permission.health.READ_BASAL_METABOLIC_RATE, android.permission.health.WRITE_BASAL_METABOLIC_RATE",
      "aggregateMetrics": "BasalMetabolicRateRecord.BASAL_CALORIES_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the BMR of a user. Each record represents the energy a user would burn if at rest all day, based on their height and weight.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BasalMetabolicRateRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/basal-metabolic-rate-record"
    },
    {
      "className": "BloodGlucoseRecord",
      "qualifiedName": "androidx.health.connect.client.records.BloodGlucoseRecord",
      "dataType": "Blood glucose",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "level; specimenSource; mealType; relationToMeal; metadata; time",
      "readPermissions": "android.permission.health.READ_BLOOD_GLUCOSE",
      "writePermissions": "android.permission.health.WRITE_BLOOD_GLUCOSE",
      "permissionEvidence": "Google's data-types table, row \"Blood glucose\" (BloodGlucoseRecord): android.permission.health.READ_BLOOD_GLUCOSE, android.permission.health.WRITE_BLOOD_GLUCOSE",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the concentration of glucose in the blood. Each record represents a single instantaneous blood glucose reading.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BloodGlucoseRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/blood-glucose-record"
    },
    {
      "className": "BloodPressureRecord",
      "qualifiedName": "androidx.health.connect.client.records.BloodPressureRecord",
      "dataType": "Blood pressure",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": "Pressure",
      "mandatoryFields": "systolic; diastolic; bodyPosition; measurementLocation; metadata; time",
      "readPermissions": "android.permission.health.READ_BLOOD_PRESSURE",
      "writePermissions": "android.permission.health.WRITE_BLOOD_PRESSURE",
      "permissionEvidence": "Google's data-types table, row \"Blood pressure\" (BloodPressureRecord): android.permission.health.READ_BLOOD_PRESSURE, android.permission.health.WRITE_BLOOD_PRESSURE",
      "aggregateMetrics": "BloodPressureRecord.DIASTOLIC_AVG; BloodPressureRecord.DIASTOLIC_MAX; BloodPressureRecord.DIASTOLIC_MIN; BloodPressureRecord.SYSTOLIC_AVG; BloodPressureRecord.SYSTOLIC_MAX; BloodPressureRecord.SYSTOLIC_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the blood pressure of a user. Each record represents a single instantaneous blood pressure reading.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BloodPressureRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/blood-pressure-record"
    },
    {
      "className": "BodyFatRecord",
      "qualifiedName": "androidx.health.connect.client.records.BodyFatRecord",
      "dataType": "Body fat",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "percentage; metadata; time",
      "readPermissions": "android.permission.health.READ_BODY_FAT",
      "writePermissions": "android.permission.health.WRITE_BODY_FAT",
      "permissionEvidence": "Google's data-types table, row \"Body fat\" (BodyFatRecord): android.permission.health.READ_BODY_FAT, android.permission.health.WRITE_BODY_FAT",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the body fat percentage of a user. Each record represents a person's total body fat as a percentage of their total body mass.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BodyFatRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/body-fat-record"
    },
    {
      "className": "BodyTemperatureRecord",
      "qualifiedName": "androidx.health.connect.client.records.BodyTemperatureRecord",
      "dataType": "Body temperature",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": "Temperature",
      "mandatoryFields": "temperature; measurementLocation; metadata; time",
      "readPermissions": "android.permission.health.READ_BODY_TEMPERATURE",
      "writePermissions": "android.permission.health.WRITE_BODY_TEMPERATURE",
      "permissionEvidence": "Google's data-types table, row \"Body temperature\" (BodyTemperatureRecord): android.permission.health.READ_BODY_TEMPERATURE, android.permission.health.WRITE_BODY_TEMPERATURE",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the body temperature of a user. Each record represents a single instantaneous body temperature measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BodyTemperatureRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/body-temperature-record"
    },
    {
      "className": "BodyWaterMassRecord",
      "qualifiedName": "androidx.health.connect.client.records.BodyWaterMassRecord",
      "dataType": "Body water mass",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": "Mass",
      "mandatoryFields": "mass; metadata; time",
      "readPermissions": "android.permission.health.READ_BODY_WATER_MASS",
      "writePermissions": "android.permission.health.WRITE_BODY_WATER_MASS",
      "permissionEvidence": "Google's data-types table, row \"Body water mass\" (BodyWaterMassRecord): android.permission.health.READ_BODY_WATER_MASS, android.permission.health.WRITE_BODY_WATER_MASS",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's body water mass. Each record represents a single instantaneous measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BodyWaterMassRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/body-water-mass-record"
    },
    {
      "className": "BoneMassRecord",
      "qualifiedName": "androidx.health.connect.client.records.BoneMassRecord",
      "dataType": "Bone mass",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": "Mass",
      "mandatoryFields": "mass; metadata; time",
      "readPermissions": "android.permission.health.READ_BONE_MASS",
      "writePermissions": "android.permission.health.WRITE_BONE_MASS",
      "permissionEvidence": "Google's data-types table, row \"Bone mass\" (BoneMassRecord): android.permission.health.READ_BONE_MASS, android.permission.health.WRITE_BONE_MASS",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's bone mass. Each record represents a single instantaneous measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/BoneMassRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/bone-mass-record"
    },
    {
      "className": "CervicalMucusRecord",
      "qualifiedName": "androidx.health.connect.client.records.CervicalMucusRecord",
      "dataType": "Cervical mucus",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "appearance; sensation; metadata; time",
      "readPermissions": "android.permission.health.READ_CERVICAL_MUCUS",
      "writePermissions": "android.permission.health.WRITE_CERVICAL_MUCUS",
      "permissionEvidence": "Google's data-types table, row \"Cervical mucus\" (CervicalMucusRecord): android.permission.health.READ_CERVICAL_MUCUS, android.permission.health.WRITE_CERVICAL_MUCUS",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the description of cervical mucus. Each record represents a self-assessed description of cervical mucus for a user. All fields are optional and can be used to describe the look and feel of cervical mucus.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/CervicalMucusRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/cervical-mucus-record"
    },
    {
      "className": "CyclingPedalingCadenceRecord",
      "qualifiedName": "androidx.health.connect.client.records.CyclingPedalingCadenceRecord",
      "dataType": "Cycling pedaling cadence",
      "category": "Activity",
      "recordShape": "Series",
      "unitClass": null,
      "mandatoryFields": "samples; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_EXERCISE",
      "writePermissions": "android.permission.health.WRITE_EXERCISE",
      "permissionEvidence": "Google's data-types table, row \"Cycling pedaling cadence\" (CyclingPedalingCadenceRecord): android.permission.health.READ_EXERCISE, android.permission.health.WRITE_EXERCISE",
      "aggregateMetrics": "CyclingPedalingCadenceRecord.RPM_AVG; CyclingPedalingCadenceRecord.RPM_MAX; CyclingPedalingCadenceRecord.RPM_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's cycling pedaling cadence. Each record represents a series of measurements.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/CyclingPedalingCadenceRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/cycling-pedaling-cadence-record"
    },
    {
      "className": "DistanceRecord",
      "qualifiedName": "androidx.health.connect.client.records.DistanceRecord",
      "dataType": "Distance",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": "Length",
      "mandatoryFields": "distance; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_DISTANCE",
      "writePermissions": "android.permission.health.WRITE_DISTANCE",
      "permissionEvidence": "Google's data-types table, row \"Distance\" (DistanceRecord): android.permission.health.READ_DISTANCE, android.permission.health.WRITE_DISTANCE",
      "aggregateMetrics": "DistanceRecord.DISTANCE_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures distance travelled by the user since the last reading. The total distance over an interval can be calculated by adding together all the values during the interval. The start time of each record should represent the start of the interval in which the distance was covered.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/DistanceRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/distance-record"
    },
    {
      "className": "ElevationGainedRecord",
      "qualifiedName": "androidx.health.connect.client.records.ElevationGainedRecord",
      "dataType": "Elevation gained",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": "Length",
      "mandatoryFields": "elevation; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_ELEVATION_GAINED",
      "writePermissions": "android.permission.health.WRITE_ELEVATION_GAINED",
      "permissionEvidence": "Google's data-types table, row \"Elevation gained\" (ElevationGainedRecord): android.permission.health.READ_ELEVATION_GAINED, android.permission.health.WRITE_ELEVATION_GAINED",
      "aggregateMetrics": "ElevationGainedRecord.ELEVATION_GAINED_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the elevation gained by the user since the last reading.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/ElevationGainedRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/elevation-gained-record"
    },
    {
      "className": "ExerciseSessionRecord",
      "qualifiedName": "androidx.health.connect.client.records.ExerciseSessionRecord",
      "dataType": "Exercise",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "exerciseType; endTime; laps; metadata; segments; startTime",
      "readPermissions": "android.permission.health.READ_EXERCISE; android.permission.health.READ_EXERCISE_ROUTE",
      "writePermissions": "android.permission.health.WRITE_EXERCISE; android.permission.health.WRITE_EXERCISE_ROUTE",
      "permissionEvidence": "Google's data-types table, row \"Exercise\" (ExerciseSessionRecord): android.permission.health.READ_EXERCISE, android.permission.health.READ_EXERCISE_ROUTE, android.permission.health.WRITE_EXERCISE, android.permission.health.WRITE_EXERCISE_ROUTE",
      "aggregateMetrics": "ExerciseSessionRecord.EXERCISE_DURATION_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures any exercise a user does. This can be common fitness exercise like running or different sports.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/ExerciseSessionRecord",
      "sourceUpdated": "2026-08-26",
      "page": "https://aifitnessapi.com/health-connect/exercise-session-record"
    },
    {
      "className": "FloorsClimbedRecord",
      "qualifiedName": "androidx.health.connect.client.records.FloorsClimbedRecord",
      "dataType": "Floors climbed",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "floors; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_FLOORS_CLIMBED",
      "writePermissions": "android.permission.health.WRITE_FLOORS_CLIMBED",
      "permissionEvidence": "Google's data-types table, row \"Floors climbed\" (FloorsClimbedRecord): android.permission.health.READ_FLOORS_CLIMBED, android.permission.health.WRITE_FLOORS_CLIMBED",
      "aggregateMetrics": "FloorsClimbedRecord.FLOORS_CLIMBED_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the number of floors climbed by the user since the last reading.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/FloorsClimbedRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/floors-climbed-record"
    },
    {
      "className": "HeartRateRecord",
      "qualifiedName": "androidx.health.connect.client.records.HeartRateRecord",
      "dataType": "Heart rate",
      "category": "Vitals",
      "recordShape": "Series",
      "unitClass": null,
      "mandatoryFields": "samples; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_HEART_RATE",
      "writePermissions": "android.permission.health.WRITE_HEART_RATE",
      "permissionEvidence": "Google's data-types table, row \"Heart rate\" (HeartRateRecord): android.permission.health.READ_HEART_RATE, android.permission.health.WRITE_HEART_RATE",
      "aggregateMetrics": "HeartRateRecord.BPM_AVG; HeartRateRecord.BPM_MAX; HeartRateRecord.BPM_MIN; HeartRateRecord.MEASUREMENTS_COUNT",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's heart rate. Each record represents a series of measurements.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/HeartRateRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/heart-rate-record"
    },
    {
      "className": "HeartRateVariabilityRmssdRecord",
      "qualifiedName": "androidx.health.connect.client.records.HeartRateVariabilityRmssdRecord",
      "dataType": "Heart rate variability",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "heartRateVariabilityMillis; metadata; time",
      "readPermissions": "android.permission.health.READ_HEART_RATE_VARIABILITY",
      "writePermissions": "android.permission.health.WRITE_HEART_RATE_VARIABILITY",
      "permissionEvidence": "Google's data-types table, row \"Heart rate variability\" (HeartRateVariabilityRmssdRecord): android.permission.health.READ_HEART_RATE_VARIABILITY, android.permission.health.WRITE_HEART_RATE_VARIABILITY",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures user's heart rate variability (HRV) as measured by the root mean square of successive differences (RMSSD) between normal heartbeats.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/HeartRateVariabilityRmssdRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/heart-rate-variability-rmssd-record"
    },
    {
      "className": "HeightRecord",
      "qualifiedName": "androidx.health.connect.client.records.HeightRecord",
      "dataType": "Height",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": "Length",
      "mandatoryFields": "height; metadata; time",
      "readPermissions": "android.permission.health.READ_HEIGHT",
      "writePermissions": "android.permission.health.WRITE_HEIGHT",
      "permissionEvidence": "Google's data-types table, row \"Height\" (HeightRecord): android.permission.health.READ_HEIGHT, android.permission.health.WRITE_HEIGHT",
      "aggregateMetrics": "HeightRecord.HEIGHT_AVG; HeightRecord.HEIGHT_MAX; HeightRecord.HEIGHT_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's height.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/HeightRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/height-record"
    },
    {
      "className": "HydrationRecord",
      "qualifiedName": "androidx.health.connect.client.records.HydrationRecord",
      "dataType": "Hydration",
      "category": "Nutrition",
      "recordShape": "Interval",
      "unitClass": "Volume",
      "mandatoryFields": "endTime; metadata; startTime; volume",
      "readPermissions": "android.permission.health.READ_HYDRATION",
      "writePermissions": "android.permission.health.WRITE_HYDRATION",
      "permissionEvidence": "Google's data-types table, row \"Hydration\" (HydrationRecord): android.permission.health.READ_HYDRATION, android.permission.health.WRITE_HYDRATION",
      "aggregateMetrics": "HydrationRecord.VOLUME_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures how much water a user drank in a single drink.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/HydrationRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/hydration-record"
    },
    {
      "className": "IntermenstrualBleedingRecord",
      "qualifiedName": "androidx.health.connect.client.records.IntermenstrualBleedingRecord",
      "dataType": "Intermenstrual bleeding",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; time",
      "readPermissions": "android.permission.health.READ_INTERMENSTRUAL_BLEEDING",
      "writePermissions": "android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING",
      "permissionEvidence": "Google's data-types table, row \"Intermenstrual bleeding\" (IntermenstrualBleedingRecord): android.permission.health.READ_INTERMENSTRUAL_BLEEDING, android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures an instance of user's intermenstrual bleeding, also known as spotting.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/IntermenstrualBleedingRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/intermenstrual-bleeding-record"
    },
    {
      "className": "LeanBodyMassRecord",
      "qualifiedName": "androidx.health.connect.client.records.LeanBodyMassRecord",
      "dataType": "Lean body mass",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": "Mass",
      "mandatoryFields": "mass; metadata; time",
      "readPermissions": "android.permission.health.READ_LEAN_BODY_MASS",
      "writePermissions": "android.permission.health.WRITE_LEAN_BODY_MASS",
      "permissionEvidence": "Google's data-types table, row \"Lean body mass\" (LeanBodyMassRecord): android.permission.health.READ_LEAN_BODY_MASS, android.permission.health.WRITE_LEAN_BODY_MASS",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's lean body mass. Each record represents a single instantaneous measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/LeanBodyMassRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/lean-body-mass-record"
    },
    {
      "className": "MenstruationFlowRecord",
      "qualifiedName": "androidx.health.connect.client.records.MenstruationFlowRecord",
      "dataType": "Menstruation",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "flow; metadata; time",
      "readPermissions": "android.permission.health.READ_MENSTRUATION",
      "writePermissions": "android.permission.health.WRITE_MENSTRUATION",
      "permissionEvidence": "Google's data-types table, row \"Menstruation\" (MenstruationFlowRecord, MenstruationPeriodRecord): android.permission.health.READ_MENSTRUATION, android.permission.health.WRITE_MENSTRUATION",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures a description of how heavy a user's menstrual flow was (light, medium, or heavy). Each record represents a description of how heavy the user's menstrual bleeding was.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/MenstruationFlowRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/menstruation-flow-record"
    },
    {
      "className": "MenstruationPeriodRecord",
      "qualifiedName": "androidx.health.connect.client.records.MenstruationPeriodRecord",
      "dataType": "Menstruation",
      "category": "Cycle Tracking",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_MENSTRUATION",
      "writePermissions": "android.permission.health.WRITE_MENSTRUATION",
      "permissionEvidence": "Google's data-types table, row \"Menstruation\" (MenstruationFlowRecord, MenstruationPeriodRecord): android.permission.health.READ_MENSTRUATION, android.permission.health.WRITE_MENSTRUATION",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures user's menstruation periods.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/MenstruationPeriodRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/menstruation-period-record"
    },
    {
      "className": "MindfulnessSessionRecord",
      "qualifiedName": "androidx.health.connect.client.records.MindfulnessSessionRecord",
      "dataType": "Mindfulness",
      "category": "Wellness",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "endTime; metadata; mindfulnessSessionType; startTime",
      "readPermissions": "android.permission.health.READ_MINDFULNESS",
      "writePermissions": "android.permission.health.WRITE_MINDFULNESS",
      "permissionEvidence": "Google's data-types table, row \"Mindfulness\" (MindfulnessSessionRecord): android.permission.health.READ_MINDFULNESS, android.permission.health.WRITE_MINDFULNESS",
      "aggregateMetrics": "MindfulnessSessionRecord.MINDFULNESS_DURATION_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": "FEATURE_MINDFULNESS_SESSION",
      "deprecated": "no",
      "description": "Captures any mindfulness session a user does. This can be mindfulness sessions like meditation, breathing.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/MindfulnessSessionRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/mindfulness-session-record"
    },
    {
      "className": "NutritionRecord",
      "qualifiedName": "androidx.health.connect.client.records.NutritionRecord",
      "dataType": "Nutrition",
      "category": "Nutrition",
      "recordShape": "Interval",
      "unitClass": "Mass",
      "mandatoryFields": "endTime; mealType; metadata; startTime",
      "readPermissions": "android.permission.health.READ_NUTRITION",
      "writePermissions": "android.permission.health.WRITE_NUTRITION",
      "permissionEvidence": "Google's data-types table, row \"Nutrition\" (NutritionRecord): android.permission.health.READ_NUTRITION, android.permission.health.WRITE_NUTRITION",
      "aggregateMetrics": "NutritionRecord.BIOTIN_TOTAL; NutritionRecord.CAFFEINE_TOTAL; NutritionRecord.CALCIUM_TOTAL; NutritionRecord.CHLORIDE_TOTAL; NutritionRecord.CHOLESTEROL_TOTAL; NutritionRecord.CHROMIUM_TOTAL; NutritionRecord.COPPER_TOTAL; NutritionRecord.DIETARY_FIBER_TOTAL; NutritionRecord.ENERGY_FROM_FAT_TOTAL; NutritionRecord.ENERGY_TOTAL; NutritionRecord.FOLATE_TOTAL; NutritionRecord.FOLIC_ACID_TOTAL; NutritionRecord.IODINE_TOTAL; NutritionRecord.IRON_TOTAL; NutritionRecord.MAGNESIUM_TOTAL; NutritionRecord.MANGANESE_TOTAL; NutritionRecord.MOLYBDENUM_TOTAL; NutritionRecord.MONOUNSATURATED_FAT_TOTAL; NutritionRecord.NIACIN_TOTAL; NutritionRecord.PANTOTHENIC_ACID_TOTAL; NutritionRecord.PHOSPHORUS_TOTAL; NutritionRecord.POLYUNSATURATED_FAT_TOTAL; NutritionRecord.POTASSIUM_TOTAL; NutritionRecord.PROTEIN_TOTAL; NutritionRecord.RIBOFLAVIN_TOTAL; NutritionRecord.SATURATED_FAT_TOTAL; NutritionRecord.SELENIUM_TOTAL; NutritionRecord.SODIUM_TOTAL; NutritionRecord.SUGAR_TOTAL; NutritionRecord.THIAMIN_TOTAL; NutritionRecord.TOTAL_CARBOHYDRATE_TOTAL; NutritionRecord.TOTAL_FAT_TOTAL; NutritionRecord.TRANS_FAT_TOTAL; NutritionRecord.UNSATURATED_FAT_TOTAL; NutritionRecord.VITAMIN_A_TOTAL; NutritionRecord.VITAMIN_B12_TOTAL; NutritionRecord.VITAMIN_B6_TOTAL; NutritionRecord.VITAMIN_C_TOTAL; NutritionRecord.VITAMIN_D_TOTAL; NutritionRecord.VITAMIN_E_TOTAL; NutritionRecord.VITAMIN_K_TOTAL; NutritionRecord.ZINC_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures what nutrients were consumed as part of a meal or a food item.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/NutritionRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/nutrition-record"
    },
    {
      "className": "OvulationTestRecord",
      "qualifiedName": "androidx.health.connect.client.records.OvulationTestRecord",
      "dataType": "Ovulation test",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; result; time",
      "readPermissions": "android.permission.health.READ_OVULATION_TEST",
      "writePermissions": "android.permission.health.WRITE_OVULATION_TEST",
      "permissionEvidence": "Google's data-types table, row \"Ovulation test\" (OvulationTestRecord): android.permission.health.READ_OVULATION_TEST, android.permission.health.WRITE_OVULATION_TEST",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Each record represents the result of an ovulation test.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/OvulationTestRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/ovulation-test-record"
    },
    {
      "className": "OxygenSaturationRecord",
      "qualifiedName": "androidx.health.connect.client.records.OxygenSaturationRecord",
      "dataType": "Oxygen saturation",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; percentage; time",
      "readPermissions": "android.permission.health.READ_OXYGEN_SATURATION",
      "writePermissions": "android.permission.health.WRITE_OXYGEN_SATURATION",
      "permissionEvidence": "Google's data-types table, row \"Oxygen saturation\" (OxygenSaturationRecord): android.permission.health.READ_OXYGEN_SATURATION, android.permission.health.WRITE_OXYGEN_SATURATION",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the amount of oxygen circulating in the blood, measured as a percentage of oxygen-saturated hemoglobin. Each record represents a single blood oxygen saturation reading at the time of measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/OxygenSaturationRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/oxygen-saturation-record"
    },
    {
      "className": "PlannedExerciseSessionRecord",
      "qualifiedName": "androidx.health.connect.client.records.PlannedExerciseSessionRecord",
      "dataType": "Planned exercise",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "block; endTime; exerciseType; hasExplicitTime; metadata",
      "readPermissions": "android.permission.health.READ_PLANNED_EXERCISE",
      "writePermissions": "android.permission.health.WRITE_PLANNED_EXERCISE",
      "permissionEvidence": "Google's data-types table, row \"Planned exercise\" (PlannedExerciseSessionRecord): android.permission.health.READ_PLANNED_EXERCISE, android.permission.health.WRITE_PLANNED_EXERCISE",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": "FEATURE_PLANNED_EXERCISE",
      "deprecated": "no",
      "description": "Captures a planned exercise session, also commonly referred to as a training plan.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/PlannedExerciseSessionRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/planned-exercise-session-record"
    },
    {
      "className": "PowerRecord",
      "qualifiedName": "androidx.health.connect.client.records.PowerRecord",
      "dataType": "Power",
      "category": "Activity",
      "recordShape": "Series",
      "unitClass": null,
      "mandatoryFields": "endTime; samples; metadata; startTime",
      "readPermissions": "android.permission.health.READ_POWER",
      "writePermissions": "android.permission.health.WRITE_POWER",
      "permissionEvidence": "Google's data-types table, row \"Power\" (PowerRecord): android.permission.health.READ_POWER, android.permission.health.WRITE_POWER",
      "aggregateMetrics": "PowerRecord.POWER_AVG; PowerRecord.POWER_MAX; PowerRecord.POWER_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the power generated by the user, e.g. during cycling or rowing with a power meter. Each record represents a series of measurements.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/PowerRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/power-record"
    },
    {
      "className": "RespiratoryRateRecord",
      "qualifiedName": "androidx.health.connect.client.records.RespiratoryRateRecord",
      "dataType": "Respiratory rate",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; rate; time",
      "readPermissions": "android.permission.health.READ_RESPIRATORY_RATE",
      "writePermissions": "android.permission.health.WRITE_RESPIRATORY_RATE",
      "permissionEvidence": "Google's data-types table, row \"Respiratory rate\" (RespiratoryRateRecord): android.permission.health.READ_RESPIRATORY_RATE, android.permission.health.WRITE_RESPIRATORY_RATE",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's respiratory rate. Each record represents a single instantaneous measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/RespiratoryRateRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/respiratory-rate-record"
    },
    {
      "className": "RestingHeartRateRecord",
      "qualifiedName": "androidx.health.connect.client.records.RestingHeartRateRecord",
      "dataType": "Resting heart rate",
      "category": "Vitals",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "beatsPerMinute; metadata; time",
      "readPermissions": "android.permission.health.READ_RESTING_HEART_RATE",
      "writePermissions": "android.permission.health.WRITE_RESTING_HEART_RATE",
      "permissionEvidence": "Google's data-types table, row \"Resting heart rate\" (RestingHeartRateRecord): android.permission.health.READ_RESTING_HEART_RATE, android.permission.health.WRITE_RESTING_HEART_RATE",
      "aggregateMetrics": "RestingHeartRateRecord.BPM_AVG; RestingHeartRateRecord.BPM_MAX; RestingHeartRateRecord.BPM_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's resting heart rate. Each record represents a single instantaneous measurement.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/RestingHeartRateRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/resting-heart-rate-record"
    },
    {
      "className": "SexualActivityRecord",
      "qualifiedName": "androidx.health.connect.client.records.SexualActivityRecord",
      "dataType": "Sexual activity",
      "category": "Cycle Tracking",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; protectionUsed; time",
      "readPermissions": "android.permission.health.READ_SEXUAL_ACTIVITY",
      "writePermissions": "android.permission.health.WRITE_SEXUAL_ACTIVITY",
      "permissionEvidence": "Google's data-types table, row \"Sexual activity\" (SexualActivityRecord): android.permission.health.READ_SEXUAL_ACTIVITY, android.permission.health.WRITE_SEXUAL_ACTIVITY",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures an occurrence of sexual activity. Each record is a single occurrence. ProtectionUsed field is optional.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/SexualActivityRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/sexual-activity-record"
    },
    {
      "className": "SkinTemperatureRecord",
      "qualifiedName": "androidx.health.connect.client.records.SkinTemperatureRecord",
      "dataType": "Skin temperature",
      "category": "Vitals",
      "recordShape": "Series",
      "unitClass": "Temperature",
      "mandatoryFields": "deltas; endTime; measurementLocation; metadata; startTime",
      "readPermissions": "android.permission.health.READ_SKIN_TEMPERATURE",
      "writePermissions": "android.permission.health.WRITE_SKIN_TEMPERATURE",
      "permissionEvidence": "Google's data-types table, row \"Skin temperature\" (SkinTemperatureRecord): android.permission.health.READ_SKIN_TEMPERATURE, android.permission.health.WRITE_SKIN_TEMPERATURE",
      "aggregateMetrics": "SkinTemperatureRecord.TEMPERATURE_DELTA_AVG; SkinTemperatureRecord.TEMPERATURE_DELTA_MAX; SkinTemperatureRecord.TEMPERATURE_DELTA_MIN",
      "addedIn": "1.1.0",
      "featureFlag": "FEATURE_SKIN_TEMPERATURE",
      "deprecated": "no",
      "description": "Captures the skin temperature of a user. Each record can represent a series of measurements of temperature differences.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/SkinTemperatureRecord",
      "sourceUpdated": "2026-08-06",
      "page": "https://aifitnessapi.com/health-connect/skin-temperature-record"
    },
    {
      "className": "SleepSessionRecord",
      "qualifiedName": "androidx.health.connect.client.records.SleepSessionRecord",
      "dataType": "Sleep session",
      "category": "Sleep",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "endTime; metadata; stages; startTime",
      "readPermissions": "android.permission.health.READ_SLEEP",
      "writePermissions": "android.permission.health.WRITE_SLEEP",
      "permissionEvidence": "Google's data-types table, row \"Sleep session\" (SleepSessionRecord): android.permission.health.READ_SLEEP, android.permission.health.WRITE_SLEEP",
      "aggregateMetrics": "SleepSessionRecord.SLEEP_DURATION_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's sleep length and its stages. Each record represents a time interval for a full sleep session.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/SleepSessionRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/sleep-session-record"
    },
    {
      "className": "SpeedRecord",
      "qualifiedName": "androidx.health.connect.client.records.SpeedRecord",
      "dataType": "Speed",
      "category": "Activity",
      "recordShape": "Series",
      "unitClass": null,
      "mandatoryFields": "endTime; metadata; samples; startTime",
      "readPermissions": "android.permission.health.READ_SPEED",
      "writePermissions": "android.permission.health.WRITE_SPEED",
      "permissionEvidence": "Google's data-types table, row \"Speed\" (SpeedRecord): android.permission.health.READ_SPEED, android.permission.health.WRITE_SPEED",
      "aggregateMetrics": "SpeedRecord.SPEED_AVG; SpeedRecord.SPEED_MAX; SpeedRecord.SPEED_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's speed, e.g. during running or cycling. Each record represents a series of measurements.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/SpeedRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/speed-record"
    },
    {
      "className": "StepsRecord",
      "qualifiedName": "androidx.health.connect.client.records.StepsRecord",
      "dataType": "Steps",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "count; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_STEPS",
      "writePermissions": "android.permission.health.WRITE_STEPS",
      "permissionEvidence": "Google's data-types table, row \"Steps\" (StepsRecord, StepsCadenceRecord): android.permission.health.READ_STEPS, android.permission.health.WRITE_STEPS",
      "aggregateMetrics": "StepsRecord.COUNT_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the number of steps taken since the last reading. Each step is only reported once so records shouldn't have overlapping time. The start time of each record should represent the start of the interval in which steps were taken.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/StepsRecord",
      "sourceUpdated": "2026-08-06",
      "page": "https://aifitnessapi.com/health-connect/steps-record"
    },
    {
      "className": "StepsCadenceRecord",
      "qualifiedName": "androidx.health.connect.client.records.StepsCadenceRecord",
      "dataType": "Steps",
      "category": "Activity",
      "recordShape": "Series",
      "unitClass": null,
      "mandatoryFields": "endTime; samples; metadata; startTime",
      "readPermissions": "android.permission.health.READ_STEPS",
      "writePermissions": "android.permission.health.WRITE_STEPS",
      "permissionEvidence": "Google's data-types table, row \"Steps\" (StepsRecord, StepsCadenceRecord): android.permission.health.READ_STEPS, android.permission.health.WRITE_STEPS",
      "aggregateMetrics": "StepsCadenceRecord.RATE_AVG; StepsCadenceRecord.RATE_MAX; StepsCadenceRecord.RATE_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's steps cadence. Each record represents a series of measurements.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/StepsCadenceRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/steps-cadence-record"
    },
    {
      "className": "TotalCaloriesBurnedRecord",
      "qualifiedName": "androidx.health.connect.client.records.TotalCaloriesBurnedRecord",
      "dataType": "Total calories burned",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": "Energy",
      "mandatoryFields": "endTime; energy; metadata; startTime",
      "readPermissions": "android.permission.health.READ_TOTAL_CALORIES_BURNED",
      "writePermissions": "android.permission.health.WRITE_TOTAL_CALORIES_BURNED",
      "permissionEvidence": "Google's data-types table, row \"Total calories burned\" (TotalCaloriesBurnedRecord): android.permission.health.READ_TOTAL_CALORIES_BURNED, android.permission.health.WRITE_TOTAL_CALORIES_BURNED",
      "aggregateMetrics": "TotalCaloriesBurnedRecord.ENERGY_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Total energy burned by the user (in kilocalories), including active & basal energy burned (BMR). Each record represents the total kilocalories burned over a time interval.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/TotalCaloriesBurnedRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/total-calories-burned-record"
    },
    {
      "className": "Vo2MaxRecord",
      "qualifiedName": "androidx.health.connect.client.records.Vo2MaxRecord",
      "dataType": "VO2 max",
      "category": "Activity",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "measurementMethod; metadata; time; vo2MillilitersPerMinuteKilogram",
      "readPermissions": "android.permission.health.READ_VO2_MAX",
      "writePermissions": "android.permission.health.WRITE_VO2_MAX",
      "permissionEvidence": "Google's data-types table, row \"VO2 max\" (Vo2MaxRecord): android.permission.health.READ_VO2_MAX, android.permission.health.WRITE_VO2_MAX",
      "aggregateMetrics": null,
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Capture user's VO2 max score and optionally the measurement method.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Vo2MaxRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/vo2-max-record"
    },
    {
      "className": "WeightRecord",
      "qualifiedName": "androidx.health.connect.client.records.WeightRecord",
      "dataType": "Weight",
      "category": "Body Measurement",
      "recordShape": "Instantaneous",
      "unitClass": null,
      "mandatoryFields": "metadata; time; weight",
      "readPermissions": "android.permission.health.READ_WEIGHT",
      "writePermissions": "android.permission.health.WRITE_WEIGHT",
      "permissionEvidence": "Google's data-types table, row \"Weight\" (WeightRecord): android.permission.health.READ_WEIGHT, android.permission.health.WRITE_WEIGHT",
      "aggregateMetrics": "WeightRecord.WEIGHT_AVG; WeightRecord.WEIGHT_MAX; WeightRecord.WEIGHT_MIN",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the user's weight.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/WeightRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/weight-record"
    },
    {
      "className": "WheelchairPushesRecord",
      "qualifiedName": "androidx.health.connect.client.records.WheelchairPushesRecord",
      "dataType": "Wheelchair pushes",
      "category": "Activity",
      "recordShape": "Interval",
      "unitClass": null,
      "mandatoryFields": "count; endTime; metadata; startTime",
      "readPermissions": "android.permission.health.READ_WHEELCHAIR_PUSHES",
      "writePermissions": "android.permission.health.WRITE_WHEELCHAIR_PUSHES",
      "permissionEvidence": "Google's data-types table, row \"Wheelchair pushes\" (WheelchairPushesRecord): android.permission.health.READ_WHEELCHAIR_PUSHES, android.permission.health.WRITE_WHEELCHAIR_PUSHES",
      "aggregateMetrics": "WheelchairPushesRecord.COUNT_TOTAL",
      "addedIn": "1.1.0",
      "featureFlag": null,
      "deprecated": "no",
      "description": "Captures the number of wheelchair pushes done since the last reading. Each push is only reported once so records shouldn't have overlapping time. The start time of each record should represent the start of the interval in which pushes were made.",
      "googleDocs": "https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/WheelchairPushesRecord",
      "sourceUpdated": "2026-06-24",
      "page": "https://aifitnessapi.com/health-connect/wheelchair-pushes-record"
    }
  ]
}