Tréninky - formát exportu JSON
Dokumentace struktury tréninků v JSON exportech.
Last updated: March 31, 2026
Na této stránce
Tréninky
Data tréninků zahrnují všechny zaznamenané pohybové aktivity v Apple Health, například běh, cyklistiku, plavání, posilování a další. Ve výstupech JSON jsou tréninky v poli workouts.
Verze exportu
Health Auto Export podporuje dvě verze exportu tréninků:
- Verze 2 (doporučeno): rozšířený formát s podrobnějšími metadaty a strukturou
- Verze 1 (zastaralá): starší formát kvůli kompatibilitě se stávajícími postupy
Tréninky – verze 2
Verze 2 popisuje strukturu včetně volitelných polí; ta se objeví jen tehdy, pokud jsou data k dispozici.
Základní struktura
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"duration": 1800
}
Povinná pole
id(String): Jedinečný identifikátor tréninkuname(String): Název typu tréninku (např. „Running“, „Cycling“, „Swimming“)start(Date): Začátek tréninku ve formátuyyyy-MM-dd HH:mm:ss Zend(Date): Konec tréninku ve formátuyyyy-MM-dd HH:mm:ss Zduration(Number): Délka tréninku v sekundách
Volitelná pole
Následující pole se zahrnou jen tehdy, pokud pro ně existují data:
Informace o místě
{
"location": "Outdoor",
"isIndoor": false
}
location(String): Jedna z hodnot"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): Zda proběhl trénink uvnitř
Energie a intenzita
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Object): Aktivně spálené kalorie během tréninkutotalEnergy(Object): Celkové kalorie (aktivní + klidové)intensity(Object): Metabolická ekvivalentní intenzita (MET)
Vzdálenost a rychlost
{
"distance": {
"qty": 3.5,
"units": "mi"
},
"speed": {
"qty": 7.0,
"units": "mph"
},
"avgSpeed": {
"qty": 7.0,
"units": "mph"
},
"maxSpeed": {
"qty": 8.5,
"units": "mph"
}
}
distance(Object): Celková uražená vzdálenostspeed(Object): Okamžitá nebo průměrná rychlostavgSpeed(Object): Průměrná rychlost po celý tréninkmaxSpeed(Object): Nejvyšší dosažená rychlost
Jednotky:
- Vzdálenost:
"mi"(míle) nebo"km"(kilometry) - Rychlost:
"mph"(míle za hodinu) nebo"kmph"(kilometry za hodinu)
Převýšení
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Object): Celkové stoupáníelevationDown(Object): Celkové klesání
Jednotky: "ft" (stopy) nebo "m" (metry)
Prostředí
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Object): Teplota okolí během tréninkuhumidity(Object): Relativní vlhkost vzduchu v procentech
Teplota: "degF" (stupně Fahrenheita) nebo "degC" (stupně Celsia)
Pole specifická pro plavání
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "spm"
}
}
lapLength(Object): Délka jednoho bazénového dálkystrokeStyle(String): Jedna z hodnot:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): Skóre efektivity plavání (SWOLF)salinity(String):"Fresh Water"nebo"Salt Water"totalSwimmingStrokeCount(Object): Celkový počet záběrůswimCadence(Object): Záběry za minutu
Kroky a kadence
{
"stepCount": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 5000,
"units": "count",
"source": "Apple Watch"
}
],
"stepCadence": {
"qty": 180,
"units": "spm"
},
"flightsClimbed": {
"qty": 10,
"units": "count"
}
}
stepCount(Array): Časová řada měření počtu krokůstepCadence(Object): Kroků za minutuflightsClimbed(Object): Počet nastoupených pater schodů
Data tepové frekvence
{
"heartRate": {
"min": {
"qty": 120,
"units": "bpm"
},
"avg": {
"qty": 150,
"units": "bpm"
},
"max": {
"qty": 175,
"units": "bpm"
}
},
"maxHeartRate": {
"qty": 175,
"units": "bpm"
},
"avgHeartRate": {
"qty": 150,
"units": "bpm"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"Min": 120,
"Avg": 150,
"Max": 175,
"units": "bpm",
"source": "Apple Watch"
}
],
"heartRateRecovery": [
{
"date": "2024-02-06 07:30:00 -0800",
"Min": 140,
"Avg": 145,
"Max": 150,
"units": "bpm",
"source": "Apple Watch"
}
]
}
heartRate(Object): Shrnutí min., prům. a max. tepové frekvencemaxHeartRate(Object): Nejvyšší tep během tréninkuavgHeartRate(Object): Průměrný tep během tréninkuheartRateData(Array): Podrobná měření tepu v průběhu tréninkuheartRateRecovery(Array): Měření tepu v období zotavení
Časové řady (pole)
Po zapnutí „Zahrnout metriky tréninku“ lze řadu veličin exportovat jako časové řady:
{
"activeEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 50,
"units": "kcal",
"source": "Apple Watch"
}
],
"basalEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "kcal",
"source": "Apple Watch"
}
],
"cyclingCadence": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 90,
"units": "rpm",
"source": "Apple Watch"
}
],
"cyclingDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.5,
"units": "mi",
"source": "Apple Watch"
}
],
"cyclingPower": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 200,
"units": "W",
"source": "Power Meter"
}
],
"cyclingSpeed": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 18,
"units": "mph",
"source": "Apple Watch"
}
],
"swimDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 25,
"units": "yd",
"source": "Apple Watch"
}
],
"swimStroke": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "count",
"source": "Apple Watch"
}
],
"walkingAndRunningDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.25,
"units": "mi",
"source": "Apple Watch"
}
]
}
Struktura QuantityData:
date(Date): Časové razítko měřeníqty(Number): Hodnota veličinyunits(String): Měrná jednotkasource(String, volitelné): Zdroj dat (zařízení nebo aplikace)
Struktura HeartRateData:
date(Date): Časové razítko měřeníMin(Number): Minimální tepová frekvenceAvg(Number): Průměrná tepová frekvenceMax(Number): Maximální tepová frekvenceunits(String): Jednotka (typicky „bpm“)source(String, volitelné): Zdroj dat
Data trasy
Po zapnutí „Zahrnout data trasy“ a pokud má trénink GPS data:
{
"route": [
{
"latitude": 37.7749,
"longitude": -122.4194,
"altitude": 50.5,
"course": 45.0,
"courseAccuracy": 5.0,
"horizontalAccuracy": 10.0,
"verticalAccuracy": 15.0,
"timestamp": "2024-02-06 07:00:00 -0800",
"speed": 7.0,
"speedAccuracy": 0.5
}
]
}
Pole polohy:
latitude(Number): Zeměpisná šířka GPSlongitude(Number): Zeměpisná délka GPSaltitude(Number): Nadmořská výška v metrechcourse(Number): Směr pohybu ve stupních (0–360)courseAccuracy(Number): Přesnost směru ve stupníchhorizontalAccuracy(Number): Přesnost vodorovné polohy v metrechverticalAccuracy(Number): Přesnost svislé polohy v metrechtimestamp(Date): Čas záznamu polohyspeed(Number): Rychlost v metrech za sekunduspeedAccuracy(Number): Přesnost měření rychlosti v m/s
Metadata
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Object): Další vlastní metadata spojená s tréninkem
Tréninky – verze 1 (zastaralá)
Verze 1 používá jednodušší strukturu. Pro nové exporty doporučujeme verzi 2.
Struktura verze 1
{
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"activeEnergy": {
"qty": 350,
"units": "kcal"
},
"distance": {
"qty": 3.5,
"units": "mi"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 150,
"units": "count"
}
],
"route": [
{
"lat": 37.7749,
"lon": -122.4194,
"altitude": 50.5,
"timestamp": "2024-02-06 07:00:00 -0800"
}
]
}
Časové seskupení metrik tréninku
Při exportní verzi 2 a zapnutém „Zahrnout metriky tréninku“ určuje rozlišení časových řad:
- Minuty: metriky po minutových intervalech
- Sekundy: metriky po sekundách (detailnější, větší soubor)
Tipy
- Zahrnout data trasy: zapněte pro GPS trasu u venkovních aktivit
- Zahrnout metriky tréninku: zapněte pro časové řady tepu, výkonu, kadence a podobně
- Verze exportu: pro nejúplnější strukturu použijte verzi 2
- Export GPX: trasu lze exportovat i jako samostatné GPX soubory pro mapové aplikace