Allenamenti - Formato di Esportazione JSON

Documentazione sulla struttura degli allenamenti nelle esportazioni JSON

Last updated: February 6, 2026

On this page

Allenamenti

I dati degli allenamenti includono tutte le tue sessioni di esercizio registrate in Apple Health, come corsa, ciclismo, nuoto, allenamento della forza e altro ancora. Nelle esportazioni JSON, gli allenamenti sono memorizzati nell'array workouts.

Versioni di Esportazione

Health Auto Export supporta due versioni di esportazione degli allenamenti:

  • Versione 2 (Consigliata): Formato migliorato con metadati più dettagliati e dati strutturati
  • Versione 1 (Legacy): Formato più vecchio mantenuto per la compatibilità con i flussi di lavoro esistenti

Allenamenti Versione 2

La Versione 2 fornisce una struttura completa con campi opzionali che vengono inclusi solo quando i dati sono disponibili.

Struttura di Base

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

Campi Richiesti

  • id (String): Identificatore univoco dell'allenamento
  • name (String): Nome del tipo di allenamento (es: "Running", "Cycling", "Swimming")
  • start (Date): Ora di inizio dell'allenamento nel formato yyyy-MM-dd HH:mm:ss Z
  • end (Date): Ora di fine dell'allenamento nel formato yyyy-MM-dd HH:mm:ss Z
  • duration (Number): Durata dell'allenamento in secondi

Campi Opzionali

I seguenti campi vengono inclusi solo quando i dati sono disponibili:

Informazioni sulla Posizione

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): Uno tra "Indoor", "Outdoor", "Pool", "Open Water"
  • isIndoor (Boolean): Se l'allenamento è stato eseguito al chiuso

Energia e Intensità

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "MET"
  }
}
  • activeEnergyBurned (Object): Calorie attive bruciate durante l'allenamento
  • totalEnergy (Object): Calorie totali (attive + a riposo) bruciate
  • intensity (Object): Valore dell'equivalente metabolico del compito (MET)

Distanza e Velocità

{
  "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): Distanza totale percorsa
  • speed (Object): Velocità attuale o media
  • avgSpeed (Object): Velocità media durante tutto l'allenamento
  • maxSpeed (Object): Velocità massima raggiunta

Unità:

  • Distanza: "mi" (miglia) o "km" (chilometri)
  • Velocità: "mph" (miglia all'ora) o "kmph" (chilometri all'ora)

Elevazione

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Elevazione totale guadagnata
  • elevationDown (Object): Elevazione totale persa

Unità: "ft" (piedi) o "m" (metri)

Dati Ambientali

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Temperatura ambiente durante l'allenamento
  • humidity (Object): Percentuale di umidità relativa

Unità di Temperatura: "degF" (Fahrenheit) o "degC" (Celsius)

Campi Specifici per il Nuoto

{
  "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): Lunghezza di ogni vasca
  • strokeStyle (String): Uno tra:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Punteggio di efficienza del nuoto
  • salinity (String): "Fresh Water" o "Salt Water"
  • totalSwimmingStrokeCount (Object): Numero totale di bracciate
  • swimCadence (Object): Bracciate per minuto

Dati di Passi e Cadenza

{
  "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 di misurazioni del conteggio dei passi nel tempo
  • stepCadence (Object): Passi per minuto
  • flightsClimbed (Object): Numero di rampe di scale salite

Dati della Frequenza Cardiaca

{
  "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): Riepilogo con frequenza cardiaca min, media e max
  • maxHeartRate (Object): Frequenza cardiaca massima durante l'allenamento
  • avgHeartRate (Object): Frequenza cardiaca media durante l'allenamento
  • heartRateData (Array): Misurazioni dettagliate della frequenza cardiaca durante tutto l'allenamento
  • heartRateRecovery (Array): Misurazioni della frequenza cardiaca durante il periodo di recupero

Array di Dati di Serie Temporali

Molte metriche possono essere incluse come array di serie temporali quando "Includi Metriche Allenamento" è abilitato:

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

Struttura QuantityData:

  • date (Date): Timestamp della misurazione
  • qty (Number): Valore della quantità
  • units (String): Unità di misura
  • source (String, opzionale): Dispositivo o app sorgente dei dati

Struttura HeartRateData:

  • date (Date): Timestamp della misurazione
  • Min (Number): Frequenza cardiaca minima
  • Avg (Number): Frequenza cardiaca media
  • Max (Number): Frequenza cardiaca massima
  • units (String): Unità (tipicamente "bpm")
  • source (String, opzionale): Dispositivo o app sorgente dei dati

Dati del Percorso

Quando "Includi Dati Percorso" è abilitato e l'allenamento ha dati 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
    }
  ]
}

Campi di Posizione:

  • latitude (Number): Coordinata di latitudine GPS
  • longitude (Number): Coordinata di longitudine GPS
  • altitude (Number): Elevazione in metri
  • course (Number): Direzione di viaggio in gradi (0-360)
  • courseAccuracy (Number): Precisione della misurazione del corso in gradi
  • horizontalAccuracy (Number): Precisione della posizione orizzontale in metri
  • verticalAccuracy (Number): Precisione della posizione verticale in metri
  • timestamp (Date): Ora in cui la posizione è stata registrata
  • speed (Number): Velocità in metri al secondo
  • speedAccuracy (Number): Precisione della misurazione della velocità in m/s

Metadati

{
  "metadata": {
    "customField": "value",
    "anotherField": 123
  }
}
  • metadata (Object): Metadati personalizzati aggiuntivi associati all'allenamento

Allenamenti Versione 1 (Legacy)

La Versione 1 utilizza una struttura più semplice. Per le nuove esportazioni, si consiglia la Versione 2.

Struttura Versione 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"
    }
  ]
}

Raggruppamento Temporale delle Metriche di Allenamento

Quando si utilizza la Versione 2 di Esportazione e "Includi Metriche Allenamento" è abilitato, puoi controllare la granularità dei dati di serie temporali:

  • Minuti: Raggruppa le metriche di allenamento per intervalli di minuto
  • Secondi: Raggruppa le metriche di allenamento per intervalli di secondo (più dettagliato, file più grande)

Suggerimenti

  • Includi Dati Percorso: Abilita questa opzione per ottenere informazioni sul percorso GPS per gli allenamenti all'aperto
  • Includi Metriche Allenamento: Abilita questo per ottenere dati dettagliati di serie temporali per metriche come frequenza cardiaca, potenza e cadenza
  • Versione di Esportazione: Usa la Versione 2 per la struttura dati più completa
  • Esportazione GPX: I dati del percorso possono anche essere esportati come file GPX separati per l'uso in applicazioni di mappatura

Documentazione Correlata