Export aus der Health-App (offiziell, kostenlos)
Das ist der einzige Export, den Apple dokumentiert. Er bündelt alles, was die Health-App speichert, ohne Auswahl von Messwert oder Zeitraum.
- Öffne die Health-App auf dem iPhone.
- Tippe auf „Zusammenfassung“ und dann oben rechts auf dein Bild oder deine Initialen.
- Scrolle in deinem Profil ganz nach unten und tippe auf „Alle Gesundheitsdaten exportieren“.

Profil der Health-App, englische Oberfläche. iPhone-Simulator, iOS 27, 2026-11-14. - Tippe im Bestätigungshinweis auf „Exportieren“. Mit Daten aus mehreren Jahren kann das Erstellen der Datei einige Minuten dauern.

Der Bestätigungshinweis, englische Oberfläche. iPhone-Simulator, iOS 27, 2026-11-14. - Das Teilen-Menü zeigt die Datei „export“ als ZIP-Archiv. Sichere sie in der App „Dateien“, so öffnest du sie später am einfachsten auf dem Computer.

Das Teilen-Menü, englische Oberfläche. Die 2 KB stammen aus einem leeren Simulator; ein echter Export ist viel größer. iOS 27, 2026-11-14. - Entpacke export.zip auf dem Computer. Die Einträge liegen in apple_health_export/export.xml.
export.xml mit Python in CSV umwandeln
export.xml speichert jede Messung als Record-Zeile mit Typ, Einheit, Datum und Wert. Das Skript unten liest die Datei als Stream, wählt einen Datentyp aus und schreibt eine CSV mit Beginn, Ende, Wert, Einheit und Quelle. Es braucht nur Python 3, du musst nichts installieren.
- Speichere den Code unten als to_csv.py im selben Ordner wie apple_health_export.
- Führe im Terminal in diesem Ordner aus: python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
- Die CSV landet im selben Ordner, benannt nach dem Datentyp, und die letzte ausgegebene Zeile sagt, wie viele Einträge geschrieben wurden. Ersetze HKQuantityTypeIdentifierStepCount durch den Typ, den du brauchst, zum Beispiel HKQuantityTypeIdentifierHeartRate für die Herzfrequenz.
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")
Was unser Test gezeigt hat
Wir haben eine export.xml im Apple-Format mit 1 Million Einträgen für Schritte und Herzfrequenz erstellt (220 MB, Beispielwerte, keine Daten einer echten Person). Auf einem Mac mit Apple Silicon und Python 3.15, am 2026-11-13:
Die Zeit ist ähnlich, der Speicher nicht. Eine Schätzung, nicht getestet: Im selben Verhältnis bräuchte ein echter Export von 1 GB fast 4 GB Arbeitsspeicher, um ganz geladen zu werden, genug, um einen normalen Laptop einfrieren zu lassen. Das Streaming-Skript blieb im Test bei etwa 16 MB.
| Wie das XML gelesen wird | Belegter Speicher | Zeit |
|---|---|---|
| Als Stream (das Skript oben) | 16 MB | 2,2 s |
| Ganze Datei laden (ElementTree.parse) | 964 MB | 1,9 s |
Die Wege im Vergleich
| Weg | Preis | Was du brauchst | Grenze | Quelle, Datum |
|---|---|---|---|---|
| Export aus der Health-App + Skript | Kostenlos | Ein Computer mit Python 3 | Das iPhone liefert nur XML; die Umwandlung liegt bei dir | Apple Support |
| Health Export CSV (App) | 2,99 US$; Remote 4,99 US$ im Monat oder 29,99 US$ im Jahr | iPhone | CSV und GPX direkt vom iPhone; Remote synchronisiert im Hintergrund | App Store |
| Health Auto Export (App) | Basic 2,99 US$ (einmalig); Premium 1,99 US$ im Monat, 6,99 US$ im Jahr oder 24,99 US$ lebenslang | iPhone | Die Free-Stufe exportiert nicht; Basic exportiert von Hand (CSV und JSON); automatischer Export nur mit Premium | App Store |
| telo | Pro 49 US$ im Jahr; mit Free sieht der Assistent nur die letzten 7 Tage | iPhone mit der telo-App | CSV mit Tageswerten, Schlaf und Trainings über dein Konto im Web, einmal pro Tag, auch mit Free; Tagessummen, nicht jede Einzelmessung. Gibt den Verlauf außerdem an Claude, ChatGPT und andere Assistenten weiter (vollständig nur mit Pro) und mit Pro über eine JSON-API | App Store |
Wenn du kein CSV brauchst
Wenn du etwas über deine Daten fragen willst („Ist meine Ruheherzfrequenz dieses Jahr gesunken?“), ist Exportieren und Umwandeln jedes Mal mühsam. telo liest die Daten der Health-App über die iPhone-App und lässt Claude, ChatGPT und andere Assistenten den Verlauf direkt abfragen, ohne Datei. Wer programmiert, liest dieselben Daten über die persönliche REST-API, in JSON, mit bis zu 500 Zeilen pro Anfrage. Wenn du nur Tabellen willst, gibt dir telo seine Kopie auch als CSV zurück: eine Zeile pro Tag und Messwert, pro Nacht und pro Training, in deiner Zeitzone (Konto > Deine Daten im 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"Häufige Fragen
Kann Apple Health direkt als CSV exportieren?
Nein. Der Export der Health-App erstellt eine export.zip mit den Daten im XML-Format. Für CSV wandelst du export.xml mit einem Skript um oder nutzt eine App aus dem App Store, die CSV schreibt.
Kann ich nur einen Messwert oder einen Zeitraum exportieren?
Nicht mit dem offiziellen Export, der alles auf einmal nimmt. Das Skript in dieser Anleitung wählt einen Datentyp aus; mit den Apps aus der Tabelle wählst du Messwert und Zeitraum auf dem iPhone.
Warum ist export.xml so groß?
Jede Messung ist eine Zeile, und die Uhr misst die Herzfrequenz viele Male am Tag. Ein paar Jahre Nutzung erreichen leicht Hunderte Megabyte.
Wo landet die exportierte Datei?
Dort, wo du sie im Teilen-Menü hingeschickt hast. Hast du sie in der App „Dateien“ gesichert, liegt export.zip im gewählten Ordner, auf dem iPhone oder in iCloud Drive. Per AirDrop an einen Mac landet sie im Ordner „Downloads“.
Kann ich nur Trainings oder nur Schlaf exportieren?
Nicht mit dem offiziellen Export. Ändere nach dem Export den Typ im Skript: HKCategoryTypeIdentifierSleepAnalysis für Schlaf. Trainings sind Workout-Zeilen, nicht Record, und brauchen ein anderes Skript; die Apps aus der Tabelle exportieren Trainings und Schlaf getrennt auf dem iPhone.
Wie öffne ich export.xml in Excel?
Öffne das XML nicht direkt. Wandle es in CSV um, eine Datei pro Datentyp, und prüfe, dass die CSV weniger als 1.048.576 Zeilen hat, das Maximum eines Excel-Arbeitsblatts.
Exportiert telo CSV?
Ja, seit November 2026. In deinem telo-Konto im Web liefert Deine Daten > Alles herunterladen (CSV) ein ZIP mit Tageswerten, Schlaf, Trainings und welche KI was gelesen hat, mit Uhrzeiten in deiner Zeitzone. Es enthält, was das iPhone an telo geschickt hat, pro Tag zusammengefasst, nicht jede Einzelmessung der Health-App; für die Rohdaten nutzt du den Export der Health-App. Einmal pro Tag, auch mit Free.
Quellen und Verfügbarkeit
Tarife, Regionen und Oberflächen können sich ändern. Prüfe die offiziellen Quellen, bevor du loslegst.
- Apple Support: Daten in der App „Health“ auf dem iPhone teilen, geprüft am 2026-11-14
- Microsoft: Excel-Spezifikationen und -Beschränkungen, geprüft am 2026-11-14
- Microsoft: Was tun, wenn ein Dataset zu groß für das Excel-Raster ist, geprüft am 2026-11-14
- Python: xml.etree.ElementTree.iterparse (englisch), geprüft am 2026-11-14
So wurde diese Anleitung erstellt
Am 2026-11-14 haben wir die Exportschritte auf der Support-Seite von Apple, Preise und Tarife auf den App-Store-Seiten und die Zeilengrenze in der Dokumentation von Microsoft geprüft. Die Screenshots stammen aus der Health-App im iPhone-Simulator (iOS 27, englische Oberfläche, ohne Daten und ohne iCloud-Account) vom 2026-11-14, deshalb zeigt das Profil einen Backup-Hinweis. Das Skript haben wir am 2026-11-13 in einer eigenen Sitzung an einer export.xml im Apple-Format mit 1 Million Beispieleinträgen gemessen, auf einem Mac mit Apple Silicon und Python 3.15; die Zahl für 1 GB ist eine Schätzung im selben Verhältnis. Gesundheitsdaten einer echten Person haben wir nicht verwendet.