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éninku
  • name (String): Název typu tréninku (např. „Running“, „Cycling“, „Swimming“)
  • start (Date): Začátek tréninku ve formátu yyyy-MM-dd HH:mm:ss Z
  • end (Date): Konec tréninku ve formátu yyyy-MM-dd HH:mm:ss Z
  • duration (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éninku
  • totalEnergy (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álenost
  • speed (Object): Okamžitá nebo průměrná rychlost
  • avgSpeed (Object): Průměrná rychlost po celý trénink
  • maxSpeed (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éninku
  • humidity (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álky
  • strokeStyle (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 minutu
  • flightsClimbed (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é frekvence
  • maxHeartRate (Object): Nejvyšší tep během tréninku
  • avgHeartRate (Object): Průměrný tep během tréninku
  • heartRateData (Array): Podrobná měření tepu v průběhu tréninku
  • heartRateRecovery (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činy
  • units (String): Měrná jednotka
  • source (String, volitelné): Zdroj dat (zařízení nebo aplikace)

Struktura HeartRateData:

  • date (Date): Časové razítko měření
  • Min (Number): Minimální tepová frekvence
  • Avg (Number): Průměrná tepová frekvence
  • Max (Number): Maximální tepová frekvence
  • units (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 GPS
  • longitude (Number): Zeměpisná délka GPS
  • altitude (Number): Nadmořská výška v metrech
  • course (Number): Směr pohybu ve stupních (0–360)
  • courseAccuracy (Number): Přesnost směru ve stupních
  • horizontalAccuracy (Number): Přesnost vodorovné polohy v metrech
  • verticalAccuracy (Number): Přesnost svislé polohy v metrech
  • timestamp (Date): Čas záznamu polohy
  • speed (Number): Rychlost v metrech za sekundu
  • speedAccuracy (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

Související dokumentace