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.
- Ouvrez l’app Santé sur votre iPhone.
- Touchez Résumé, puis votre photo ou vos initiales en haut à droite.
- Faites défiler votre profil jusqu’en bas et touchez « Exporter toutes les données Santé ».

Profil de l’app Santé, interface en anglais. Simulateur d’iPhone, iOS 27, 2026-11-14. - Dans l’alerte de confirmation, touchez Exporter. Avec des années de données, la préparation du fichier peut prendre quelques minutes.

L’alerte de confirmation, interface en anglais. Simulateur d’iPhone, iOS 27, 2026-11-14. - 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.

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. - 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.
- Enregistrez le code ci-dessous sous le nom to_csv.py à côté du dossier apple_health_export.
- Dans le Terminal, depuis ce dossier, lancez : python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
- 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.
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.
| Lecture du XML | Mémoire utilisée | Temps |
|---|---|---|
| En flux (le script ci-dessus) | 16 Mo | 2,2 s |
| Chargement du fichier entier (ElementTree.parse) | 964 Mo | 1,9 s |
Les méthodes côte à côte
| Méthode | Prix | Ce qu’il faut | Limite | Source, date |
|---|---|---|---|---|
| Export de l’app Santé + script | Gratuit | Un ordinateur avec Python 3 | L’iPhone ne fournit que du XML ; la conversion est à votre charge | Assistance Apple |
| Health Export CSV (app) | 2,99 $ US ; Remote 4,99 $ US par mois ou 29,99 $ US par an | iPhone | CSV et GPX directement depuis l’iPhone ; Remote synchronise en arrière-plan | App 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 à vie | iPhone | La formule Free n’exporte pas ; Basic exporte à la main (CSV et JSON) ; export automatique seulement avec Premium | App Store |
| telo | Pro 49 $ US par an ; avec Free, l’assistant ne voit que les 7 derniers jours | iPhone avec l’app telo | CSV 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 JSON | App 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).
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"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.
- Assistance Apple : Partager des données dans Santé sur l’iPhone, vérifié le 2026-11-14
- Microsoft : Spécifications et limites d’Excel, vérifié le 2026-11-14
- Microsoft : que faire si un jeu de données est trop volumineux pour la grille Excel, vérifié le 2026-11-14
- Python : xml.etree.ElementTree.iterparse, vérifié le 2026-11-14
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.