Exporteren vanuit de Gezondheid-app (officieel, gratis)
Dit is de enige export die Apple documenteert. Hij bundelt alles wat de Gezondheid-app bewaart, zonder keuze van meting of periode.
- Open de Gezondheid-app op je iPhone.
- Tik op “Overzicht” en daarna rechtsboven op je foto of initialen.
- Scrol naar de onderkant van je profiel en tik op “Exporteer alle gezondheidsgegevens”.

Profiel van de Gezondheid-app, Engelse interface. iPhone-simulator, iOS 27, 2026-11-14. - Tik in de bevestigingsmelding op “Exporteer”. Met jaren aan gegevens kan het klaarmaken van het bestand een paar minuten duren.

De bevestigingsmelding, Engelse interface. iPhone-simulator, iOS 27, 2026-11-14. - Het deelmenu toont het bestand “export”, een zip-archief. Bewaar het in de Bestanden-app, de makkelijkste manier om het later op de computer te openen.

Het deelmenu, Engelse interface. De 2 kB komt van een lege simulator; een echte export is veel groter. iOS 27, 2026-11-14. - Pak export.zip uit op de computer. De records staan in apple_health_export/export.xml.
export.xml met Python omzetten naar CSV
export.xml bewaart elke meting als een Record-regel met type, eenheid, datums en waarde. Het script hieronder leest het bestand als stream, kiest één gegevenstype en schrijft een CSV met begin, einde, waarde, eenheid en bron. Je hebt alleen Python 3 nodig, er hoeft niets geïnstalleerd te worden.
- Bewaar de code hieronder als to_csv.py naast de map apple_health_export.
- Voer in Terminal, in die map, uit: python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
- De CSV komt in dezelfde map, met de naam van het gegevenstype, en de laatste geprinte regel zegt hoeveel records er zijn geschreven. Vervang HKQuantityTypeIdentifierStepCount door het type dat je wilt, bijvoorbeeld HKQuantityTypeIdentifierHeartRate voor hartslag.
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")
Wat onze test liet zien
We maakten een voorbeeld-export.xml in het formaat van Apple met 1 miljoen records van stappen en hartslag (220 MB, illustratieve waarden, niemands gegevens). Op een Mac met Apple silicon en Python 3.15, op 2026-11-13:
De tijd is vergelijkbaar, het geheugen niet. Een schatting, niet getest: in dezelfde verhouding zou een echte export van 1 GB bijna 4 GB geheugen nodig hebben om helemaal te laden, genoeg om een gewone laptop te laten vastlopen. Het streamingscript bleef in de test rond 16 MB.
| Hoe de XML wordt gelezen | Gebruikt geheugen | Tijd |
|---|---|---|
| Als stream (het script hierboven) | 16 MB | 2,2 s |
| Het hele bestand laden (ElementTree.parse) | 964 MB | 1,9 s |
De routes naast elkaar
| Route | Prijs | Wat je nodig hebt | Beperking | Bron, datum |
|---|---|---|---|---|
| Export uit de Gezondheid-app + script | Gratis | Een computer met Python 3 | De iPhone levert alleen XML; omzetten doe je zelf | Apple Support |
| Health Export CSV (app) | US$ 2,99; Remote US$ 4,99 per maand of US$ 29,99 per jaar | iPhone | CSV en GPX rechtstreeks vanaf de iPhone; Remote synchroniseert op de achtergrond | App Store |
| Health Auto Export (app) | Basic US$ 2,99 (eenmalig); Premium US$ 1,99 per maand, US$ 6,99 per jaar of US$ 24,99 levenslang | iPhone | Het Free-abonnement exporteert niet; Basic exporteert met de hand (CSV en JSON); automatische export alleen met Premium | App Store |
| telo | Pro US$ 49 per jaar; met Free ziet de assistent alleen de laatste 7 dagen | iPhone met de telo-app | CSV met dagwaarden, slaap en trainingen via je account op het web, één keer per dag, ook met Free; totalen per dag, niet elke meting. Geeft de geschiedenis ook aan Claude, ChatGPT en andere assistenten (volledig alleen met Pro) en, met Pro, via een JSON-API | App Store |
Als je geen CSV nodig hebt
Als je iets over je gegevens wilt vragen (“is mijn hartslag in rust dit jaar gedaald?”), is elke keer exporteren en omzetten een klus. telo leest de gegevens van de Gezondheid-app via de iPhone-app en laat Claude, ChatGPT en andere assistenten de geschiedenis direct opvragen, zonder bestand. Als je programmeert, lees je dezelfde gegevens via de persoonlijke REST-API, in JSON, tot 500 rijen per verzoek. Wil je alleen spreadsheets, dan geeft telo zijn kopie ook terug als CSV: één rij per dag en meetwaarde, per nacht en per training, in je tijdzone (Account > Je gegevens, op het 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"Praktische vragen
Kan Apple Health direct naar CSV exporteren?
Nee. De export van de Gezondheid-app maakt een export.zip met de gegevens in XML. Voor CSV zet je export.xml om met een script of gebruik je een app uit de App Store die CSV schrijft.
Kan ik maar één meting of één periode exporteren?
Niet met de officiële export, die alles in één keer meeneemt. Het script in deze gids kiest één gegevenstype; met de apps uit de tabel kies je meting en periode op de iPhone.
Waarom is export.xml zo groot?
Elke meting is één regel, en het horloge meet je hartslag vele keren per dag. Een paar jaar gebruik loopt makkelijk op tot honderden megabytes.
Waar komt het geëxporteerde bestand terecht?
Waar je het vanuit het deelmenu naartoe hebt gestuurd. Bewaard in de Bestanden-app staat export.zip in de map die je koos, op de iPhone of in iCloud Drive. Via AirDrop naar een Mac komt het in de map Downloads.
Kan ik alleen workouts of alleen slaap exporteren?
Niet met de officiële export. Verander na het exporteren het type in het script: HKCategoryTypeIdentifierSleepAnalysis voor slaap. Workouts zijn Workout-regels, geen Record, en hebben een ander script nodig; de apps uit de tabel exporteren workouts en slaap apart op de iPhone.
Hoe open ik export.xml in Excel?
Open de XML niet rechtstreeks. Zet hem om naar CSV, één bestand per gegevenstype, en controleer of de CSV minder dan 1.048.576 rijen heeft, het maximum van een Excel-werkblad.
Exporteert telo naar CSV?
Ja, sinds november 2026. In je telo-account op het web geeft Je gegevens > Alles downloaden (CSV) een zip met dagwaarden, slaap, trainingen en welke AI wat heeft gelezen, met tijden in je tijdzone. Het bevat wat de iPhone naar telo stuurde, per dag opgeteld, niet elke meting uit de Gezondheid-app; voor de ruwe metingen gebruik je de export van de Gezondheid-app. Eén keer per dag, ook met Free.
Bronnen en beschikbaarheid
Abonnementen, regio’s en schermen kunnen veranderen. Controleer de officiële bronnen voordat je iets instelt.
- Apple Support: Je gegevens delen in Gezondheid op de iPhone, gecontroleerd op 2026-11-14
- Microsoft: specificaties en beperkingen van Excel, gecontroleerd op 2026-11-14
- Microsoft: wat te doen als een gegevensset te groot is voor het Excel-raster, gecontroleerd op 2026-11-14
- Python: xml.etree.ElementTree.iterparse (Engelstalig), gecontroleerd op 2026-11-14
Zo is deze gids opgesteld
Op 2026-11-14 controleerden we de exportstappen op de supportpagina van Apple, prijzen en abonnementen op de App Store-pagina’s en de rijlimiet in de documentatie van Microsoft. De screenshots komen uit de Gezondheid-app in de iPhone-simulator (iOS 27, Engelse interface, zonder gegevens en zonder iCloud-account) op 2026-11-14; daarom toont het profiel een melding over de reservekopie. Het script is op 2026-11-13 in een eigen sessie gemeten op een voorbeeld-export.xml in het formaat van Apple met 1 miljoen illustratieve records, op een Mac met Apple silicon en Python 3.15; het getal voor 1 GB is een schatting in dezelfde verhouding. We hebben geen gezondheidsgegevens van wie dan ook gebruikt.