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'allenamentoname(String): Nome del tipo di allenamento (es: "Running", "Cycling", "Swimming")start(Date): Ora di inizio dell'allenamento nel formatoyyyy-MM-dd HH:mm:ss Zend(Date): Ora di fine dell'allenamento nel formatoyyyy-MM-dd HH:mm:ss Zduration(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'allenamentototalEnergy(Object): Calorie totali (attive + a riposo) bruciateintensity(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 percorsaspeed(Object): Velocità attuale o mediaavgSpeed(Object): Velocità media durante tutto l'allenamentomaxSpeed(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 guadagnataelevationDown(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'allenamentohumidity(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 vascastrokeStyle(String): Uno tra:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): Punteggio di efficienza del nuotosalinity(String):"Fresh Water"o"Salt Water"totalSwimmingStrokeCount(Object): Numero totale di bracciateswimCadence(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 tempostepCadence(Object): Passi per minutoflightsClimbed(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 maxmaxHeartRate(Object): Frequenza cardiaca massima durante l'allenamentoavgHeartRate(Object): Frequenza cardiaca media durante l'allenamentoheartRateData(Array): Misurazioni dettagliate della frequenza cardiaca durante tutto l'allenamentoheartRateRecovery(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 misurazioneqty(Number): Valore della quantitàunits(String): Unità di misurasource(String, opzionale): Dispositivo o app sorgente dei dati
Struttura HeartRateData:
date(Date): Timestamp della misurazioneMin(Number): Frequenza cardiaca minimaAvg(Number): Frequenza cardiaca mediaMax(Number): Frequenza cardiaca massimaunits(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 GPSlongitude(Number): Coordinata di longitudine GPSaltitude(Number): Elevazione in metricourse(Number): Direzione di viaggio in gradi (0-360)courseAccuracy(Number): Precisione della misurazione del corso in gradihorizontalAccuracy(Number): Precisione della posizione orizzontale in metriverticalAccuracy(Number): Precisione della posizione verticale in metritimestamp(Date): Ora in cui la posizione è stata registrataspeed(Number): Velocità in metri al secondospeedAccuracy(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