Interfejs API Google Health udostępnia typy danych, które śledzą wzorce snu użytkownika, w tym czas trwania, jakość i wskaźniki fizjologiczne podczas odpoczynku. Te dane pomagają aplikacjom dostarczać informacji o regeneracji, higienie snu i długoterminowych trendach zdrowotnych.
Wskaźniki fizjologiczne, takie jak zmienność rytmu serca (HRV), nasycenie krwi tlenem (SpO2) i częstość oddychania, są rejestrowane w trakcie snu, ponieważ organizm znajduje się wtedy w stabilnym stanie spoczynku. Dzięki temu interfejs API może rejestrować podstawowe dane dotyczące autonomicznego układu nerwowego i zdrowia układu oddechowego użytkownika bez zakłóceń spowodowanych przez czynniki stresogenne w ciągu dnia, aktywność fizyczną lub zmienne warunki środowiskowe.
Poznaj różnice między tymi typami danych, aby określić, które dane pasują do Twojej aplikacji.
Obsługiwane typy danych
Interfejs API obsługuje te typy danych do pomiaru snu:
| Typ danych | Dostępne operacje |
Zakres |
|---|---|---|
|
Dzienna zmienność rytmu serca
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Codzienne nasycenie tlenem
dataType:
daily-oxygen-saturationfilter parameter: daily_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
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Codzienne wyliczenia temperatury podczas snu
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
Typ rekordu: dzienny
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Zmienność rytmu serca
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
Typ rekordu: Próbka
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Nasycenie tlenem
dataType:
oxygen-saturationfilter parameter: oxygen_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
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
Typ rekordu: Próbka
Zgodne urządzenia
|
lista, uzgadnianie | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Sen
dataType:
sleepfilter parameter: sleep
Typ rekordu: sesja
Zgodne urządzenia
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
Sesje snu i krótkie przebudzenia
Sesja snu (Sleep) to pojedyncze zdarzenie związane ze snem, np. sen w nocy lub drzemka w ciągu dnia. Obejmuje szczegółowe zestawienie niepokrywających się faz snu oraz krótkich okresów przejściowych do stanu czuwania, zwanych krótkimi przebudzeniami.
- Sesja snu (
Sleep): reprezentuje odrębne zdarzenie snu (LIGHT,DEEP,REM,AWAKE– przedziały czasowe poszczególnych faz), które dzielą ciągłą oś czasu głównego odpoczynku. - Krótkie przebudzenia (
shortAwakenings): krótkie przejścia do stanu czuwania lub przebudzenia, które występują podczas odpoczynku. W przeciwieństwie do standardowychAWAKEprzedziałów faz snu (które dzielą niepokrywające się, ciągłe fazy snu) krótkie przebudzenia to odrębne segmenty, które mogą się pokrywać z otaczającymi je fazami snu. Zapewniają szczegółowy wgląd w niepokój i mikroprzebudzenia bez zakłócania podstawowej struktury faz snu.
Przykład
{
"name": "sleeps/12345",
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-21T06:30:00Z",
"sleepType": "STAGES",
"sleepStages": [
{
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-20T23:45:00Z",
"type": "LIGHT"
},
{
"startTime": "2026-04-20T23:45:00Z",
"endTime": "2026-04-21T01:15:00Z",
"type": "DEEP"
}
],
"shortAwakenings": [
{
"startTime": "2026-04-20T23:10:00Z",
"endTime": "2026-04-20T23:11:30Z",
"type": "AWAKE"
}
]
}
Tworzenie sesji snu
Aby utworzyć wpis sesji snu, wyślij żądanie POST do punktu końcowego sleep data
points. Odpowiedź zawiera pole name z wartością data-point-id, której można użyć w żądaniu Update (Patch) lub Delete.
Żądanie
POST https://health.googleapis.com/v4/users/me/dataTypes/sleep/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}Odpowiedź
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}
}Codzienne dane dotyczące temperatury podczas snu
Codzienne dane dotyczące temperatury podczas snu mierzą wahania temperatury skóry użytkownika podczas snu w porównaniu z wartością bazową. Dane te są zwykle raportowane raz dziennie po dłuższej sesji snu.
Częstość oddechów
Częstość oddechów to liczba oddechów użytkownika na minutę. Podczas snu jest to kluczowy wskaźnik monitorowania jakości snu i potencjalnych zaburzeń. Interfejs API obsługuje próbkowanie częstości oddychania (respiratory-rate), podsumowania dzienne (daily-respiratory-rate) i podsumowania snu na poziomie sesji (respiratory-rate-sleep-summary).
Zmienność rytmu serca (HRV)
HRV to miara odstępów między uderzeniami serca. Jest to kluczowy wskaźnik stanu autonomicznego układu nerwowego. Wysoka zmienność rytmu serca podczas snu zwykle oznacza lepszą regenerację i gotowość, a niska zmienność rytmu serca może wskazywać na stres lub przetrenowanie. Interfejs API obsługuje próbki zmienności rytmu serca (heart-rate-variability) i podsumowania dzienne (daily-heart-rate-variability).
Nasycenie tlenem (SpO2)
SpO2 to procent hemoglobiny wysyconej tlenem w stosunku do całkowitej ilości hemoglobiny we krwi. Monitorowanie SpO2 podczas snu ma kluczowe znaczenie dla wykrywania potencjalnych zaburzeń oddychania i zapewnienia odpowiedniego poziomu tlenu przez całą noc. Interfejs API obsługuje próbki SpO2 (oxygen-saturation) i dzienne podsumowania (daily-oxygen-saturation).
Holistyczny widok zdrowia snu i regeneracji
Każdy z tych wskaźników dostarcza konkretnych informacji, ale są one ze sobą ściśle powiązane i razem dają pełny obraz regeneracji użytkownika. Fazy snu (płytki, głęboki, REM) stanowią podstawę odpoczynku, a markery fizjologiczne, takie jak HRV i SpO2, wskazują, jak organizm reaguje na ten odpoczynek. Na przykład wysokiej jakości sen z optymalną fazą snu głębokiego często wiąże się z wyższym poziomem HRV, co oznacza efektywną regenerację autonomicznego układu nerwowego.
Połączenie tych danych z częstością oddychania i temperaturą podczas snu pozwala aplikacjom wykrywać potencjalne zaburzenia. Nagły wzrost częstotliwości oddechu lub odchylenie temperatury ciała podczas snu mogą wyjaśniać, dlaczego użytkownik spędził mniej czasu w fazach regeneracyjnych. Analizując te typy danych jednocześnie, deweloperzy mogą zapewnić kompleksową ocenę higieny snu i długoterminowych trendów zdrowotnych.
Wytyczne
Podczas integrowania danych snu w aplikacji postępuj zgodnie z tymi wskazówkami:
- Szczegóły sesji: aby wyświetlić fazy snu użytkownika (płytki, głęboki, REM, przebudzenie) i krótkie przebudzenia, wyślij zapytanie o typ danych
sleep. - Monitorowanie fizjologiczne: aby uzyskać zaawansowane monitorowanie zdrowia, połącz dane sesji snu z danymi fizjologicznymi i danymi dotyczącymi regeneracji, takimi jak
respiratory-rate-sleep-summary,daily-sleep-temperature-derivations,daily-heart-rate-variabilityidaily-oxygen-saturation. - Uzgodnienie: użyj operacji
reconcile, aby mieć pewność, że nakładające się na siebie logi snu z różnych urządzeń (np. urządzenia do noszenia i czujnika na materacu) zostaną połączone w jeden „główny” rekord snu.
Obliczanie łącznego czasu snu głębokiego
Aby obliczyć łączny czas, jaki użytkownik spędził w fazie regenerującego snu głębokiego w konkretną noc:
- Wyszukaj typ danych
sleepw określonym zakresie czasu. - Przejdź przez listę etapów i zidentyfikuj przedziały, w których
stageTypejestDEEP. - Oblicz czas trwania (czas zakończenia – czas rozpoczęcia) każdego przedziału snu głębokiego i zsumuj je.
Wynikowa suma to łączny czas trwania snu głębokiego podczas danej sesji.