Тренування — формат експорту JSON
Документація щодо структури тренувань у JSON-експортах
Last updated: April 5, 2026
На цій сторінці
Тренування
Дані тренувань охоплюють усі ваші сесії фізичних вправ, записані в Apple Health: біг, велосипед, плавання, силові тренування тощо. У JSON-експортах тренування зберігаються в масиві workouts.
Версії експорту
Health Auto Export підтримує дві версії експорту тренувань:
- Версія 2 (рекомендовано): розширений формат із детальнішими метаданими та структурованими даними
- Версія 1 (застаріла): старіший формат, збережений для сумісності з наявними робочими процесами
Тренування — версія 2
Версія 2 містить повну структуру; необов’язкові поля додаються лише за наявності даних.
Базова структура
{
"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
}
Обов’язкові поля
id(String): унікальний ідентифікатор тренуванняname(String): назва типу тренування (наприклад, "Running", "Cycling", "Swimming")start(Date): час початку тренування у форматіyyyy-MM-dd HH:mm:ss Zend(Date): час завершення тренування у форматіyyyy-MM-dd HH:mm:ss Zduration(Number): тривалість тренування в секундах
Необов’язкові поля
Нижче наведені поля, які додаються лише за наявності даних:
Інформація про локацію
{
"location": "Outdoor",
"isIndoor": false
}
location(String): одне з"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): чи виконувалося тренування в приміщенні
Енергія та інтенсивність
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Object): активні калорії, спалені під час тренуванняtotalEnergy(Object): загальні калорії (активні + спокій)intensity(Object): метаболічний еквівалент навантаження (MET)
Відстань і швидкість
{
"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): загальна пройдена відстаньspeed(Object): поточна або середня швидкістьavgSpeed(Object): середня швидкість за все тренуванняmaxSpeed(Object): максимальна досягнута швидкість
Одиниці:
- Відстань:
"mi"(милі) або"km"(кілометри) - Швидкість:
"mph"(милі на годину) або"kmph"(кілометри на годину)
Висота
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Object): сумарний набір висотиelevationDown(Object): сумарне зниження
Одиниці: "ft" (фути) або "m" (метри)
Дані про довкілля
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Object): температура навколишнього середовища під час тренуванняhumidity(Object): відносна вологість у відсотках
Одиниці температури: "degF" (Фаренгейт) або "degC" (Цельсій)
Поля, специфічні для плавання
{
"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): довжина одного колаstrokeStyle(String): одне з:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): оцінка ефективності плавання (SWOLF)salinity(String):"Fresh Water"або"Salt Water"totalSwimmingStrokeCount(Object): загальна кількість гребківswimCadence(Object): гребки за хвилину
Дані про кроки та каденс
{
"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): масив вимірювань кількості кроків у часіstepCadence(Object): кроки за хвилинуflightsClimbed(Object): кількість підйомів сходами
Дані про пульс
{
"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): підсумок із мінімальним, середнім і максимальним пульсомmaxHeartRate(Object): максимальний пульс під час тренуванняavgHeartRate(Object): середній пульс під час тренуванняheartRateData(Array): детальні вимірювання пульсу протягом тренуванняheartRateRecovery(Array): вимірювання пульсу під час періоду відновлення
Масиви часових рядів
Багато показників можуть бути представлені як часові ряди, коли увімкнено «Include Workout Metrics»:
{
"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"
}
]
}
Структура QuantityData:
date(Date): мітка часу вимірюванняqty(Number): числове значення величиниunits(String): одиниця вимірюванняsource(String, необов’язково): пристрій або застосунок джерела даних
Структура HeartRateData:
date(Date): мітка часу вимірюванняMin(Number): мінімальний пульсAvg(Number): середній пульсMax(Number): максимальний пульсunits(String): одиниця (зазвичай"bpm")source(String, необов’язково): пристрій або застосунок джерела даних
Дані маршруту
Коли увімкнено «Include Route Data» і у тренування є дані GPS:
{
"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
}
]
}
Поля локації:
latitude(Number): широта GPSlongitude(Number): довгота GPSaltitude(Number): висота в метрахcourse(Number): напрям руху в градусах (0–360)courseAccuracy(Number): точність вимірювання курсу в градусахhorizontalAccuracy(Number): горизонтальна точність позиції в метрахverticalAccuracy(Number): вертикальна точність позиції в метрахtimestamp(Date): час запису точки локаціїspeed(Number): швидкість у метрах за секундуspeedAccuracy(Number): точність вимірювання швидкості в м/с
Метадані
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Object): додаткові користувацькі метадані, пов’язані з тренуванням
Тренування — версія 1 (застаріла)
Версія 1 використовує простішу структуру. Для нових експортів рекомендована версія 2.
Структура версії 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"
}
]
}
Групування показників тренування за часом
Під час використання версії експорту 2 та увімкненої опції «Include Workout Metrics» можна керувати деталізацією часових рядів:
- Minutes — групування показників тренування за хвилинними інтервалами
- Seconds — групування за секундними інтервалами (детальніше, більший розмір файлу)
Поради
- Include Route Data: увімкніть цю опцію, щоб отримати дані GPS-маршруту для тренувань на вулиці
- Include Workout Metrics: увімкніть, щоб отримати детальні часові ряди для показників на кшталт пульсу, потужності та каденсу
- Export Version: використовуйте версію 2 для найповнішої структури даних
- GPX Export: дані маршруту також можна експортувати окремими файлами GPX для використання в картографічних застосунках