Saltar al contenido
Exportar a CSV

Cómo exportar los datos de Apple Health a CSV

La app Salud no exporta CSV: crea un archivo export.zip con tus datos en XML (Resumen, tu foto, “Exportar todos los datos de salud”). Para tener un CSV, convierte ese XML con un script o usa una app del App Store que lea tus datos de salud y escriba CSV. Abajo tienes los dos caminos, con un script que probamos con un archivo de 1 millón de registros.

Por el equipo de telo · Revisado el

Exportar desde la app Salud (oficial, gratis)

Es la única exportación que Apple documenta. Reúne todo lo que guarda la app Salud, sin elegir métrica ni periodo.

  1. Abre la app Salud en el iPhone.
  2. Toca Resumen y después tu foto o tus iniciales, en la esquina superior derecha.
  3. Desplázate hasta el final de tu perfil y toca “Exportar todos los datos de salud”.
    Perfil de la app Salud desplazado hasta el final, con el botón azul para exportar todos los datos debajo de la sección Privacidad (interfaz en inglés)
    Perfil de la app Salud, interfaz en inglés. Simulador de iPhone, iOS 27, 2026-11-14.
  4. En el aviso de confirmación, toca Exportar. Con años de datos, preparar el archivo puede tardar unos minutos.
    Aviso que pregunta si de verdad quieres exportar tus datos de salud, con los botones para cancelar y para exportar (interfaz en inglés)
    El aviso de confirmación, interfaz en inglés. Simulador de iPhone, iOS 27, 2026-11-14.
  5. La hoja de compartir muestra el archivo “export”, un archivo ZIP. Guárdalo en la app Archivos, la forma más sencilla de abrirlo después en el ordenador.
    Hoja de compartir con el archivo ZIP export arriba y las acciones para copiar, añadir etiquetas y guardar en Archivos (interfaz en inglés)
    La hoja de compartir, interfaz en inglés. Los 2 KB son de un simulador vacío; una exportación real pesa mucho más. iOS 27, 2026-11-14.
  6. En el ordenador, descomprime export.zip. Los registros están en apple_health_export/export.xml.

Convertir export.xml a CSV con Python

export.xml guarda cada medición como una línea Record, con tipo, unidad, fechas y valor. El script de abajo lee el archivo en flujo, elige un tipo de dato y escribe un CSV con inicio, fin, valor, unidad y origen. Solo necesita Python 3, sin instalar nada.

  1. Guarda el código de abajo como to_csv.py junto a la carpeta apple_health_export.
  2. En Terminal, dentro de esa carpeta, ejecuta: python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
  3. El CSV aparece en la misma carpeta, con el nombre del tipo de dato, y la última línea que se imprime dice cuántos registros se escribieron. Cambia HKQuantityTypeIdentifierStepCount por el tipo que quieras, por ejemplo HKQuantityTypeIdentifierHeartRate para la frecuencia cardiaca.
python
import csv, sys
import xml.etree.ElementTree as ET

src, want = sys.argv[1], sys.argv[2]  # export.xml HKQuantityTypeIdentifierStepCount
rows = 0
with open(want + ".csv", "w", newline="", encoding="utf-8-sig") as out:
    w = csv.writer(out)
    w.writerow(["startDate", "endDate", "value", "unit", "sourceName"])
    events = ET.iterparse(src, events=("start", "end"))
    _, root = next(events)
    for event, el in events:
        if event == "end" and el.tag == "Record":
            if el.get("type") == want:
                w.writerow([el.get("startDate"), el.get("endDate"), el.get("value"), el.get("unit"), el.get("sourceName")])
                rows += 1
            root.clear()
print(rows, "rows in", want + ".csv")

Lo que mostró nuestra prueba

Creamos un export.xml de ejemplo con el formato de Apple y 1 millón de registros de pasos y frecuencia cardiaca (220 MB, valores ilustrativos, no son datos de nadie). En un Mac con Apple Silicon y Python 3.15, el 2026-11-13:

El tiempo es parecido; la memoria, no. Una estimación, sin probar: en la misma proporción, una exportación real de 1 GB necesitaría cerca de 4 GB de memoria para cargarse entera, suficiente para colgar un portátil normal. El script en flujo se quedó cerca de 16 MB en la prueba.

Conversión de un export.xml de 220 MB con 1 millón de registros
Cómo se lee el XMLMemoria usadaTiempo
En flujo (el script de arriba)16 MB2,2 s
Cargando el archivo entero (ElementTree.parse)964 MB1,9 s

Los caminos, uno al lado del otro

Formas de sacar CSV de Apple Health
CaminoPrecioQué necesitasLímiteFuente, fecha
Exportación de la app Salud + scriptGratisUn ordenador con Python 3El iPhone solo entrega XML; la conversión corre de tu cuentaSoporte de Apple
Health Export CSV (app)2,99 US$; Remote 4,99 US$ al mes o 29,99 US$ al añoiPhoneCSV y GPX directamente desde el iPhone; Remote sincroniza en segundo planoApp Store
Health Auto Export (app)Basic 2,99 US$ (pago único); Premium 1,99 US$ al mes, 6,99 US$ al año o 24,99 US$ de por vidaiPhoneEl plan Free no exporta; Basic exporta a mano (CSV y JSON); la exportación automática solo en PremiumApp Store
teloPro 49 US$ al año; en Free el asistente solo ve los últimos 7 díasiPhone con la app teloCSV de valores diarios, sueño y entrenamientos desde tu cuenta en la web, una vez al día, también en Free; totales por día, no cada muestra. También entrega el historial a Claude, ChatGPT y otros asistentes (completo solo en Pro) y, en Pro, por una API en JSONApp Store

Cuando no necesitas CSV

Si lo que quieres es preguntar algo sobre tus datos (“¿bajó mi frecuencia cardiaca en reposo este año?”), exportar y convertir cada vez es un fastidio. telo lee los datos de la app Salud con la app del iPhone y deja que Claude, ChatGPT y otros asistentes consulten el historial directamente, sin archivos. Si programas, puedes leer los mismos datos con la API REST personal, en JSON, hasta 500 filas por llamada. Si solo quieres hojas de cálculo, telo también te devuelve su copia en CSV: una fila por día y métrica, por noche y por entrenamiento, en tu zona horaria (Cuenta > Tus datos, en la web).

bash
curl 'https://telo.health/api/v1/query_daily?metrics=steps&from=2026-11-01&to=2026-11-08&granularity=day' \
  -H "Authorization: Bearer $TELO_API_KEY"
FAQ

Preguntas prácticas

¿Apple Health exporta CSV directamente?

No. La exportación de la app Salud crea un export.zip con los datos en XML. Para CSV, convierte export.xml con un script o usa una app del App Store que escriba CSV.

¿Puedo exportar solo una métrica o un periodo?

No con la exportación oficial, que se lleva todo de una vez. El script de esta guía elige un tipo de dato; las apps de la tabla permiten elegir métrica y periodo en el iPhone.

¿Por qué export.xml es tan grande?

Cada medición es una línea, y el reloj mide la frecuencia cardiaca muchas veces al día. Unos años de uso llegan fácilmente a cientos de megabytes.

¿Dónde queda el archivo exportado?

Donde lo hayas mandado desde la hoja de compartir. Si lo guardaste en la app Archivos, export.zip está en la carpeta que elegiste, en el iPhone o en iCloud Drive. Si lo enviaste por AirDrop a un Mac, va a la carpeta Descargas.

¿Puedo exportar solo los entrenamientos o solo el sueño?

No con la exportación oficial. Después de exportar, cambia el tipo en el script: HKCategoryTypeIdentifierSleepAnalysis para el sueño. Los entrenamientos son líneas Workout, no Record, y necesitan otro script; las apps de la tabla exportan entrenamientos y sueño por separado en el iPhone.

¿Cómo abro export.xml en Excel?

No abras el XML directamente. Conviértelo a CSV, un archivo por tipo de dato, y comprueba que el CSV tenga menos de 1.048.576 filas, el máximo de una hoja de Excel.

¿telo exporta CSV?

Sí, desde noviembre de 2026. En tu cuenta de telo en la web, Tus datos > Descargar todo (CSV) entrega un zip con valores diarios, sueño, entrenamientos y qué IA leyó qué, con las horas en tu zona horaria. Contiene lo que el iPhone envió a telo, sumado por día, no cada muestra de la app Salud; para las muestras en bruto, usa la exportación de la app Salud. Una vez al día, también en Free.

Fuentes y disponibilidad

Los planes, las regiones y las pantallas pueden cambiar. Consulta las fuentes oficiales antes de configurar.

Cómo se preparó esta guía

El 2026-11-14 comprobamos los pasos de la exportación en la página de soporte de Apple, los precios y planes en las páginas del App Store y el límite de filas en la documentación de Microsoft. Las capturas son de la app Salud en el simulador de iPhone (iOS 27, interfaz en inglés, sin datos y sin cuenta de iCloud) del 2026-11-14; por eso el perfil muestra un aviso de copia de seguridad. El script se midió en una sesión nuestra el 2026-11-13, con un export.xml de ejemplo en el formato de Apple y 1 millón de registros ilustrativos, en un Mac con Apple Silicon y Python 3.15; la cifra de 1 GB es una estimación en la misma proporción. No usamos datos de salud de nadie.