Entrenamientos - Formato de Exportación JSON

Documentación sobre la estructura de entrenamientos en exportaciones JSON

Last updated: February 6, 2026

On this page

Entrenamientos

Los datos de entrenamiento incluyen todas tus sesiones de ejercicio registradas en Apple Health, como correr, ciclismo, natación, entrenamiento de fuerza y más. En las exportaciones JSON, los entrenamientos se almacenan en el array workouts.

Versiones de Exportación

Health Auto Export admite dos versiones de exportación de entrenamientos:

  • Versión 2 (Recomendada): Formato mejorado con metadatos más detallados y datos estructurados
  • Versión 1 (Legacy): Formato antiguo mantenido para compatibilidad con flujos de trabajo existentes

Entrenamientos Versión 2

La Versión 2 proporciona una estructura completa con campos opcionales que solo se incluyen cuando hay datos disponibles.

Estructura Básica

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

Campos Requeridos

  • id (String): Identificador único del entrenamiento
  • name (String): Nombre del tipo de entrenamiento (ej: "Running", "Cycling", "Swimming")
  • start (Date): Hora de inicio del entrenamiento en formato yyyy-MM-dd HH:mm:ss Z
  • end (Date): Hora de finalización del entrenamiento en formato yyyy-MM-dd HH:mm:ss Z
  • duration (Number): Duración del entrenamiento en segundos

Campos Opcionales

Los siguientes campos solo se incluyen cuando hay datos disponibles:

Información de Ubicación

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): Uno de "Indoor", "Outdoor", "Pool", "Open Water"
  • isIndoor (Boolean): Si el entrenamiento se realizó en interiores

Energía e Intensidad

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "MET"
  }
}
  • activeEnergyBurned (Object): Calorías activas quemadas durante el entrenamiento
  • totalEnergy (Object): Calorías totales (activas + en reposo) quemadas
  • intensity (Object): Valor del equivalente metabólico de la tarea (MET)

Distancia y Velocidad

{
  "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): Distancia total recorrida
  • speed (Object): Velocidad actual o promedio
  • avgSpeed (Object): Velocidad promedio durante todo el entrenamiento
  • maxSpeed (Object): Velocidad máxima alcanzada

Unidades:

  • Distancia: "mi" (millas) o "km" (kilómetros)
  • Velocidad: "mph" (millas por hora) o "kmph" (kilómetros por hora)

Elevación

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Elevación total ganada
  • elevationDown (Object): Elevación total perdida

Unidades: "ft" (pies) o "m" (metros)

Datos Ambientales

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Temperatura ambiente durante el entrenamiento
  • humidity (Object): Porcentaje de humedad relativa

Unidades de Temperatura: "degF" (Fahrenheit) o "degC" (Celsius)

Campos Específicos de Natación

{
  "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): Longitud de cada vuelta
  • strokeStyle (String): Uno de:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Puntuación de eficiencia de natación
  • salinity (String): "Fresh Water" o "Salt Water"
  • totalSwimmingStrokeCount (Object): Número total de brazadas
  • swimCadence (Object): Brazadas por minuto

Datos de Pasos y Cadencia

{
  "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 de mediciones de conteo de pasos a lo largo del tiempo
  • stepCadence (Object): Pasos por minuto
  • flightsClimbed (Object): Número de tramos de escaleras subidos

Datos de Frecuencia Cardíaca

{
  "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): Resumen con frecuencia cardíaca mínima, promedio y máxima
  • maxHeartRate (Object): Frecuencia cardíaca máxima durante el entrenamiento
  • avgHeartRate (Object): Frecuencia cardíaca promedio durante el entrenamiento
  • heartRateData (Array): Mediciones detalladas de frecuencia cardíaca durante todo el entrenamiento
  • heartRateRecovery (Array): Mediciones de frecuencia cardíaca durante el período de recuperación

Arrays de Datos de Series Temporales

Muchas métricas pueden incluirse como arrays de series temporales cuando "Incluir Métricas de Entrenamiento" está habilitado:

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

Estructura QuantityData:

  • date (Date): Marca de tiempo de la medición
  • qty (Number): Valor de la cantidad
  • units (String): Unidad de medida
  • source (String, opcional): Dispositivo o aplicación fuente de datos

Estructura HeartRateData:

  • date (Date): Marca de tiempo de la medición
  • Min (Number): Frecuencia cardíaca mínima
  • Avg (Number): Frecuencia cardíaca promedio
  • Max (Number): Frecuencia cardíaca máxima
  • units (String): Unidad (típicamente "bpm")
  • source (String, opcional): Dispositivo o aplicación fuente de datos

Datos de Ruta

Cuando "Incluir Datos de Ruta" está habilitado y el entrenamiento tiene datos 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
    }
  ]
}

Campos de Ubicación:

  • latitude (Number): Coordenada de latitud GPS
  • longitude (Number): Coordenada de longitud GPS
  • altitude (Number): Elevación en metros
  • course (Number): Dirección de viaje en grados (0-360)
  • courseAccuracy (Number): Precisión de la medición de curso en grados
  • horizontalAccuracy (Number): Precisión de posición horizontal en metros
  • verticalAccuracy (Number): Precisión de posición vertical en metros
  • timestamp (Date): Hora en que se registró la ubicación
  • speed (Number): Velocidad en metros por segundo
  • speedAccuracy (Number): Precisión de la medición de velocidad en m/s

Metadatos

{
  "metadata": {
    "customField": "value",
    "anotherField": 123
  }
}
  • metadata (Object): Metadatos personalizados adicionales asociados con el entrenamiento

Entrenamientos Versión 1 (Legacy)

La Versión 1 usa una estructura más simple. Para nuevas exportaciones, se recomienda la Versión 2.

Estructura Versión 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"
    }
  ]
}

Agrupación Temporal de Métricas de Entrenamiento

Cuando se usa la Versión 2 de Exportación y "Incluir Métricas de Entrenamiento" está habilitado, puedes controlar la granularidad de los datos de series temporales:

  • Minutos: Agrupa las métricas de entrenamiento por intervalos de minuto
  • Segundos: Agrupa las métricas de entrenamiento por intervalos de segundo (más detallado, archivo más grande)

Consejos

  • Incluir Datos de Ruta: Habilita esta opción para obtener información de ruta GPS para entrenamientos al aire libre
  • Incluir Métricas de Entrenamiento: Habilita esto para obtener datos detallados de series temporales para métricas como frecuencia cardíaca, potencia y cadencia
  • Versión de Exportación: Usa la Versión 2 para la estructura de datos más completa
  • Exportación GPX: Los datos de ruta también se pueden exportar como archivos GPX separados para usar en aplicaciones de mapas

Documentación Relacionada