Offbeat-IoT · Small devices. Big APIs.
Integrations
Spotify Integration Google Health Integration Todoist Integration Google Calendar Integration Alexa Integration Google Home Integration
Built-in
Time Integration Ponder Integration Encouragement Integration API OTA updates
Using the Google Health integration

Using the Google Health integration

Send Google Health v4 data-point commands from your device.

List filters

Google Health list filters use snake_case field names, even though data-point request and response JSON use lower camel case. For example, use active_energy_burned.interval.start_time >= "2026-09-15T00:00:00Z" for active energy burned and nutrition_log.interval.civil_start_time >= "2026-09-15" for nutrition logs. Use >= or <, and combine time restrictions with AND only. Soren applies these two filters to each returned page so that the documented requests continue to work while Google Health’s upstream filter parser is inconsistent.

Create and update payloads

Create and update requests use the Google Health v4 data-type schema shown in each example. Do not use legacy fields such as measurementTime, volumeLiters, weightKg, or a string dataSource. For example, hydration uses an interval with UTC offsets and amountConsumed.milliliters; its endTime must be later than its startTime. dataSource is an object such as { "recordingMethod": "MANUAL" }. Existing hydration clients using the legacy fields are translated by Soren for compatibility with a one-second interval.

Rollups

Use a rollup command to aggregate supported data types over physical-time windows. The request needs a closed-open RFC-3339 range and a Google duration windowSize of at least one second.

Physical hydration rollup
Request
{
  "googlehealth.hydration-log.rollup" : {
    "range" : {
      "startTime" : "2026-08-01T08:00:00Z",
      "endTime" : "2026-08-01T09:00:00Z"
    },
    "windowSize" : "3600s"
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "startTime" : "2026-08-01T08:00:00Z",
      "endTime" : "2026-08-01T09:00:00Z",
      "hydrationLog" : {
        "amountConsumed" : {
          "millilitersSum" : 250,
          "userProvidedUnitLast" : "MILLILITER"
        }
      }
    } ]
  },
  "operation" : "rollup",
  "endpointId" : "device-eebc01b8-db93-40e5-b345-da244698480f",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Physical nutrition rollup
Request
{
  "googlehealth.nutrition-log.rollup" : {
    "range" : {
      "startTime" : "2026-08-01T08:00:00Z",
      "endTime" : "2026-08-01T09:00:00Z"
    },
    "windowSize" : "3600s"
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "startTime" : "2026-08-01T08:00:00Z",
      "endTime" : "2026-08-01T09:00:00Z",
      "nutritionLog" : {
        "energy" : {
          "kcalSum" : 350
        },
        "totalCarbohydrate" : {
          "gramsSum" : 42.5,
          "userProvidedUnitLast" : "GRAM"
        }
      }
    } ]
  },
  "operation" : "rollup",
  "endpointId" : "device-7e2242dd-8471-489c-8609-89e0e8ebec0d",
  "dataType" : "nutrition-log",
  "status" : "OK"
}

Use daily-rollup for civil-time windows. Its range uses local civil dates; windowSizeDays defaults to one. Rollup requests may also include dataSourceFamily, pageSize, and pageToken.

Daily active energy burned rollup
Request
{
  "googlehealth.active-energy-burned.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "activeEnergyBurned" : {
        "kcalSum" : 300
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-e308ea55-5817-4e2d-8852-e48c7d3a98e6",
  "dataType" : "active-energy-burned",
  "status" : "OK"
}
Daily active minutes rollup
Request
{
  "googlehealth.active-minutes.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "activeMinutes" : {
        "activeMinutesRollupByActivityLevel" : [ {
          "activityLevel" : "MODERATE",
          "activeMinutesSum" : "30"
        } ]
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-9bf47b93-b73c-415d-a65c-bf8e195ded29",
  "dataType" : "active-minutes",
  "status" : "OK"
}
Daily active zone minutes rollup
Request
{
  "googlehealth.active-zone-minutes.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "activeZoneMinutes" : {
        "sumInFatBurnHeartZone" : "10",
        "sumInCardioHeartZone" : "20",
        "sumInPeakHeartZone" : "5"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-abe24838-d369-4faf-bee5-f04db379be60",
  "dataType" : "active-zone-minutes",
  "status" : "OK"
}
Daily activity level rollup
Request
{
  "googlehealth.activity-level.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "activityLevel" : {
        "activityLevelRollupsByActivityLevelType" : [ {
          "activityLevelType" : "LIGHTLY_ACTIVE",
          "totalDuration" : "3600s"
        } ]
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-d8b0eddb-082d-4701-a354-612855bedb26",
  "dataType" : "activity-level",
  "status" : "OK"
}
Daily altitude rollup
Request
{
  "googlehealth.altitude.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "altitude" : {
        "gainMillimetersSum" : "1000"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-40f032b2-d02f-400d-b9a1-52d4f513dbf5",
  "dataType" : "altitude",
  "status" : "OK"
}
Daily body fat rollup
Request
{
  "googlehealth.body-fat.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "bodyFat" : {
        "bodyFatPercentageAvg" : 20
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-f83948ae-59f4-4ac2-82e8-a90a548e624f",
  "dataType" : "body-fat",
  "status" : "OK"
}
Daily blood glucose rollup
Request
{
  "googlehealth.blood-glucose.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "bloodGlucose" : {
        "bloodGlucoseMilligramsPerDeciliterAvg" : 100
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-97e98c8c-f9f8-49f7-ad53-4b8876d23501",
  "dataType" : "blood-glucose",
  "status" : "OK"
}
Daily calories in heart-rate zone rollup
Request
{
  "googlehealth.calories-in-heart-rate-zone.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "caloriesInHeartRateZone" : {
        "caloriesInHeartRateZones" : [ {
          "heartRateZone" : "LIGHT",
          "kcal" : 100
        } ]
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-335b8113-89e6-4da9-b199-b900a3e826bd",
  "dataType" : "calories-in-heart-rate-zone",
  "status" : "OK"
}
Daily core body temperature rollup
Request
{
  "googlehealth.core-body-temperature.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "coreBodyTemperature" : {
        "temperatureCelsiusMin" : 36.5,
        "temperatureCelsiusAvg" : 37,
        "temperatureCelsiusMax" : 37.5
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-12cf15c8-e6f3-49e3-ad5b-a3e143964f5b",
  "dataType" : "core-body-temperature",
  "status" : "OK"
}
Daily distance rollup
Request
{
  "googlehealth.distance.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "distance" : {
        "millimetersSum" : "5000000"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-2a985835-332d-4534-978f-3c1d83063839",
  "dataType" : "distance",
  "status" : "OK"
}
Daily floors rollup
Request
{
  "googlehealth.floors.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "floors" : {
        "countSum" : "10"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-73edf76e-f5fe-411f-a7c1-1ca8de8e4355",
  "dataType" : "floors",
  "status" : "OK"
}
Daily heart rate rollup
Request
{
  "googlehealth.heart-rate.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "heartRate" : {
        "beatsPerMinuteMin" : 55,
        "beatsPerMinuteAvg" : 70,
        "beatsPerMinuteMax" : 140
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-ae7caa50-bf53-483e-9949-def5ff95c5ec",
  "dataType" : "heart-rate",
  "status" : "OK"
}
Daily heart-rate variability personal range rollup
Request
{
  "googlehealth.heart-rate-variability-personal-range.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "heartRateVariabilityPersonalRange" : {
        "averageHeartRateVariabilityMillisecondsMin" : 20,
        "averageHeartRateVariabilityMillisecondsMax" : 50
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-954dfb86-1c8b-4e42-bea4-08aa29413456",
  "dataType" : "heart-rate-variability-personal-range",
  "status" : "OK"
}
Daily hydration log rollup
Request
{
  "googlehealth.hydration-log.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 2
        }
      }
    }
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 2
        }
      },
      "hydrationLog" : {
        "amountConsumed" : {
          "millilitersSum" : 1750,
          "userProvidedUnitLast" : "MILLILITER"
        }
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-77ffe82f-9227-41ec-be80-e8782c1c3946",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Daily nutrition log rollup
Request
{
  "googlehealth.nutrition-log.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 2
        }
      }
    }
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2026,
          "month" : 8,
          "day" : 2
        }
      },
      "nutritionLog" : {
        "energy" : {
          "kcalSum" : 1500
        },
        "totalCarbohydrate" : {
          "gramsSum" : 180,
          "userProvidedUnitLast" : "GRAM"
        }
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-0fb4ef99-c95a-43ef-b9b1-f460787b479f",
  "dataType" : "nutrition-log",
  "status" : "OK"
}
Daily resting heart-rate personal range rollup
Request
{
  "googlehealth.resting-heart-rate-personal-range.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "restingHeartRatePersonalRange" : {
        "beatsPerMinuteMin" : 55,
        "beatsPerMinuteMax" : 65
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-deab272d-1a3c-4e92-adfe-1adb3b59516e",
  "dataType" : "resting-heart-rate-personal-range",
  "status" : "OK"
}
Daily run VO2 max rollup
Request
{
  "googlehealth.run-vo2-max.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "runVo2Max" : {
        "rateMin" : 40,
        "rateAvg" : 45,
        "rateMax" : 50
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-4fafe154-4338-4cc9-90cf-184dd11fa917",
  "dataType" : "run-vo2-max",
  "status" : "OK"
}
Daily sedentary period rollup
Request
{
  "googlehealth.sedentary-period.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "sedentaryPeriod" : {
        "durationSum" : "28800s"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-19f1933b-4f9d-4d35-8bf4-ebb1a1d98df9",
  "dataType" : "sedentary-period",
  "status" : "OK"
}
Daily steps rollup
Request
{
  "googlehealth.steps.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "steps" : {
        "countSum" : "10000"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-f9fc22b8-f844-4742-a6d4-0ae9c9302eb6",
  "dataType" : "steps",
  "status" : "OK"
}
Daily swim lengths data rollup
Request
{
  "googlehealth.swim-lengths-data.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "swimLengthsData" : {
        "strokeCountSum" : "200"
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-dda96e34-307b-47c6-8ffa-dda0a592d64d",
  "dataType" : "swim-lengths-data",
  "status" : "OK"
}
Daily time in heart-rate zone rollup
Request
{
  "googlehealth.time-in-heart-rate-zone.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "timeInHeartRateZone" : {
        "timeInHeartRateZones" : [ {
          "heartRateZone" : "LIGHT",
          "duration" : "1800s"
        } ]
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-b0060a12-0584-49d7-ba42-2c7d85a64adc",
  "dataType" : "time-in-heart-rate-zone",
  "status" : "OK"
}
Daily total calories rollup
Request
{
  "googlehealth.total-calories.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "totalCalories" : {
        "kcalSum" : 2000
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-910592c7-033b-4195-8b91-18735c685225",
  "dataType" : "total-calories",
  "status" : "OK"
}
Daily weight rollup
Request
{
  "googlehealth.weight.daily-rollup" : {
    "range" : {
      "start" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "end" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      }
    },
    "windowSizeDays" : 1
  }
}
Response
{
  "result" : {
    "rollupDataPoints" : [ {
      "civilStartTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 1
        }
      },
      "civilEndTime" : {
        "date" : {
          "year" : 2024,
          "month" : 1,
          "day" : 2
        }
      },
      "weight" : {
        "weightGramsAvg" : 70000
      }
    } ]
  },
  "operation" : "daily-rollup",
  "endpointId" : "device-6a5116c1-2bb7-4833-a646-fd4d1526b823",
  "dataType" : "weight",
  "status" : "OK"
}

Activity and fitness

Active energy burned

List active energy burned data points

Returns active energy burned data points. .Request

{
  "googlehealth.active-energy-burned.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "active_energy_burned.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-9c5b1afd-036d-4386-ac20-277bc1f143e8",
  "dataType" : "active-energy-burned",
  "status" : "OK"
}

Active minutes

List active minutes data points

Returns active minutes data points. .Request

{
  "googlehealth.active-minutes.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "active_minutes.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-893eaf63-d569-4202-85cf-768bad644bd5",
  "dataType" : "active-minutes",
  "status" : "OK"
}

Active zone minutes

List active zone minutes data points

Returns active zone minutes data points. .Request

{
  "googlehealth.active-zone-minutes.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "active_zone_minutes.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-deb84c09-2cfd-4ed7-82e0-bf85ed16dee5",
  "dataType" : "active-zone-minutes",
  "status" : "OK"
}

Activity level

List activity level data points

Returns activity level data points. .Request

{
  "googlehealth.activity-level.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "activity_level.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-32289eac-2607-4144-9253-d4de33649775",
  "dataType" : "activity-level",
  "status" : "OK"
}

Altitude

List altitude data points

Returns altitude data points. .Request

{
  "googlehealth.altitude.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "altitude.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-2180ba31-8f44-4b79-9477-f9ac8a4a29cc",
  "dataType" : "altitude",
  "status" : "OK"
}

Distance

List distance data points

Returns distance data points. .Request

{
  "googlehealth.distance.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "distance.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-4422c22f-18fd-441f-9601-400e3b95ac1c",
  "dataType" : "distance",
  "status" : "OK"
}

Exercise

List exercise data points

Returns exercise data points. .Request

{
  "googlehealth.exercise.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "exercise.interval.civil_start_time >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-4588f7d4-16da-46d6-b4f6-c3ec3ebe88ed",
  "dataType" : "exercise",
  "status" : "OK"
}
Get an exercise data point

Returns the named exercise data point. .Request

{
  "googlehealth.exercise.get" : {
    "name" : "users/me/dataTypes/exercise/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-c3d75e52-a806-4566-8530-93d97f75ba76",
  "dataType" : "exercise",
  "status" : "OK"
}
Create an exercise data point

Creates an exercise data point. .Request

{
  "googlehealth.exercise.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "metricsSummary" : { },
      "exerciseType" : "WALKING",
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-01T01:00:00Z"
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-b10d7686-4279-4e31-acc2-163cc6b772f8",
  "dataType" : "exercise",
  "status" : "OK"
}
Update an exercise data point

Updates the named exercise data point. .Request

{
  "googlehealth.exercise.update" : {
    "data" : {
      "metricsSummary" : { },
      "exerciseType" : "WALKING",
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-01T01:00:00Z"
      }
    },
    "name" : "users/me/dataTypes/exercise/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-fba5517b-6913-47fd-a3a0-658cfb1015f5",
  "dataType" : "exercise",
  "status" : "OK"
}
Delete exercise data points

Deletes the supplied exercise data points. .Request

{
  "googlehealth.exercise.delete" : {
    "names" : [ "users/me/dataTypes/exercise/dataPoints/example", "users/me/dataTypes/exercise/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-b20391f5-609a-4654-9386-c64b804286d3",
  "dataType" : "exercise",
  "status" : "OK"
}

Steps

List steps data points

Returns steps data points. .Request

{
  "googlehealth.steps.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "steps.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-609c972f-0ac2-443c-a1de-944a02c6d7bb",
  "dataType" : "steps",
  "status" : "OK"
}

Swim lengths data

List swim lengths data points

Returns swim lengths data points. .Request

{
  "googlehealth.swim-lengths-data.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "swim_lengths_data.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-5b057ff6-9326-48d7-8700-6b9165d7406e",
  "dataType" : "swim-lengths-data",
  "status" : "OK"
}

Time in heart rate zone

List time in heart rate zone data points

Returns time in heart rate zone data points. .Request

{
  "googlehealth.time-in-heart-rate-zone.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "time_in_heart_rate_zone.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-89241887-9309-4d63-9fe9-5af0d4b3dee2",
  "dataType" : "time-in-heart-rate-zone",
  "status" : "OK"
}

Health metrics and measurements

Body fat

List body fat data points

Returns body fat data points. .Request

{
  "googlehealth.body-fat.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "body_fat.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-25de7d1f-e537-4204-95ae-203f46a971c8",
  "dataType" : "body-fat",
  "status" : "OK"
}
Get a body fat data point

Returns the named body fat data point. .Request

{
  "googlehealth.body-fat.get" : {
    "name" : "users/me/dataTypes/body-fat/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-7d672ace-e68d-4e51-ab1d-ea58c417087a",
  "dataType" : "body-fat",
  "status" : "OK"
}
Create a body fat data point

Creates a body fat data point. .Request

{
  "googlehealth.body-fat.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "percentage" : 20,
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-df879e4a-915e-4590-81d7-0a4c3b894a8c",
  "dataType" : "body-fat",
  "status" : "OK"
}
Update a body fat data point

Updates the named body fat data point. .Request

{
  "googlehealth.body-fat.update" : {
    "data" : {
      "percentage" : 20,
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    },
    "name" : "users/me/dataTypes/body-fat/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-67507ff8-5dc0-40a8-a64d-2250899bb696",
  "dataType" : "body-fat",
  "status" : "OK"
}
Delete body fat data points

Deletes the supplied body fat data points. .Request

{
  "googlehealth.body-fat.delete" : {
    "names" : [ "users/me/dataTypes/body-fat/dataPoints/example", "users/me/dataTypes/body-fat/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-e9a21552-6e54-47c6-80b5-d76e1fa2c017",
  "dataType" : "body-fat",
  "status" : "OK"
}

Height

List height data points

Returns height data points. .Request

{
  "googlehealth.height.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "height.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-4673ccdb-0401-45db-b1a2-e79bbbb4de96",
  "dataType" : "height",
  "status" : "OK"
}
Get a height data point

Returns the named height data point. .Request

{
  "googlehealth.height.get" : {
    "name" : "users/me/dataTypes/height/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-3d3bdcbc-afbc-485e-8374-2dff56d85e6b",
  "dataType" : "height",
  "status" : "OK"
}
Create a height data point

Creates a height data point. .Request

{
  "googlehealth.height.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "heightMillimeters" : "1750"
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-7bccfc84-8a27-4af6-b27c-53e6f0f584ec",
  "dataType" : "height",
  "status" : "OK"
}
Update a height data point

Updates the named height data point. .Request

{
  "googlehealth.height.update" : {
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "heightMillimeters" : "1750"
    },
    "name" : "users/me/dataTypes/height/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-b480dbe3-7035-4886-b07a-40f0c461fe2d",
  "dataType" : "height",
  "status" : "OK"
}
Delete height data points

Deletes the supplied height data points. .Request

{
  "googlehealth.height.delete" : {
    "names" : [ "users/me/dataTypes/height/dataPoints/example", "users/me/dataTypes/height/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-97eb36ca-1f07-4b7c-805a-cb21c308e419",
  "dataType" : "height",
  "status" : "OK"
}

Weight

List weight data points

Returns weight data points. .Request

{
  "googlehealth.weight.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "weight.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-9eefb235-d91e-4978-a1d4-b3dd7d9bf654",
  "dataType" : "weight",
  "status" : "OK"
}
Get a weight data point

Returns the named weight data point. .Request

{
  "googlehealth.weight.get" : {
    "name" : "users/me/dataTypes/weight/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-89ac11d8-3c91-4890-bddb-137f6f505f8a",
  "dataType" : "weight",
  "status" : "OK"
}
Create a weight data point

Creates a weight data point. .Request

{
  "googlehealth.weight.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "weightGrams" : 70000
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-38ca869d-8a69-4fb5-9b6f-ee0b85875b91",
  "dataType" : "weight",
  "status" : "OK"
}
Update a weight data point

Updates the named weight data point. .Request

{
  "googlehealth.weight.update" : {
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "weightGrams" : 70000
    },
    "name" : "users/me/dataTypes/weight/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-77d2ef7b-4607-4962-85e1-483dbb4059b9",
  "dataType" : "weight",
  "status" : "OK"
}
Delete weight data points

Deletes the supplied weight data points. .Request

{
  "googlehealth.weight.delete" : {
    "names" : [ "users/me/dataTypes/weight/dataPoints/example", "users/me/dataTypes/weight/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-b45cf9e0-deea-4d20-96f9-677c0fe91c1a",
  "dataType" : "weight",
  "status" : "OK"
}

Blood glucose

List blood glucose data points

Returns blood glucose data points. .Request

{
  "googlehealth.blood-glucose.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "blood_glucose.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-4c2886ea-4390-4175-94dc-1bfd9d04b988",
  "dataType" : "blood-glucose",
  "status" : "OK"
}
Get a blood glucose data point

Returns the named blood glucose data point. .Request

{
  "googlehealth.blood-glucose.get" : {
    "name" : "users/me/dataTypes/blood-glucose/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-baa7733e-ba61-4b3e-8be0-997297b6312f",
  "dataType" : "blood-glucose",
  "status" : "OK"
}

Core body temperature

List core body temperature data points

Returns core body temperature data points. .Request

{
  "googlehealth.core-body-temperature.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "core_body_temperature.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-47648fc5-a5f5-4370-b1a0-14400a8a14d6",
  "dataType" : "core-body-temperature",
  "status" : "OK"
}
Get a core body temperature data point

Returns the named core body temperature data point. .Request

{
  "googlehealth.core-body-temperature.get" : {
    "name" : "users/me/dataTypes/core-body-temperature/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-014bf523-aa12-4fb4-a39d-b53b2e0ccd0d",
  "dataType" : "core-body-temperature",
  "status" : "OK"
}

Daily heart rate variability

List daily heart rate variability data points

Returns daily heart rate variability data points. .Request

{
  "googlehealth.daily-heart-rate-variability.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_heart_rate_variability.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-ab05fbad-2cca-4b49-8cad-e30ea88549d1",
  "dataType" : "daily-heart-rate-variability",
  "status" : "OK"
}

Daily heart rate zones

List daily heart rate zones data points

Returns daily heart rate zones data points. .Request

{
  "googlehealth.daily-heart-rate-zones.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_heart_rate_zones.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-5dec5520-16ca-4c2f-9fbb-4e73ee5713b2",
  "dataType" : "daily-heart-rate-zones",
  "status" : "OK"
}

Daily oxygen saturation

List daily oxygen saturation data points

Returns daily oxygen saturation data points. .Request

{
  "googlehealth.daily-oxygen-saturation.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_oxygen_saturation.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-fd81b4a1-d749-4e8e-9ea5-c3b12a62e556",
  "dataType" : "daily-oxygen-saturation",
  "status" : "OK"
}

Daily respiratory rate

List daily respiratory rate data points

Returns daily respiratory rate data points. .Request

{
  "googlehealth.daily-respiratory-rate.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_respiratory_rate.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-33dd5796-d790-441c-8325-bf0536101d08",
  "dataType" : "daily-respiratory-rate",
  "status" : "OK"
}

Daily resting heart rate

List daily resting heart rate data points

Returns daily resting heart rate data points. .Request

{
  "googlehealth.daily-resting-heart-rate.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_resting_heart_rate.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-8aad85ea-96a5-47d3-a9a2-d0d1084edf77",
  "dataType" : "daily-resting-heart-rate",
  "status" : "OK"
}

Daily VO2 max

List daily VO2 max data points

Returns daily VO2 max data points. .Request

{
  "googlehealth.daily-vo2-max.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_vo2_max.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-19edea48-5b2e-429b-ae1f-638c4496e694",
  "dataType" : "daily-vo2-max",
  "status" : "OK"
}

Electrocardiogram

List electrocardiogram data points

Returns electrocardiogram data points. .Request

{
  "googlehealth.electrocardiogram.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "electrocardiogram.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-6831da34-d5d4-40f6-8f02-f4a45cc1be85",
  "dataType" : "electrocardiogram",
  "status" : "OK"
}

Heart rate

List heart rate data points

Returns heart rate data points. .Request

{
  "googlehealth.heart-rate.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "heart_rate.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-73638d22-e3a8-4365-8b6c-cfb72672e371",
  "dataType" : "heart-rate",
  "status" : "OK"
}

Heart rate variability

List heart rate variability data points

Returns heart rate variability data points. .Request

{
  "googlehealth.heart-rate-variability.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "heart_rate_variability.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-f71fc841-ceb2-44f3-abe9-40e1fa69cafa",
  "dataType" : "heart-rate-variability",
  "status" : "OK"
}

Irregular rhythm notification

List irregular rhythm notification data points

Returns irregular rhythm notification data points. .Request

{
  "googlehealth.irregular-rhythm-notification.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "irregular_rhythm_notification.interval.civil_start_time >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-6989fe7a-0978-4131-b9e3-14136f88de45",
  "dataType" : "irregular-rhythm-notification",
  "status" : "OK"
}

Oxygen saturation

List oxygen saturation data points

Returns oxygen saturation data points. .Request

{
  "googlehealth.oxygen-saturation.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "oxygen_saturation.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-5d5bac3c-e79b-4cd4-865f-dd4b448cc153",
  "dataType" : "oxygen-saturation",
  "status" : "OK"
}

Respiratory rate sleep summary

List respiratory rate sleep summary data points

Returns respiratory rate sleep summary data points. .Request

{
  "googlehealth.respiratory-rate-sleep-summary.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "respiratory_rate_sleep_summary.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-6f94d797-5950-44ec-a6a5-9cc11baa3f9e",
  "dataType" : "respiratory-rate-sleep-summary",
  "status" : "OK"
}

Run VO2 max

List run VO2 max data points

Returns run VO2 max data points. .Request

{
  "googlehealth.run-vo2-max.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "run_vo2_max.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-b58a225f-3cc1-4463-84ed-ae981e498661",
  "dataType" : "run-vo2-max",
  "status" : "OK"
}

Sedentary period

List sedentary period data points

Returns sedentary period data points. .Request

{
  "googlehealth.sedentary-period.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "sedentary_period.interval.start_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-bd0fe556-95c0-44ec-9d6f-070bb88a0bfa",
  "dataType" : "sedentary-period",
  "status" : "OK"
}

VO2 max

List VO2 max data points

Returns VO2 max data points. .Request

{
  "googlehealth.vo2-max.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "vo2_max.sample_time.physical_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-b2511905-2bfd-4f7f-8946-6b5977f3f464",
  "dataType" : "vo2-max",
  "status" : "OK"
}

Nutrition

Hydration log

List hydration log data points

Returns hydration log data points. .Request

{
  "googlehealth.hydration-log.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "hydration_log.interval.civil_start_time >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-c9857bb0-20c7-4dc9-b834-44e6b42da387",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Get a hydration log data point

Returns the named hydration log data point. .Request

{
  "googlehealth.hydration-log.get" : {
    "name" : "users/me/dataTypes/hydration-log/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-83a9565f-e061-4ff0-b097-a0c4027fcd2f",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Create a hydration log data point

Creates a hydration log data point. .Request

{
  "googlehealth.hydration-log.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-01T00:00:01Z"
      },
      "amountConsumed" : {
        "userProvidedUnit" : "MILLILITER",
        "milliliters" : 250
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-a1f6d1ec-3de5-4427-b1b3-cdf7929bbf70",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Update a hydration log data point

Updates the named hydration log data point. .Request

{
  "googlehealth.hydration-log.update" : {
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-01T00:00:01Z"
      },
      "amountConsumed" : {
        "userProvidedUnit" : "MILLILITER",
        "milliliters" : 250
      }
    },
    "name" : "users/me/dataTypes/hydration-log/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-92149bc3-bc1f-4358-99d8-a75ac5f8a40a",
  "dataType" : "hydration-log",
  "status" : "OK"
}
Delete hydration log data points

Deletes the supplied hydration log data points. .Request

{
  "googlehealth.hydration-log.delete" : {
    "names" : [ "users/me/dataTypes/hydration-log/dataPoints/example", "users/me/dataTypes/hydration-log/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-982f3808-19de-4b69-9b1a-0816c27cc764",
  "dataType" : "hydration-log",
  "status" : "OK"
}

Nutrition log

List nutrition log data points

Returns nutrition log data points. .Request

{
  "googlehealth.nutrition-log.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "nutrition_log.interval.civil_start_time >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-4beaa07a-26a1-4ad8-9d6a-bf2e6c2fcfb0",
  "dataType" : "nutrition-log",
  "status" : "OK"
}
Get a nutrition log data point

Returns the named nutrition log data point. .Request

{
  "googlehealth.nutrition-log.get" : {
    "name" : "users/me/dataTypes/nutrition-log/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-270abf73-f9ba-4b64-89ab-305f02a07a81",
  "dataType" : "nutrition-log",
  "status" : "OK"
}
Create a nutrition log data point

Creates a nutrition log data point. .Request

{
  "googlehealth.nutrition-log.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T12:00:00Z",
        "endTime" : "2024-01-01T12:00:01Z"
      },
      "foodDisplayName" : "Apple"
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-7ddd32cf-d38f-4cf1-843c-b23dbda20050",
  "dataType" : "nutrition-log",
  "status" : "OK"
}
Update a nutrition log data point

Updates the named nutrition log data point. .Request

{
  "googlehealth.nutrition-log.update" : {
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T12:00:00Z",
        "endTime" : "2024-01-01T12:00:01Z"
      },
      "foodDisplayName" : "Apple"
    },
    "name" : "users/me/dataTypes/nutrition-log/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-ef9d1524-ac75-4406-aa37-ca84259933bd",
  "dataType" : "nutrition-log",
  "status" : "OK"
}
Delete nutrition log data points

Deletes the supplied nutrition log data points. .Request

{
  "googlehealth.nutrition-log.delete" : {
    "names" : [ "users/me/dataTypes/nutrition-log/dataPoints/example", "users/me/dataTypes/nutrition-log/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-ae694443-616e-4c58-b309-a26a8e0e68d0",
  "dataType" : "nutrition-log",
  "status" : "OK"
}

Food

List food data points

Returns food data points. .Request

{
  "googlehealth.food.list" : {
    "pageToken" : "next-page",
    "pageSize" : 10
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-7a39ceef-b985-4d01-9bdb-2340a5569efe",
  "dataType" : "food",
  "status" : "OK"
}
Get a food data point

Returns the named food data point. .Request

{
  "googlehealth.food.get" : {
    "name" : "users/me/dataTypes/food/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-bf715350-e410-4817-a748-06946e47449c",
  "dataType" : "food",
  "status" : "OK"
}

Food measurement unit

List food measurement unit data points

Returns food measurement unit data points. .Request

{
  "googlehealth.food-measurement-unit.list" : {
    "pageToken" : "next-page",
    "pageSize" : 10
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-05e76755-e3a8-4525-a4cd-119616831964",
  "dataType" : "food-measurement-unit",
  "status" : "OK"
}
Get a food measurement unit data point

Returns the named food measurement unit data point. .Request

{
  "googlehealth.food-measurement-unit.get" : {
    "name" : "users/me/dataTypes/food-measurement-unit/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-18537715-8f66-4957-b544-176e78e21f37",
  "dataType" : "food-measurement-unit",
  "status" : "OK"
}

Sleep

Daily sleep temperature derivations

List daily sleep temperature derivations data points

Returns daily sleep temperature derivations data points. .Request

{
  "googlehealth.daily-sleep-temperature-derivations.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "daily_sleep_temperature_derivations.date >= \"2024-01-01\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-83423e6c-17e0-4edb-abe3-e6bc19a2e255",
  "dataType" : "daily-sleep-temperature-derivations",
  "status" : "OK"
}

Sleep

List sleep data points

Returns sleep data points. .Request

{
  "googlehealth.sleep.list" : {
    "pageSize" : 10,
    "pageToken" : "next-page",
    "filter" : "sleep.interval.end_time >= \"2024-01-01T00:00:00Z\""
  }
}
Example response
{
  "result" : { },
  "operation" : "list",
  "endpointId" : "device-a4516baf-0abf-4762-95d0-94af06a3baeb",
  "dataType" : "sleep",
  "status" : "OK"
}
Get a sleep data point

Returns the named sleep data point. .Request

{
  "googlehealth.sleep.get" : {
    "name" : "users/me/dataTypes/sleep/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "get",
  "endpointId" : "device-6d4f095a-36b4-42cd-83a8-8abf953dbf5c",
  "dataType" : "sleep",
  "status" : "OK"
}
Create a sleep data point

Creates a sleep data point. .Request

{
  "googlehealth.sleep.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T22:00:00Z",
        "endTime" : "2024-01-02T06:00:00Z"
      },
      "type" : "STAGES"
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-642d64cf-c56b-4e9c-a7f9-d8a24fb04659",
  "dataType" : "sleep",
  "status" : "OK"
}
Update a sleep data point

Updates the named sleep data point. .Request

{
  "googlehealth.sleep.update" : {
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T22:00:00Z",
        "endTime" : "2024-01-02T06:00:00Z"
      },
      "type" : "STAGES"
    },
    "name" : "users/me/dataTypes/sleep/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-5f3167d2-0a53-499d-ad1e-09203b37c4ba",
  "dataType" : "sleep",
  "status" : "OK"
}
Delete sleep data points

Deletes the supplied sleep data points. .Request

{
  "googlehealth.sleep.delete" : {
    "names" : [ "users/me/dataTypes/sleep/dataPoints/example", "users/me/dataTypes/sleep/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-26d66ac8-f811-4a42-ac80-91158d9d3381",
  "dataType" : "sleep",
  "status" : "OK"
}

Reproductive health

Menstrual period

Create a menstrual period data point

Creates a menstrual period data point. .Request

{
  "googlehealth.menstrual-period.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-05T00:00:00Z"
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-3303d8aa-971b-4f5c-8af9-e61c8495b918",
  "dataType" : "menstrual-period",
  "status" : "OK"
}
Update a menstrual period data point

Updates the named menstrual period data point. .Request

{
  "googlehealth.menstrual-period.update" : {
    "data" : {
      "interval" : {
        "endUtcOffset" : "0s",
        "startUtcOffset" : "0s",
        "startTime" : "2024-01-01T00:00:00Z",
        "endTime" : "2024-01-05T00:00:00Z"
      }
    },
    "name" : "users/me/dataTypes/menstrual-period/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-2d9b76bb-72a9-4f4b-b396-954628647196",
  "dataType" : "menstrual-period",
  "status" : "OK"
}
Delete menstrual period data points

Deletes the supplied menstrual period data points. .Request

{
  "googlehealth.menstrual-period.delete" : {
    "names" : [ "users/me/dataTypes/menstrual-period/dataPoints/example", "users/me/dataTypes/menstrual-period/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-03e303ec-c900-4c5f-86cd-22ced4eb3442",
  "dataType" : "menstrual-period",
  "status" : "OK"
}

Moods

Create a moods data point

Creates a moods data point. .Request

{
  "googlehealth.moods.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "moods" : [ "HAPPY" ]
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-8f512fcc-61ea-4574-87ff-b6b6ec04d7d0",
  "dataType" : "moods",
  "status" : "OK"
}
Update a moods data point

Updates the named moods data point. .Request

{
  "googlehealth.moods.update" : {
    "data" : {
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      },
      "moods" : [ "HAPPY" ]
    },
    "name" : "users/me/dataTypes/moods/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-9fbcdf71-3783-4267-bf5c-a7dcffbcaa89",
  "dataType" : "moods",
  "status" : "OK"
}
Delete moods data points

Deletes the supplied moods data points. .Request

{
  "googlehealth.moods.delete" : {
    "names" : [ "users/me/dataTypes/moods/dataPoints/example", "users/me/dataTypes/moods/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-1def1c65-63f3-4eb7-b750-59742951e7ed",
  "dataType" : "moods",
  "status" : "OK"
}

Ovulation test

Create an ovulation test data point

Creates an ovulation test data point. .Request

{
  "googlehealth.ovulation-test.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "result" : "POSITIVE",
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-5e851b49-3653-4011-8b1e-3b647b215198",
  "dataType" : "ovulation-test",
  "status" : "OK"
}
Update an ovulation test data point

Updates the named ovulation test data point. .Request

{
  "googlehealth.ovulation-test.update" : {
    "data" : {
      "result" : "POSITIVE",
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    },
    "name" : "users/me/dataTypes/ovulation-test/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-01766c8d-87a7-40fa-8221-cbdaa51b99a8",
  "dataType" : "ovulation-test",
  "status" : "OK"
}
Delete ovulation test data points

Deletes the supplied ovulation test data points. .Request

{
  "googlehealth.ovulation-test.delete" : {
    "names" : [ "users/me/dataTypes/ovulation-test/dataPoints/example", "users/me/dataTypes/ovulation-test/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-972d1502-8366-4fde-9818-ebd0a5567e3d",
  "dataType" : "ovulation-test",
  "status" : "OK"
}

Logged symptoms

Symptoms

Create a symptoms data point

Creates a symptoms data point. .Request

{
  "googlehealth.symptoms.create" : {
    "dataSource" : {
      "recordingMethod" : "MANUAL"
    },
    "data" : {
      "symptoms" : [ "HEADACHE" ],
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    }
  }
}
Example response
{
  "result" : { },
  "operation" : "create",
  "endpointId" : "device-319ec583-0111-4de0-a3ab-65ade8d9255e",
  "dataType" : "symptoms",
  "status" : "OK"
}
Update a symptoms data point

Updates the named symptoms data point. .Request

{
  "googlehealth.symptoms.update" : {
    "data" : {
      "symptoms" : [ "HEADACHE" ],
      "sampleTime" : {
        "utcOffset" : "0s",
        "physicalTime" : "2024-01-01T00:00:00Z"
      }
    },
    "name" : "users/me/dataTypes/symptoms/dataPoints/example"
  }
}
Example response
{
  "result" : { },
  "operation" : "update",
  "endpointId" : "device-2930dbe2-0d22-467b-b1db-887acd8a0d84",
  "dataType" : "symptoms",
  "status" : "OK"
}
Delete symptoms data points

Deletes the supplied symptoms data points. .Request

{
  "googlehealth.symptoms.delete" : {
    "names" : [ "users/me/dataTypes/symptoms/dataPoints/example", "users/me/dataTypes/symptoms/dataPoints/example-2" ]
  }
}
Example response
{
  "result" : { },
  "operation" : "delete",
  "endpointId" : "device-7eaa2919-1594-4d16-9732-fe2ef4d04da5",
  "dataType" : "symptoms",
  "status" : "OK"
}

Notifications

Google Health Pub/Sub notification

Forwards the raw Google Pub/Sub push body to every linked device when Google sends a notification.

Websocket notification
{
  "googlehealth.notification": {
    "notification": "{raw Google Pub/Sub push message body}"
  }
}