Interfejs API Google Health śledzi dane dotyczące funkcji życiowych użytkownika i wskaźniki zdrowia fizjologicznego, takie jak tętno, saturacja krwi, poziom glukozy we krwi, temperatura ciała i dzienne odchylenia temperatury podczas snu.
Dowiedz się, jak odczytywać dane o parametrach życiowych i prosić o autoryzację użytkownika w aplikacji, aby zapewnić użytkownikom najlepsze wrażenia.
Obsługiwane typy danych
Interfejs API obsługuje te typy danych do śledzenia parametrów życiowych i zdrowotnych:
Typ danychdataType
filter parameter |
Dostępne operacje |
Zakres |
|---|---|---|
|
Glukoza we krwi
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Temperatura ciała
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Dzienna zmienność rytmu serca
daily-heart-rate-variabilitydaily_heart_rate_variability
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Dzienne strefy tętna
daily-heart-rate-zonesdaily_heart_rate_zones
Typ rekordu: dzienny
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Codzienne nasycenie tlenem
daily-oxygen-saturationdaily_oxygen_saturation
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Dzienna częstość oddechów
daily-respiratory-ratedaily_respiratory_rate
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Dzienne tętno spoczynkowe
daily-resting-heart-ratedaily_resting_heart_rate
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Codzienne wyliczenia temperatury podczas snu
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Elektrokardiogram (EKG)
electrocardiogramelectrocardiogram
Typ rekordu: sesja
Zgodne urządzenia
|
lista | .ecg.readonly |
Tętno
heart-rateheart_rate
Typ rekordu: Próbka
Zgodne urządzenia
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Zmienność rytmu serca
heart-rate-variabilityheart_rate_variability
Typ rekordu: Próbka
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Powiadomienie o nieregularnym rytmie serca
irregular-rhythm-notificationirregular_rhythm_notification
Typ rekordu: sesja
|
lista | .irn.readonly |
Nasycenie tlenem
oxygen-saturationoxygen_saturation
Typ rekordu: Próbka
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Podsumowanie snu na podstawie częstości oddechów
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
Typ rekordu: Próbka
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Wymagania dotyczące dostępu tylko do odczytu
Typy danych dotyczących fizjologicznych parametrów życiowych są wypełniane przez synchronizację urządzenia lub ręczne wpisy w aplikacji mobilnej lub aplikacji internetowej Fitbit i są tylko do odczytu za pomocą interfejsu REST API (nie można ich zapisywać ani modyfikować bezpośrednio za pomocą punktów końcowych interfejsu Google Health API).
W sekcjach poniżej znajdziesz szczegóły techniczne i formaty reprezentacji REST danych o parametrach życiowych.
Tętno i zdrowie serca
Interfejs API udostępnia szczegółowe pomiary w ciągu dnia i codzienne podsumowania dotyczące wskaźników tętna:
- Tętno (
heart-rate): pomiary tętna w określonym momencie zawierające liczbębeatsPerMinute, a takżemotionContextużytkownika (np.SEDENTARYlubACTIVE) isensorLocation(np.WRISTlubCHEST). - Dzienne tętno spoczynkowe (
daily-resting-heart-rate): dzienna wartość bazowa tętna spoczynkowego. - Zmienność rytmu serca (
heart-rate-variabilityidaily-heart-rate-variability): rejestruje średnią kwadratową kolejnych różnic (rmssd) w milisekundach, aby przedstawić zmienność rytmu serca.
Przykład reprezentacji REST
Aby wysłać zapytanie o pomiary tętna, prześlij żądanie GET do punktu końcowego list.
Ten przykład pokazuje pojedynczy punkt danych heart-rate z zwróconej listy:
Żądanie
GET https://health.googleapis.com/v4/users/me/dataTypes/heart-rate/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T08:05:00Z Authorization: Bearer access-token Accept: application/json
Odpowiedź
{
"dataPoints": [
{
"name": "users/me/dataTypes/heart-rate/dataPoints/hr-123456789",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"heartRate": {
"sampleTime": {
"physicalTime": "2026-04-20T08:00:00Z",
"utcOffset": "0s"
},
"beatsPerMinute": "72",
"metadata": {
"motionContext": "SEDENTARY",
"sensorLocation": "WRIST"
}
}
}
]
}Glukoza we krwi
Typ danych blood-glucose reprezentuje stężenie cukru we krwi użytkownika. Punkty pomiaru poziomu glukozy we krwi zawierają stężenie w miligramach na decylitr (mg/dL), informacje o posiłku lub czasie pomiaru oraz informacje o próbce.
Przykład reprezentacji REST
Aby wysłać zapytanie o pomiary poziomu glukozy we krwi, prześlij żądanie GET do punktu końcowego list. Ten przykład pokazuje pojedynczy punkt danych blood-glucose z zwróconej listy:
Żądanie
GET https://health.googleapis.com/v4/users/me/dataTypes/blood-glucose/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T09:00:00Z Authorization: Bearer access-token Accept: application/json
Odpowiedź
{
"dataPoints": [
{
"name": "users/me/dataTypes/blood-glucose/dataPoints/bg-987654321",
"dataSource": {
"recordingMethod": "MANUALLY_ENTERED"
},
"bloodGlucose": {
"sampleTime": {
"physicalTime": "2026-04-20T08:30:00Z",
"utcOffset": "-25200s"
},
"bloodGlucoseMilligramsPerDeciliter": 95.0,
"measurementSource": "SELF_MONITORING_BLOOD_GLUCOSE",
"mealType": "BREAKFAST",
"measurementTiming": "AFTER_MEAL",
"specimen": "CAPILLARY_BLOOD",
"notes": "Post-breakfast fingerstick reading"
}
}
]
}Nasycenie tlenem (SpO2)
Interfejs API śledzi poziom tlenu za pomocą wartości oxygen-saturation (wartości próbne w ciągu dnia) i daily-oxygen-saturation (dzienne statystyki podsumowujące). Stężenie procentowe jest wyrażone jako liczba z zakresu od 0 do 100.
Przykład reprezentacji REST
Aby wysłać zapytanie o pomiary nasycenia tlenem, wyślij żądanie GET do punktu końcowego list. Poniższy przykład pokazuje pojedynczy punkt danych oxygen-saturation z zwróconej listy:
Żądanie
GET https://health.googleapis.com/v4/users/me/dataTypes/oxygen-saturation/dataPoints?startTime=2026-04-20T03:00:00Z&endTime=2026-04-20T03:05:00Z Authorization: Bearer access-token Accept: application/json
Odpowiedź
{
"dataPoints": [
{
"name": "users/me/dataTypes/oxygen-saturation/dataPoints/spo2-555555",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"oxygenSaturation": {
"sampleTime": {
"physicalTime": "2026-04-20T03:00:00Z",
"utcOffset": "0s"
},
"percentage": 98.2
}
}
]
}Temperatura
Śledzenie temperatury obejmuje dane dotyczące temperatury ciała i trendy temperatury skóry podczas snu w nocy:
- Temperatura ciała (
core-body-temperature): rejestruje temperaturę narządów wewnętrznych w stopniach Celsjusza, z określeniem miejsca pomiaru (np.ARMPIT,EARlubFOREHEAD). - Wartości pochodne temperatury podczas snu (
daily-sleep-temperature-derivations): częste wahania temperatury skóry rejestrowane w nocy.
Przykład reprezentacji REST
Aby wysłać zapytanie o pomiary temperatury ciała, wyślij żądanie GET do punktu końcowego list. Poniższy przykład pokazuje pojedynczy punkt danych core-body-temperature z zwróconej listy:
Żądanie
GET https://health.googleapis.com/v4/users/me/dataTypes/core-body-temperature/dataPoints?startTime=2026-04-20T22:00:00Z&endTime=2026-04-20T23:00:00Z Authorization: Bearer access-token Accept: application/json
Odpowiedź
{
"dataPoints": [
{
"name": "users/me/dataTypes/core-body-temperature/dataPoints/cbt-666666",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"coreBodyTemperature": {
"sampleTime": {
"physicalTime": "2026-04-20T22:30:00Z",
"utcOffset": "-18000s"
},
"temperatureCelsius": 36.8,
"measurementLocation": "FOREHEAD"
}
}
]
}Elektrokardiogram (EKG) i powiadomienia
W przypadku urządzeń z czujnikami klasy medycznej interfejs API udostępnia zaawansowane typy danych dotyczących zdrowia serca:
- Elektrokardiogram (
electrocardiogram): wyniki sesji EKG jednoodprowadzeniowego, zawierające klasyfikację (SINUS_RHYTHM,ATRIAL_FIBRILLATION,INCONCLUSIVE), średnie tętno, częstotliwość próbkowania i próbki napięcia surowego przebiegu. - Powiadomienie o nieregularnym rytmie serca (
irregular-rhythm-notification): zdarzenia alertów kontekstowych wskazujące oznaki potencjalnego MP wykryte podczas pasywnego monitorowania.
Przykład reprezentacji REST
Aby wysłać zapytanie o dane sesji EKG, wyślij żądanie GET do punktu końcowego list. Poniższy przykład pokazuje pojedynczy punkt danych electrocardiogram z zwróconej listy:
Żądanie
GET https://health.googleapis.com/v4/users/me/dataTypes/electrocardiogram/dataPoints?startTime=2026-04-20T10:00:00Z&endTime=2026-04-20T10:05:00Z Authorization: Bearer access-token Accept: application/json
Odpowiedź
{
"dataPoints": [
{
"name": "users/me/dataTypes/electrocardiogram/dataPoints/ecg-777777",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"electrocardiogram": {
"interval": {
"startTime": "2026-04-20T10:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-04-20T10:00:30Z",
"endUtcOffset": "0s"
},
"resultClassification": "SINUS_RHYTHM",
"beatsPerMinuteAvg": "70",
"samplingFrequencyHertz": 250,
"millivoltsScalingFactor": 1000,
"leadNumber": 1,
"waveformSamples": [
-12, -8, 4, 18, 30, 42, 50, 48, 32, 10
]
}
}
]
}Zakresy i autoryzacja
Aby korzystać z funkcji danych o parametrach życiowych i zdrowiu serca, aplikacja musi poprosić o te zakresy OAuth:
- Odczyt:
https://www.googleapis.com/auth/googlehealth.ecg.readonly - Odczyt:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly - Pisać:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly - Odczyt:
https://www.googleapis.com/auth/googlehealth.irn.readonly
Wytyczne
Podczas projektowania funkcji związanych z parametrami życiowymi i wskaźnikami zdrowotnymi stosuj się do tych wskazówek:
- Obsługa przeliczania jednostek: wartości temperatury są podawane w stopniach Celsjusza. W kodzie interfejsu przekształć wartość na stopnie Fahrenheita na podstawie ustawień lokalnych użytkownika.
- Zarządzanie powiadomieniami webhook: subskrybuj alerty webhook dotyczące parametrów życiowych, aby wywoływać analizę backendu natychmiast po zsynchronizowaniu przez użytkownika nowych odczytów (takich jak tętno lub poziom glukozy we krwi).
- Respektuj wrażliwość danych: upewnij się, że produkt wyraźnie informuje użytkowników o kontekstach klinicznych lub związanych z dobrym samopoczuciem, w których można odczytywać dane fizjologiczne o wysokiej częstotliwości. Wyjaśnij, dlaczego zakresy takie jak
health_metrics_and_measurementslubecgsą wymagane przed wywołaniem promptów autoryzacji.