iPhone und Apple Watch erfassen jeden Tag automatisch deine Herzfrequenz, Schritte, deinen Schlaf, den Blutsauerstoff und vieles mehr. Nach ein paar Jahren sind das Millionen von Einträgen – echte Langzeitdaten aus dem Alltag, die sonst kaum zu bekommen und für Forschung und Entwicklung sehr wertvoll sind.
Der Haken: Die App „Health“ exportiert sie als eine riesige XML-Datei, manchmal größer als 1 GB, die Excel und die meisten Werkzeuge nicht direkt öffnen können. Dieser Artikel zeigt, welche Daten HealthKit erfasst und wie du sie mit der Mac-App HealthKit Parser zur Analyse in CSV umwandelst.
Was ist HealthKit?
HealthKit ist Apples System, das Gesundheitsdaten auf dem iPhone speichert. Neben dem, was iPhone und Apple Watch automatisch messen, sammelt es auch Daten anderer Apps – von Waagen, Blutdruckmessgeräten, Schlaf- und Ernährungs-Apps usw. Die App „Health“ zeigt dir all diese Daten an.
Andere Apps brauchen für jeden Datentyp deine Erlaubnis, um HealthKit-Daten zu lesen. Du könntest eine eigene App schreiben, die sie direkt liest – wenn du aber einfach alle deine Einträge haben willst, ist der Export der App „Health“ der mit Abstand einfachste Weg.
Die Daten, die HealthKit erfasst
Jeder HealthKit-Datentyp hat eine Kennung wie HKQuantityTypeIdentifierHeartRate (Herzfrequenz). Diese Kennung steht unverändert im Export und in der Spalte type der CSV-Datei, die HealthKit Parser schreibt. Hier sind die wichtigsten, ungefähr so gruppiert wie in der App „Health“.
Die „Einheit“ ist die im Export verwendete; sie kann sich je nach den Einstellungen des iPhone ändern (zum Beispiel km oder mi). „Meist erfasst von“ ist nur ein grober Hinweis darauf, woher die Daten üblicherweise stammen.
Aktivität
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Schritte | HKQuantityTypeIdentifier | count | iPhone, Apple Watch |
| Gehen- und Laufdistanz | HKQuantityTypeIdentifier | km | iPhone, Apple Watch |
| Erklommene Etagen | HKQuantityTypeIdentifier | count | iPhone, Apple Watch |
| Aktivitätsenergie | HKQuantityTypeIdentifier | kcal | Apple Watch |
| Ruheenergie | HKQuantityTypeIdentifier | kcal | Apple Watch |
| Trainingsminuten | HKQuantityTypeIdentifier | min | Apple Watch |
| Stehminuten | HKQuantityTypeIdentifier | min | Apple Watch |
| Stehstunden | HKCategoryTypeIdentifier | — | Apple Watch |
| Körperliche Anstrengung | HKQuantityTypeIdentifier | kcal/hr·kg | Apple Watch |
| Cardiofitness (VO2max) | HKQuantityTypeIdentifier | mL/min·kg | Apple Watch |
| Zeit bei Tageslicht | HKQuantityTypeIdentifier | min | Apple Watch |
| Raddistanz | HKQuantityTypeIdentifier | km | Apple Watch, Andere Apps und Geräte |
| Schwimmdistanz, Schwimmzüge | HKQuantityTypeIdentifierHKQuantityTypeIdentifier | m, count | Apple Watch |
| Laufgeschwindigkeit, Laufleistung, Schrittlänge, vertikale Oszillation, Bodenkontaktzeit | HKQuantityTypeIdentifierHKQuantityTypeIdentifierHKQuantityTypeIdentifierHKQuantityTypeIdentifierHKQuantityTypeIdentifier | W, m, cm, ms … | Apple Watch |
| Trainingsbelastung (geschätzt) | HKQuantityTypeIdentifier | appleEffortScore | Apple Watch |
Herz
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Herzfrequenz | HKQuantityTypeIdentifier | count/min | Apple Watch |
| Ruheherzfrequenz | HKQuantityTypeIdentifier | count/min | Apple Watch |
| Durchschnittliche Herzfrequenz beim Gehen | HKQuantityTypeIdentifier | count/min | Apple Watch |
| Herzfrequenzvariabilität | HKQuantityTypeIdentifier | ms | Apple Watch |
| Herzfrequenzerholung (1 Minute) | HKQuantityTypeIdentifier | count/min | Apple Watch |
| Vorhofflimmern-Verlauf | HKQuantityTypeIdentifier | % | Apple Watch |
| Mitteilungen zu hoher, niedriger und unregelmäßiger Herzfrequenz | HKCategoryTypeIdentifierHKCategoryTypeIdentifierHKCategoryTypeIdentifier | — | Apple Watch |
Atmung
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Atemfrequenz | HKQuantityTypeIdentifier | count/min | Apple Watch |
| Blutsauerstoff | HKQuantityTypeIdentifier | % | Apple Watch |
| Atemstörungen | HKQuantityTypeIdentifier | count | Apple Watch |
| Mitteilungen zu Schlafapnoe | HKCategoryTypeIdentifier | — | Apple Watch |
Schlaf
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Schlaf (im Bett, Kernschlaf, Tiefschlaf, REM, wach) | HKCategoryTypeIdentifier | — | Apple Watch, iPhone, Andere Apps und Geräte |
| Handgelenktemperatur im Schlaf | HKQuantityTypeIdentifier | degC | Apple Watch |
| Schlafdauerziel | HKData | hr | App „Health“ |
Mobilität
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Gehgeschwindigkeit | HKQuantityTypeIdentifier | km/hr | iPhone |
| Schrittlänge | HKQuantityTypeIdentifier | cm | iPhone |
| Gangasymmetrie | HKQuantityTypeIdentifier | % | iPhone |
| Doppelstandphase | HKQuantityTypeIdentifier | % | iPhone |
| Gangstabilität | HKQuantityTypeIdentifier | % | iPhone |
| Treppengeschwindigkeit (aufwärts, abwärts) | HKQuantityTypeIdentifierHKQuantityTypeIdentifier | m/s | iPhone, Apple Watch |
| Sechs-Minuten-Gehtest (geschätzt) | HKQuantityTypeIdentifier | m | iPhone |
Hören
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Umgebungsgeräuschpegel | HKQuantityTypeIdentifier | dBASPL | Apple Watch |
| Kopfhörerpegel | HKQuantityTypeIdentifier | dBASPL | iPhone |
| Mitteilungen zu lauter Umgebung | HKCategoryTypeIdentifier | — | Apple Watch |
Körpermaße
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Größe | HKQuantityTypeIdentifier | cm | Manuelle Eingabe, Andere Apps und Geräte |
| Gewicht | HKQuantityTypeIdentifier | kg | Andere Apps und Geräte, Manuelle Eingabe |
| Body-Mass-Index (BMI) | HKQuantityTypeIdentifier | count | Andere Apps und Geräte, Manuelle Eingabe |
| Körperfettanteil | HKQuantityTypeIdentifier | % | Andere Apps und Geräte, Manuelle Eingabe |
| Fettfreie Körpermasse | HKQuantityTypeIdentifier | kg | Andere Apps und Geräte, Manuelle Eingabe |
| Taillenumfang | HKQuantityTypeIdentifier | cm | Manuelle Eingabe |
Vitalwerte
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Blutdruck (systolisch, diastolisch) | HKQuantityTypeIdentifierHKQuantityTypeIdentifier | mmHg | Andere Apps und Geräte, Manuelle Eingabe |
| Körpertemperatur | HKQuantityTypeIdentifier | degC | Andere Apps und Geräte, Manuelle Eingabe |
| Basaltemperatur | HKQuantityTypeIdentifier | degC | Andere Apps und Geräte, Manuelle Eingabe |
| Blutzucker | HKQuantityTypeIdentifier | mg/dL | Andere Apps und Geräte, Manuelle Eingabe |
Ernährung
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Nahrungsenergie, Eiweiß, Fett, Kohlenhydrate | HKQuantityTypeIdentifierHKQuantityTypeIdentifierHKQuantityTypeIdentifierHKQuantityTypeIdentifier | kcal, g | Andere Apps und Geräte, Manuelle Eingabe |
| Wasser, Koffein | HKQuantityTypeIdentifierHKQuantityTypeIdentifier | mL, mg | Andere Apps und Geräte, Manuelle Eingabe |
| Ballaststoffe, Vitamine, Mineralstoffe usw. (über 30 Arten) | HKQuantityTypeIdentifierHKQuantityTypeIdentifier… | g, mg, µg … | Andere Apps und Geräte, Manuelle Eingabe |
Sonstiges
| Daten | Wert in der Spalte type | Einheit (Beispiel) | Meist erfasst von |
|---|---|---|---|
| Achtsamkeitsminuten | HKCategoryTypeIdentifier | — | Apple Watch, Andere Apps und Geräte |
| Händewaschen | HKCategoryTypeIdentifier | — | Apple Watch |
| Zähneputzen | HKCategoryTypeIdentifier | — | Andere Apps und Geräte |
| Anzahl der Stürze | HKQuantityTypeIdentifier | count | Apple Watch |
| Zyklusprotokoll (Menstruation usw.) | HKCategoryTypeIdentifier… | — | Manuelle Eingabe, Andere Apps und Geräte |
| Symptome (Kopfschmerzen, Fieber, Husten usw.) | HKCategoryTypeIdentifierHKCategoryTypeIdentifierHKCategoryTypeIdentifier… | — | Manuelle Eingabe |
| UV-Index | HKQuantityTypeIdentifier | count | Andere Apps und Geräte |
Zeilen mit „—“ als Einheit sind Kategoriedaten: In der Spalte value steht eine Kategorie wie HKCategoryValueSleepAnalysisAsleepCore (Kernschlaf).
Insgesamt kennt HealthKit weit über 100 Datentypen, darunter Ergebnisse von Hörtests und Geschwindigkeiten beim Training. Welche du hast, hängt von deinen Geräten und Apps ab. Der Export des Autors, der etwa neun Jahre (2017–2026) umfasst, enthielt 42 Typen und rund 3,08 Millionen Einträge. Am häufigsten waren Aktivitätsenergie und Herzfrequenz der Apple Watch mit jeweils etwa 700.000 Einträgen.
Gesundheitsdaten auf dem iPhone exportieren
- Öffne auf dem iPhone die App „Health“ und tippe oben rechts auf dein Profilsymbol.
- Tippe ganz unten auf „Alle Gesundheitsdaten exportieren“ und zur Bestätigung auf „Exportieren“. Bei vielen Daten kann das ein paar Minuten dauern.
- Wenn das Teilen-Menü erscheint, sende die Datei per AirDrop an deinen Mac oder sichere sie in „Dateien“ und übertrage sie auf den Mac.
- Doppelklicke auf dem Mac auf die ZIP-Datei, um sie zu entpacken.
Dabei entsteht ein Ordner namens apple_health_export mit folgendem Inhalt:
export.xml: Alle deine Einträge. Diese Datei liest HealthKit Parserexport_cda.xml: Einträge im Format HL7 CDA, einem Standard für klinische Dokumenteelectrocardiograms: Mit der Apple Watch aufgezeichnete EKGs (CSV)workout-routes: Routen der Trainings (GPX)
Mit HealthKit Parser in CSV umwandeln
HealthKit Parser ist eine Mac-App, die export.xml liest und die Einträge in eine CSV-Datei schreibt. Alles geschieht auf deinem Mac; deine Daten werden nirgendwohin gesendet.
1. export.xml importieren
Beim Start von HealthKit Parser öffnet sich das Fenster eines neuen Dokuments. Klicke in der Symbolleiste auf „Import XML“ und wähle export.xml im entpackten Ordner.

Der Import dauert eine Weile. Die 1,4 GB große export.xml des Autors (rund 3,08 Millionen Einträge) brauchte auf einem MacBook Pro (M4) etwa 14 Minuten. Bis er fertig ist, steht unten rechts im Fenster „Parsing XML…“.
2. Datentypen und Anzahl prüfen
Nach dem Import zeigt das Fenster den erfassten Zeitraum (Beginn und Ende), die Anzahl der Einträge sowie alle Datentypen mit ihrer jeweiligen Anzahl. Titel und Notizen kannst du frei eintragen.

Wenn du das Dokument sicherst, öffnet es sich beim nächsten Mal sofort, ohne export.xml erneut zu importieren – praktisch, wenn du immer wieder andere Zeiträume exportieren möchtest.
3. Als CSV exportieren
Klicke in der Symbolleiste auf „Export CSV“, wähle den Zeitraum und die Datentypen und klicke auf „Export“. Du kannst „All Time“ (gesamter Zeitraum) eingeschaltet lassen oder den Zeitraum mit Beginn und Ende eingrenzen.

Du kannst alle Typen auf einmal exportieren, aber bei Millionen von Einträgen wird die CSV-Datei sehr groß. Wählst du nur die Typen, die du brauchst, lässt sie sich viel leichter verarbeiten.
Was in der CSV-Datei steht
Jede Zeile ist ein Eintrag, mit diesen Spalten:
| Spalte | Inhalt |
|---|---|
type | Der Datentyp (die Kennungen aus den Tabellen oben) |
unit | Einheit |
value | Der Wert. Bei Schlaf und anderen Kategoriedaten ein Text |
start, end | Beginn und Ende des Eintrags, auf die Minute genau, im Format der Einstellungen „Sprache & Region“ des Mac |
start_UT, end_UT | Beginn und Ende des Eintrags als Unixzeit (Sekunden) |
creation, creation_UT | Wann der Eintrag in HealthKit gespeichert wurde, auch als Unixzeit |
device | Das Gerät, das ihn erfasst hat (Modell, Softwareversion) |
source name, source version | Die App oder das Gerät, das ihn erfasst hat, und deren Version |
Hier ein Beispiel für exportierte Ruheherzfrequenz (nur einige Spalten):
| type | unit | value | start_UT | end_UT |
|---|---|---|---|---|
HKQuantityTypeIdentifier | count/min | 63 | 1791559483.0 | 1791640198.0 |
HKQuantityTypeIdentifier | count/min | 63 | 1791645830.0 | 1791714436.0 |
HKQuantityTypeIdentifier | count/min | 58 | 1791737624.0 | 1791765440.0 |
Die _UT-Spalten (Unixzeit)
Spalten, deren Name auf _UT endet, geben Datum und Uhrzeit als Unixzeit an: die Sekunden seit dem 1. Januar 1970, 00:00:00 UTC. Die Unixzeit hängt nicht von Zeitzonen ab.
- Reihenfolge und Abstände der Einträge bleiben korrekt, auch wenn du auf Reisen die Zeitzone wechselst
- Eine einfache Subtraktion ergibt die Länge eines Intervalls (in Sekunden), etwa einer Schlafphase
- Sie ist sekundengenau (Spalten wie
startenden bei der Minute) - Sie lässt sich leicht mit Daten von Laborgeräten und anderen Sensoren abgleichen
- Du kannst sie zur Anzeige in jede beliebige Zeitzone umrechnen
In Python (pandas) kannst du die Datei so einlesen. In der Kopfzeile steht nach jedem Komma ein Leerzeichen, deshalb gibst du skipinitialspace=True an.
import pandas as pd
df = pd.read_csv("resting_heart_rate.csv", skipinitialspace=True)
# Unixzeit → Datum und Uhrzeit (UTC) → Ortszeit
df["start_local"] = (pd.to_datetime(df["start_UT"], unit="s", utc=True)
.dt.tz_convert("Europe/Berlin"))
# Länge jedes Intervalls (Sekunden)
df["seconds"] = df["end_UT"] - df["start_UT"]
In Excel ergibt =E2/86400+DATUM(1970;1;1) mit einem Datums- und Uhrzeitformat für die Zelle das Datum und die Uhrzeit in UTC (wenn Spalte E start_UT ist). Für die Ortszeit addierst du die Abweichung von UTC geteilt durch 24 – zum Beispiel 1/24 für Berlin im Winter.
Tipps für die Analyse
- Manche Daten überschneiden sich: Wenn du iPhone und Apple Watch nutzt, erfassen beide Schritte und Distanz. Die App „Health“ entfernt die Überschneidungen bei der Anzeige, der Export enthält aber beide. Filtere vor dem Aufsummieren nach der Spalte
source nameoderdevice. - Prozentwerte liegen zwischen 0 und 1: Daten mit der Einheit % (Blutsauerstoff, Körperfettanteil, Gangasymmetrie usw.) werden als 0.97 für 97 % gespeichert.
- Einheiten prüfen: Die Einheiten können sich je nach den Einstellungen des iPhone ändern. Prüfe vor dem Rechnen die Spalte
unit. - Kategoriedaten: eine Zeile pro Intervall: Beim Schlaf steht in der Spalte
valueHKCategoryValueSleepAnalysisAsleepCore(Kernschlaf),…AsleepDeep(Tiefschlaf),…AsleepREM(REM),…Awake(wach) usw., und jede Zeile ist ein Intervall. Seine Länge istend_UT − start_UT. - Wenn du mit Daten anderer arbeitest: Gesundheitsdaten sind äußerst sensible personenbezogene Daten. Wenn du in der Forschung Daten von Teilnehmenden verwendest, halte dich an die Verfahren deiner Einrichtung für Ethikprüfung und Einwilligung.
Was nicht in der CSV-Datei steht
HealthKit Parser wandelt die einzelnen Einträge in export.xml um. Zusammenfassungen der Trainings (Trainingsart, Dauer, Gesamtdistanz usw.), die täglichen Summen der Aktivitätsringe und Profilangaben wie Geburtsdatum oder Blutgruppe sind nicht enthalten. Herzfrequenz, Distanz und Energie, die während eines Trainings erfasst werden, sind als einzelne Einträge enthalten.
EKGs und Trainingsrouten liegen bereits als CSV- und GPX-Dateien im entpackten Ordner und lassen sich direkt verwenden.
Fazit
Einmal exportiert und in CSV umgewandelt, lassen sich die Einträge von iPhone und Apple Watch frei in Excel, R, Python und anderen Werkzeugen analysieren. Mit den _UT-Spalten kombinierst du sie mit anderen Daten, ohne dich um Zeitzonen kümmern zu müssen.
HealthKit Parser gibt es als Einmalkauf im Mac App Store (macOS 12 oder neuer). Ein Abo gibt es nicht.
