Treningsøkter - JSON Eksportformat

Dokumentasjon om treningsstrukturen i JSON-eksporter

Last updated: February 6, 2026

On this page

Treningsøkter

Treningsdata inkluderer alle treningsøktene dine registrert i Apple Health, som løping, sykling, svømming, styrketrening og mer. I JSON-eksporter lagres treningsøkter i arrayet workouts.

Eksportversjoner

Health Auto Export støtter to treningseksportversjoner:

  • Versjon 2 (Anbefalt): Forbedret format med mer detaljerte metadata og strukturert data
  • Versjon 1 (Legacy): Eldre format som opprettholdes for kompatibilitet med eksisterende arbeidsflyter

Treningsøkter Versjon 2

Versjon 2 gir en omfattende struktur med valgfrie felt som bare inkluderes når data er tilgjengelig.

Grunnstruktur

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

Obligatoriske Felt

  • id (String): Unik identifikator for treningsøkten
  • name (String): Navn på treningsstype (f.eks. "Running", "Cycling", "Swimming")
  • start (Date): Starttid for treningsøkten i formatet yyyy-MM-dd HH:mm:ss Z
  • end (Date): Sluttid for treningsøkten i formatet yyyy-MM-dd HH:mm:ss Z
  • duration (Number): Varighet av treningsøkten i sekunder

Valgfrie Felt

Følgende felt inkluderes bare når data er tilgjengelig:

Stedinformasjon

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): En av "Indoor", "Outdoor", "Pool", "Open Water"
  • isIndoor (Boolean): Om treningsøkten ble utført innendørs

Energi og Intensitet

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "MET"
  }
}
  • activeEnergyBurned (Object): Aktive kalorier forbrent under treningsøkten
  • totalEnergy (Object): Totale kalorier (aktive + hvile) forbrent
  • intensity (Object): Metabolsk ekvivalent av oppgaven (MET)-verdi

Avstand og Hastighet

{
  "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): Total tilbakelagt avstand
  • speed (Object): Nåværende eller gjennomsnittlig hastighet
  • avgSpeed (Object): Gjennomsnittlig hastighet gjennom hele treningsøkten
  • maxSpeed (Object): Maksimal hastighet oppnådd

Enheter:

  • Avstand: "mi" (miles) eller "km" (kilometer)
  • Hastighet: "mph" (miles per time) eller "kmph" (kilometer per time)

Høyde

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Total høydegevinst
  • elevationDown (Object): Total høydetap

Enheter: "ft" (fot) eller "m" (meter)

Miljødata

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Omgivelsestemperatur under treningsøkten
  • humidity (Object): Relativ luftfuktighet i prosent

Temperaturenheter: "degF" (Fahrenheit) eller "degC" (Celsius)

Svømmespesifikke Felt

{
  "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): Lengde på hver bane
  • strokeStyle (String): En av:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Svømmeeffektivitetsresultat
  • salinity (String): "Fresh Water" eller "Salt Water"
  • totalSwimmingStrokeCount (Object): Totalt antall svømmetak
  • swimCadence (Object): Svømmetak per minutt

Steg- og Kadensedata

{
  "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): Array av stegtellemålinger over tid
  • stepCadence (Object): Steg per minutt
  • flightsClimbed (Object): Antall trapper besteget

Pulsdata

{
  "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): Sammendrag med min, gjennomsnitt og max puls
  • maxHeartRate (Object): Maksimal puls under treningsøkten
  • avgHeartRate (Object): Gjennomsnittlig puls under treningsøkten
  • heartRateData (Array): Detaljerte pulsmålinger gjennom hele treningsøkten
  • heartRateRecovery (Array): Pulsmålinger under gjenoppretningsperioden

Tidsrekke-dataarrays

Mange målinger kan inkluderes som tidsrekke-arrays når "Inkluder Treningsmålinger" er aktivert:

{
  "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-struktur:

  • date (Date): Tidsstempel for målingen
  • qty (Number): Mengdeverdi
  • units (String): Måleenhet
  • source (String, valgfri): Datakildeenhet eller app

HeartRateData-struktur:

  • date (Date): Tidsstempel for målingen
  • Min (Number): Minimal puls
  • Avg (Number): Gjennomsnittlig puls
  • Max (Number): Maksimal puls
  • units (String): Enhet (vanligvis "bpm")
  • source (String, valgfri): Datakildeenhet eller app

Rutedata

Når "Inkluder Rutedata" er aktivert og treningsøkten har 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
    }
  ]
}

Stedsfelt:

  • latitude (Number): GPS-breddegradskoordinat
  • longitude (Number): GPS-lengdegradskoordinat
  • altitude (Number): Høyde i meter
  • course (Number): Reiseretning i grader (0-360)
  • courseAccuracy (Number): Nøyaktighet av kursmåling i grader
  • horizontalAccuracy (Number): Horisontal posisjonsnøyaktighet i meter
  • verticalAccuracy (Number): Vertikal posisjonsnøyaktighet i meter
  • timestamp (Date): Tidspunkt når stedet ble registrert
  • speed (Number): Hastighet i meter per sekund
  • speedAccuracy (Number): Nøyaktighet av hastighetsmåling i m/s

Metadata

{
  "metadata": {
    "customField": "value",
    "anotherField": 123
  }
}
  • metadata (Object): Tilleggsbrukerdefinerte metadata tilknyttet treningsøkten

Treningsøkter Versjon 1 (Legacy)

Versjon 1 bruker en enklere struktur. For nye eksporter anbefales Versjon 2.

Versjon 1 Struktur

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

Tidsgruppering av Treningsmålinger

Ved bruk av Eksportversjon 2 og når "Inkluder Treningsmålinger" er aktivert, kan du styre granulariteten av tidsrekke-data:

  • Minutter: Grupperer treningsmålinger etter minuttintervaller
  • Sekunder: Grupperer treningsmålinger etter sekundintervaller (mer detaljert, større filstørrelse)

Tips

  • Inkluder Rutedata: Aktiver denne innstillingen for å få GPS-ruteinformasjon for utendørstreningsøkter
  • Inkluder Treningsmålinger: Aktiver dette for å få detaljerte tidsrekke-data for målinger som puls, effekt og kadens
  • Eksportversjon: Bruk Versjon 2 for den mest omfattende datastrukturen
  • GPX-eksport: Rutedata kan også eksporteres som separate GPX-filer for bruk i kartapplikasjoner

Relatert Dokumentasjon