Zdravotní metriky - formát exportu JSON
Dokumentace struktury zdravotních metrik v JSON exportech
Poslední aktualizace: 31. října 2026
Na této stránce
JSON exporty ukládají zdravotní metriky do pole metrics.
Formát názvu metriky
Všechny názvy metrik v JSON exportech používají formát snake_case (malá písmena s podtržítky). Například:
- "Step Count" se stává
"step_count" - "Blood Pressure" se stává
"blood_pressure" - "Heart Rate" se stává
"heart_rate" - "Walking + Running Distance" se stává
"walking_running_distance"
Struktura
Pole metrics obsahuje objekty, z nichž každý představuje konkrétní typ zdravotní metriky. Většina zdravotních metrik se řídí společnou strukturou:
{
"name": "step_count",
"units": "count",
"data": [
{
"qty": 8500,
"date": "2024-02-06 14:30:00 -0800",
"source": "Apple Watch"
}
]
}
Společná pole
name(String): Název zdravotní metriky ve formátu snake_case (např. "step_count", "heart_rate", "active_energy")units(String): Měrná jednotka (např. "count", "count/min", "kcal")data(Array): Pole datových bodů, z nichž každý obsahuje:qty(Number): Hodnota množstvídate(Date): Časová značka ve formátuyyyy-MM-dd HH:mm:ss Zsource(String, pokud je dostupný): Aplikace nebo zařízení, které vzorek zaznamenalo
Speciální formáty metrik
Některé zdravotní metriky mají unikátní struktury, které se liší od společného formátu:
Krevní tlak
Čtení krevního tlaku zahrnují systolické i diastolické hodnoty:
{
"name": "blood_pressure",
"units": "mmHg",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"start": "2024-02-06 14:30:00 -0800",
"end": "2024-02-06 14:30:00 -0800",
"systolic": 120,
"diastolic": 80,
"source": "Health"
}
]
}
Pole:
systolic(Number): Systolické (horní) čtení krevního tlaku. Shrnuté exporty používají průměr čtení v časové skupině.diastolic(Number): Diastolické (dolní) čtení krevního tlaku. Shrnuté exporty používají průměr čtení v časové skupině.
Tepová frekvence
Data tepové frekvence zahrnují minimální, průměrné a maximální hodnoty:
{
"name": "heart_rate",
"units": "count/min",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"Min": 65,
"Avg": 72,
"Max": 85,
"source": "Apple Watch"
}
]
}
Pole:
Min(Number): Minimální tepová frekvence během období měřeníAvg(Number): Průměrná tepová frekvence během období měřeníMax(Number): Maximální tepová frekvence během období měření
Variabilita tepové frekvence
S vypnutým Shrnout data mohou JSON exporty variability tepové frekvence (SDNN) zahrnovat dostupná čtení beat-to-beat. Ta vyžadují oprávnění ke čtení Série srdečního tepu v Apple Health.
Shrnuté exporty, CSV exporty a Recovery HRV čtení beat-to-beat nezahrnují.
Analýza spánku
Struktura dat spánku závisí na tom, zda je Shrnout data zapnuté nebo vypnuté.
Shrnout data zapnuto
Se zapnutým Shrnout data se data spánku shrnují podle dne. Doby ve stejné fázi se sčítají. Celkový spánek je součet asleep, core, deep a REM. JSON zachovává každý den. V CSV hrubší časová skupina zobrazuje nejnovější den v dané skupině:
{
"name": "sleep_analysis",
"units": "hr",
"data": [
{
"date": "2024-02-06 00:00:00 -0800",
"totalSleep": 7.5,
"asleep": 0.5,
"core": 3.5,
"deep": 1.5,
"rem": 2.0,
"sleepStart": "2024-02-05 23:00:00 -0800",
"sleepEnd": "2024-02-06 06:30:00 -0800",
"inBed": 8.0,
"inBedStart": "2024-02-05 22:45:00 -0800",
"inBedEnd": "2024-02-06 06:45:00 -0800",
"awake": 0.0,
"source": "Apple Watch"
}
]
}
Pole:
totalSleep(Number): Celková doba spánku v hodináchasleep(Number): Doba spánku bez zaznamenané fáze spánku, v hodináchcore(Number): Doba core spánku v hodináchdeep(Number): Doba hlubokého spánku v hodináchrem(Number): Doba REM spánku v hodináchawake(Number): Doba bdění v hodináchsleepStart(Date): Kdy spánek skutečně začalsleepEnd(Date): Kdy spánek skutečně skončilinBed(Number): Celková doba v posteli v hodináchinBedStart(Date): Kdy jste si lehliinBedEnd(Date): Kdy jste vstali z postele
Shrnout data vypnuto
S vypnutým Shrnout data jsou zahrnuty jednotlivé segmenty spánku:
{
"name": "sleep_analysis",
"units": "hr",
"data": [
{
"date": "2024-02-05 23:00:00 -0800",
"start": "2024-02-05 23:00:00 -0800",
"end": "2024-02-05 23:30:00 -0800",
"startDate": "2024-02-05 23:00:00 -0800",
"endDate": "2024-02-05 23:30:00 -0800",
"qty": 0.5,
"value": "Core",
"source": "Apple Watch"
}
]
}
Pole:
date,start,startDate(Date): Čas začátku segmentu spánkuend,endDate(Date): Čas konce segmentu spánkusource(String): Aplikace nebo zařízení, které segment zaznamenaloqty(Number): Doba trvání segmentu v hodináchvalue(String): Stav spánku — jedna z:"Awake""Asleep"(nekategorizovaná fáze spánku)"In Bed""Core""REM""Deep""Unspecified"
Poznámka: "Asleep" označuje nekategorizovanou fázi spánku (nikoli celkovou dobu spánku). To se může stát, pokud zdroj dat nepodporuje sledování fází spánku.
Krevní glukóza
Čtení krevní glukózy zahrnují informace o načasování jídla:
{
"name": "blood_glucose",
"units": "mg/dL",
"data": [
{
"date": "2024-02-06 08:00:00 -0800",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:00:00 -0800",
"qty": 95,
"mealTime": "Before Meal",
"source": "Health"
}
]
}
Pole:
qty(Number): Úroveň krevní glukózymealTime(String): Jedna z:"Before Meal""After Meal""Unspecified"
Výživa
S vypnutým Shrnout data mohou jednotlivé vzorky množství výživy (například Dietary Energy nebo Carbohydrates) zahrnovat detaily jídla zaznamenané v Apple Health. Například:
{
"name": "dietary_energy",
"units": "kcal",
"data": [
{
"date": "2024-02-06 08:00:00 -0800",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:00:00 -0800",
"qty": 240,
"source": "Lose It!",
"foodType": "Boneless, Skinless Grilled Chicken Breast"
}
]
}
Pole:
qty(Number): Množství živiny pro vzorekfoodType(String, volitelné): Název jídla zaznamenaný zdrojovou aplikací, pokud je dostupný
Se zapnutým Shrnout data součty výživy nezahrnují foodType.
Sexuální aktivita
Záznamy sexuální aktivity sledují použití ochrany:
{
"name": "sexual_activity",
"units": "count",
"data": [
{
"date": "2024-02-06 00:00:00 -0800",
"Unspecified": 0,
"Protection Used": 1,
"Protection Not Used": 0,
"source": "Health"
}
]
}
Pole:
Unspecified(Number): Počet událostí toho dne, když je stav ochrany neznámýProtection Used(Number): Počet událostí toho dne, když byla ochrana použitaProtection Not Used(Number): Počet událostí toho dne, když ochrana nebyla použita
Shrnuté exporty počítají každý kalendářní den. JSON zachovává každý den. V CSV hrubší časová skupina zobrazuje nejnovější den v dané skupině.
Mytí rukou
Události mytí rukou sledují stav dokončení:
{
"name": "handwashing",
"units": "s",
"data": [
{
"date": "2024-02-06 12:00:00 -0800",
"start": "2024-02-06 12:00:00 -0800",
"end": "2024-02-06 12:00:25 -0800",
"qty": 25,
"value": "Completed",
"source": "Apple Watch"
}
]
}
Pole:
qty(Number): Doba trvání v sekundách. Shrnuté exporty používají průměrnou dobu v časové skupině.value(String):"Completed", když relace trvá déle než 20 sekund, jinak"Incomplete"
Čištění zubů
Události čištění zubů sledují stav dokončení:
{
"name": "toothbrushing",
"units": "s",
"data": [
{
"date": "2024-02-06 08:00:00 -0800",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:02:10 -0800",
"qty": 130,
"value": "Completed",
"source": "Health"
}
]
}
Pole:
qty(Number): Doba trvání v sekundách. Shrnuté exporty používají průměrnou dobu v časové skupině.value(String):"Completed", když relace trvá alespoň 2 minuty, jinak"Incomplete"
Podání inzulinu
Záznamy podání inzulinu zahrnují důvod podání:
{
"name": "insulin_delivery",
"units": "IU",
"data": [
{
"date": "2024-02-06 08:00:00 -0800",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:00:00 -0800",
"qty": 5,
"reason": "Bolus",
"source": "Health"
}
]
}
Pole:
qty(Number): Množství podaného inzulinu. Shrnuté exporty sčítají množství v časové skupině.reason(String): Jedna z:"Bolus"(inzulin k jídlu)"Basal"(bazální inzulin)