Centar za pomoć HealthyApps
Hrvatski
Centar za pomoć
Glavna web stranica ↗

Pretraži teme pomoći

Treninzi - format izvoza JSON

Dokumentacija strukture treninga u JSON izvozima

Posljednje ažuriranje: 31. listopada 2026.

Na ovoj stranici
Verzije izvoza
Treninzi Verzija 2 Treninzi Verzija 2 Osnovna strukturaObavezna poljaOpcionalna poljaVremenska grupacija metrika treninga
Treninzi Verzija 1 (Legacy) Treninzi Verzija 1 (Legacy) Struktura Verzije 1
Povezana dokumentacija

JSON izvozi pohranjuju treninge u polje workouts.

Verzije izvoza

Health Auto Export podržava dvije verzije izvoza treninga:

  • Verzija 2 (Preporučeno): Poboljšani format s detaljnijim metapodacima i strukturiranim podacima
  • Verzija 1 (Legacy): Stariji format zadržan radi kompatibilnosti s postojećim tijekovima rada

Treninzi Verzija 2

Verzija 2 uključuje sljedeća obavezna polja i opcionalne podatke. Primjeri su s isključenim Lokaliziraj jedinice; uključivanje može promijeniti oznake jedinica u metrijskim nizovima.

Osnovna 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
}

Obavezna polja

  • id (String): Jedinstveni identifikator treninga
  • name (String): Naziv tipa treninga (npr. "Running", "Cycling", "Swimming")
  • start (Date): Vrijeme početka treninga u formatu yyyy-MM-dd HH:mm:ss Z
  • end (Date): Vrijeme kraja treninga u formatu yyyy-MM-dd HH:mm:ss Z
  • duration (Number): Trajanje treninga u sekundama

Opcionalna polja

Opcionalna polja ovise o dostupnim podacima i vašim odabirima izvoza:

Izvor snimanja

{
  "source": {
    "name": "Workout App",
    "identifier": "com.example.workouts"
  }
}
  • source (Object): Aplikacija ili uređaj koji je snimio trening; s nazivom i identifikatorom aplikacije. Pojedinačna očitanja metrika imaju zasebne nizove izvora i mogu dolaziti iz druge aplikacije ili uređaja.

Informacije o lokaciji

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): Jedno od "Indoor", "Outdoor", "Pool", "Open Water"
  • isIndoor (Boolean): Je li trening izveden u zatvorenom prostoru

Energija i intenzitet

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "kcal/hr\u00b7kg"
  }
}
  • activeEnergyBurned (Object): Aktivne kalorije potrošene tijekom treninga
  • totalEnergy (Object): Ukupne potrošene kalorije (aktivne + mirovanje)
  • intensity (Object): Vrijednost metaboličkog ekvivalenta zadatka (MET)

Udaljenost i brzina

{
  "distance": {
    "qty": 3.5,
    "units": "mi"
  }
}
  • distance (Object): Ukupna prijeđena udaljenost
  • speed (Object): Prosječna brzina izračunata iz udaljenosti i trajanja
  • avgSpeed (Object): Prosječna brzina tijekom treninga
  • maxSpeed (Object): Postignuta maksimalna brzina

Svaki objekt sadrži qty i units.

Elevacija

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Ukupno stečeno uzvišenje
  • elevationDown (Object): Ukupno izgubljeno uzvišenje

Jedinice: "ft" (stope) ili "m" (metri)

Okolišni podaci

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Temperatura okoline tijekom treninga
  • humidity (Object): Relativna vlažnost u postocima

Jedinice temperature: "degF" (Fahrenheit) ili "degC" (Celsius)

Polja specifična za plivanje

{
  "lapLength": {
    "qty": 0.025,
    "units": "mi"
  },
  "strokeStyle": "Freestyle",
  "swolfScore": 45,
  "salinity": "Fresh Water",
  "totalSwimmingStrokeCount": {
    "qty": 1200,
    "units": "count"
  },
  "swimCadence": {
    "qty": 30,
    "units": "count/min"
  }
}
  • lapLength (Object): Duljina svakog kruga
  • strokeStyle (String): Jedno od:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Rezultat učinkovitosti plivanja
  • salinity (String): "Fresh Water" ili "Salt Water"
  • totalSwimmingStrokeCount (Object): Ukupan broj zaveslaja
  • swimCadence (Object): Zaveslaji u minuti

Podaci o koracima i kadenci

{
  "stepCount": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 5000,
      "units": "count",
      "source": "Apple Watch"
    }
  ],
  "stepCadence": {
    "qty": 180,
    "units": "count/min"
  },
  "flightsClimbed": {
    "qty": 10,
    "units": "count"
  }
}
  • stepCount (Array): Polje mjerenja broja koraka kroz vrijeme
  • stepCadence (Object): Koraci u minuti
  • flightsClimbed (Object): Broj pređenih katova

Podaci frekvencije otkucaja srca

{
  "heartRate": {
    "min": {
      "qty": 120,
      "units": "count/min"
    },
    "avg": {
      "qty": 150,
      "units": "count/min"
    },
    "max": {
      "qty": 175,
      "units": "count/min"
    }
  },
  "maxHeartRate": {
    "qty": 175,
    "units": "count/min"
  },
  "avgHeartRate": {
    "qty": 150,
    "units": "count/min"
  },
  "heartRateData": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "Min": 120,
      "Avg": 150,
      "Max": 175,
      "units": "count/min",
      "source": "Apple Watch"
    }
  ],
  "heartRateRecovery": [
    {
      "date": "2024-02-06 07:30:00 -0800",
      "Min": 140,
      "Avg": 145,
      "Max": 150,
      "units": "count/min",
      "source": "Apple Watch"
    }
  ]
}
  • heartRate (Object): Sažetak min, pros. i max frekvencije otkucaja srca tijekom treninga
  • maxHeartRate (Object): Maksimalna frekvencija otkucaja srca tijekom treninga
  • avgHeartRate (Object): Prosječna frekvencija otkucaja srca tijekom treninga
  • heartRateData (Array): Detaljna mjerenja s treninga; završavaju kada trening završi
  • heartRateRecovery (Array): Odvojena mjerenja iz dvije minute odmah nakon završetka treninga

Sažeci frekvencije otkucaja srca koriste zabilježene vrijednosti treninga kada su dostupne; inače se oslanjaju na očitanja frekvencije otkucaja srca treninga. Izvezena očitanja uključuju mjerenja tijekom pauza; stoga se vrhunci i prosjeci mogu razlikovati od sažetka.

Polja vremenskih nizova

Kada je uključeno „Uključi metrike treninga“, mnoge metrike mogu biti uključene kao polja vremenskih nizova:

{
  "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": "count/min",
      "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": "mi/hr",
      "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): Vremenska oznaka mjerenja
  • qty (Number): Vrijednost količine
  • units (String): Jedinica mjere
  • source (String, opcionalno): Izvorni uređaj ili aplikacija

Struktura HeartRateData:

  • date (Date): Vremenska oznaka mjerenja
  • Min (Number): Minimalna frekvencija otkucaja srca
  • Avg (Number): Prosječna frekvencija otkucaja srca
  • Max (Number): Maksimalna frekvencija otkucaja srca
  • units (String): Jedinica (count/min s isključenim Lokaliziraj jedinice)
  • source (String, opcionalno): Izvorni uređaj ili aplikacija

Podaci rute

Kada je uključeno „Uključi podatke rute“ i trening ima GPS podatke:

{
  "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
    }
  ]
}

Polja lokacije:

  • latitude (Number): Geografska širina GPS
  • longitude (Number): Geografska dužina GPS
  • altitude (Number): Nadmorska visina u metrima
  • course (Number): Smjer kretanja u stupnjevima (0–360)
  • courseAccuracy (Number): Preciznost mjerenja smjera u stupnjevima
  • horizontalAccuracy (Number): Horizontalna preciznost položaja u metrima
  • verticalAccuracy (Number): Vertikalna preciznost položaja u metrima
  • timestamp (Date): Kada je položaj zabilježen
  • speed (Number): Brzina u metrima u sekundi
  • speedAccuracy (Number): Preciznost mjerenja brzine u m/s

Metapodaci

{
  "metadata": {
    "customField": {
      "label": "value",
      "quantity": 123
    },
    "anotherField": [
      1,
      2,
      3
    ]
  }
}
  • metadata (Object): Dodatni prilagođeni metapodaci povezani s treningom

Događaji, aktivnosti i dionice

Izvozi JSON i Markdown Verzije 2 mogu uključivati events, segments, laps i activities zabilježene aplikacijom treninga. Dostupni su i s isključenim Uključi metrike treninga. CSV i GPX te zapise ne uključuju.

S uključenim Uključi metrike treninga i odabranim povezanim metrikama intervali također mogu uključivati udaljenost, aktivnu energiju, sažetke frekvencije otkucaja srca te tempo ili brzinu aktivnog vremena. Vrijednosti razdvajaju zabilježena mjerenja od procjena; nedostupne vrijednosti se preskaču.

Kada je odabrana udaljenost, splits mogu uključivati procijenjene kilometreske i miljske dionice. Mogu se razlikovati od dionica aplikacije koja snima, a posljednja dionica označena je kao djelomična ako je kraća od ciljne udaljenosti. Nedostajuća očitanja udaljenosti ili nepodržani tipovi treninga mogu spriječiti izračun dionica.

Rezultati napora treninga

Izvozi JSON i Markdown Verzije 2 mogu uključivati odabrane vrijednosti Rezultata napora treninga (effortScore) i Procijenjenog rezultata napora treninga (estimatedEffortScore). Svaki je objekt koji sadrži qty i units: "appleEffortScore".

Rezultati zahtijevaju iOS 18 ili noviji i pristup povezanim podacima u Apple Healthu. Rezultati cijelog treninga i aktivnosti su odvojeni. Neovisni su o Vremenskoj grupaciji i Uključi metrike treninga; CSV ih ne uključuje.

U Pregledaj → Treninzi otvorite stranicu izvoza popisa ili postavke izvoza Verzije 2 treninga, zatim prije izvoza koristite Odaberi polja izvoza za odabir rezultata napora.

Vremenska grupacija metrika treninga

Pri korištenju Verzije izvoza 2 i uključenom „Uključi metrike treninga“ možete upravljati razinom detalja podataka vremenskih nizova:

  • Minute: Grupira metrike treninga po minutama sata. Prva i posljednja minuta mogu uključivati nekoliko sekundi neposredno prije početka ili nakon kraja treninga.
  • Sekunde: Grupira metrike treninga po sekundama sata; svaka vremenska oznaka označava početak svoje sekunde. Prva i posljednja sekunda mogu uključivati djelić sekunde neposredno izvan treninga. Datoteke su veće nego pri grupaciji po minutama.

Aktivna i bazalna energija u svakoj vremenskoj grupi koriste iste ujedinjene zbrojeve kao i ostale metrike treninga. Očitanja s više uređaja ili aplikacija uključuju se zajedno.

Treninzi Verzija 1 (Legacy)

Verzija 1 koristi jednostavniju strukturu. Za nove izvoze preporučuje se Verzija 2.

Struktura Verzije 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": "bpm"
    }
  ],
  "route": [
    {
      "lat": 37.7749,
      "lon": -122.4194,
      "altitude": 50.5,
      "timestamp": "2024-02-06 07:00:00 -0800"
    }
  ]
}

Povezana dokumentacija