Aller au contenu
Exporter en CSV

Comment exporter les données Apple Santé en CSV

L’app Santé n’exporte pas en CSV : elle crée un fichier export.zip avec vos données en XML (Résumé, votre photo, « Exporter toutes les données Santé »). Pour obtenir un CSV, convertissez ce XML avec un script ou utilisez une app de l’App Store qui lit vos données de santé et écrit du CSV. Voici les deux méthodes, avec un script que nous avons testé sur un fichier de 1 million d’enregistrements.

Par l’équipe telo · Relu le

Exporter depuis l’app Santé (officiel, gratuit)

C’est le seul export documenté par Apple. Il regroupe tout ce que l’app Santé enregistre, sans choix de mesure ni de période.

  1. Ouvrez l’app Santé sur votre iPhone.
  2. Touchez Résumé, puis votre photo ou vos initiales en haut à droite.
  3. Faites défiler votre profil jusqu’en bas et touchez « Exporter toutes les données Santé ».
    Profil de l’app Santé affiché jusqu’en bas, avec le bouton bleu pour exporter toutes les données sous la section Confidentialité (interface en anglais)
    Profil de l’app Santé, interface en anglais. Simulateur d’iPhone, iOS 27, 2026-11-14.
  4. Dans l’alerte de confirmation, touchez Exporter. Avec des années de données, la préparation du fichier peut prendre quelques minutes.
    Alerte demandant si vous voulez vraiment exporter vos données de santé, avec les boutons pour annuler et pour exporter (interface en anglais)
    L’alerte de confirmation, interface en anglais. Simulateur d’iPhone, iOS 27, 2026-11-14.
  5. La feuille de partage affiche le fichier « export », une archive ZIP. Enregistrez-le dans l’app Fichiers : c’est le plus simple pour l’ouvrir ensuite sur un ordinateur.
    Feuille de partage avec l’archive ZIP export en haut et les actions pour copier, ajouter des tags et enregistrer dans Fichiers (interface en anglais)
    La feuille de partage, interface en anglais. Les 2 Ko viennent d’un simulateur vide ; un vrai export est bien plus lourd. iOS 27, 2026-11-14.
  6. Sur l’ordinateur, décompressez export.zip. Les enregistrements se trouvent dans apple_health_export/export.xml.

Convertir export.xml en CSV avec Python

export.xml enregistre chaque mesure sous forme de ligne Record, avec type, unité, dates et valeur. Le script ci-dessous lit le fichier en flux, sélectionne un type de données et écrit un CSV avec début, fin, valeur, unité et source. Il ne demande que Python 3, rien à installer.

  1. Enregistrez le code ci-dessous sous le nom to_csv.py à côté du dossier apple_health_export.
  2. Dans le Terminal, depuis ce dossier, lancez : python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
  3. Le CSV apparaît dans le même dossier, au nom du type de données, et la dernière ligne affichée indique combien d’enregistrements ont été écrits. Remplacez HKQuantityTypeIdentifierStepCount par le type voulu, par exemple HKQuantityTypeIdentifierHeartRate pour la fréquence cardiaque.
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")

Ce que notre test a montré

Nous avons créé un export.xml d’exemple au format d’Apple avec 1 million d’enregistrements de pas et de fréquence cardiaque (220 Mo, valeurs fictives, aucune donnée réelle). Sur un Mac Apple Silicon avec Python 3.15, le 2026-11-13 :

Le temps est proche ; la mémoire, non. Une estimation, non testée : dans la même proportion, un vrai export de 1 Go demanderait près de 4 Go de mémoire pour être chargé en entier, de quoi figer un ordinateur portable ordinaire. Le script en flux est resté autour de 16 Mo pendant le test.

Conversion d’un export.xml de 220 Mo avec 1 million d’enregistrements
Lecture du XMLMémoire utiliséeTemps
En flux (le script ci-dessus)16 Mo2,2 s
Chargement du fichier entier (ElementTree.parse)964 Mo1,9 s

Les méthodes côte à côte

Façons d’obtenir un CSV depuis Apple Santé
MéthodePrixCe qu’il fautLimiteSource, date
Export de l’app Santé + scriptGratuitUn ordinateur avec Python 3L’iPhone ne fournit que du XML ; la conversion est à votre chargeAssistance Apple
Health Export CSV (app)2,99 $ US ; Remote 4,99 $ US par mois ou 29,99 $ US par aniPhoneCSV et GPX directement depuis l’iPhone ; Remote synchronise en arrière-planApp Store
Health Auto Export (app)Basic 2,99 $ US (achat unique) ; Premium 1,99 $ US par mois, 6,99 $ US par an ou 24,99 $ US à vieiPhoneLa formule Free n’exporte pas ; Basic exporte à la main (CSV et JSON) ; export automatique seulement avec PremiumApp Store
teloPro 49 $ US par an ; avec Free, l’assistant ne voit que les 7 derniers joursiPhone avec l’app teloCSV des valeurs quotidiennes, du sommeil et des entraînements depuis votre compte sur le web, une fois par jour, même avec Free ; totaux par jour, pas chaque mesure. Transmet aussi l’historique à Claude, ChatGPT et d’autres assistants (en entier seulement avec Pro) et, avec Pro, par une API JSONApp Store

Quand vous n’avez pas besoin de CSV

Si le but est de poser une question sur vos données (« ma fréquence cardiaque au repos a-t-elle baissé cette année ? »), exporter et convertir à chaque fois devient une corvée. telo lit les données de l’app Santé via l’app iPhone et permet à Claude, ChatGPT et d’autres assistants d’interroger l’historique directement, sans fichier. Les développeurs peuvent lire les mêmes données via l’API REST personnelle, en JSON, jusqu’à 500 lignes par appel. Si vous voulez seulement des tableaux, telo vous rend aussi sa copie en CSV : une ligne par jour et par mesure, par nuit et par entraînement, dans votre fuseau (Compte > Vos données, sur le 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

Questions pratiques

L’app Santé peut-elle exporter directement en CSV ?

Non. L’export de l’app Santé crée un export.zip avec les données en XML. Pour un CSV, convertissez export.xml avec un script ou utilisez une app de l’App Store qui écrit du CSV.

Peut-on exporter une seule mesure ou une seule période ?

Pas avec l’export officiel, qui prend tout d’un coup. Le script de ce guide sélectionne un type de données ; les apps du tableau permettent de choisir la mesure et la période sur l’iPhone.

Pourquoi export.xml est-il si lourd ?

Chaque mesure occupe une ligne, et la montre mesure la fréquence cardiaque de nombreuses fois par jour. Quelques années d’utilisation atteignent facilement des centaines de mégaoctets.

Où se trouve le fichier exporté ?

Là où vous l’avez envoyé depuis la feuille de partage. Enregistré dans l’app Fichiers, export.zip est dans le dossier choisi, sur l’iPhone ou dans iCloud Drive. Envoyé par AirDrop à un Mac, il arrive dans le dossier Téléchargements.

Peut-on exporter seulement les entraînements ou seulement le sommeil ?

Pas avec l’export officiel. Après l’export, changez le type dans le script : HKCategoryTypeIdentifierSleepAnalysis pour le sommeil. Les entraînements sont des lignes Workout, pas Record, et demandent un autre script ; les apps du tableau exportent entraînements et sommeil séparément sur l’iPhone.

Comment ouvrir export.xml dans Excel ?

N’ouvrez pas le XML directement. Convertissez-le en CSV, un fichier par type de données, et vérifiez que le CSV compte moins de 1 048 576 lignes, le maximum d’une feuille Excel.

telo exporte-t-il en CSV ?

Oui, depuis novembre 2026. Dans votre compte telo sur le web, Vos données > Tout télécharger (CSV) fournit un zip avec les valeurs quotidiennes, le sommeil, les entraînements et quelle IA a lu quoi, avec les heures dans votre fuseau. Il contient ce que l’iPhone a envoyé à telo, totalisé par jour, et non chaque mesure de l’app Santé ; pour les mesures brutes, utilisez l’export de l’app Santé. Une fois par jour, même avec Free.

Sources et disponibilité

Les formules, les régions et les écrans peuvent changer. Vérifiez les sources officielles avant de configurer.

Comment ce guide a été préparé

Le 2026-11-14, nous avons vérifié les étapes d’export sur la page d’assistance d’Apple, les prix et formules sur les pages de l’App Store, ainsi que la limite de lignes dans la documentation de Microsoft. Les captures viennent de l’app Santé dans le simulateur d’iPhone (iOS 27, interface en anglais, sans données ni compte iCloud) le 2026-11-14, d’où l’avertissement de sauvegarde sur le profil. Le script a été mesuré lors d’une session interne le 2026-11-13 sur un export.xml d’exemple au format d’Apple avec 1 million d’enregistrements fictifs, sur un Mac Apple Silicon avec Python 3.15 ; le chiffre de 1 Go est une estimation dans la même proportion. Aucune donnée de santé réelle n’a été utilisée.