Gesundheitsmetriken - JSON-Exportformat

Dokumentation zur Struktur von Gesundheitsmetriken in JSON-Exporten

Last updated: February 6, 2026

On this page

Gesundheitsmetriken

Gesundheitsmetriken repräsentieren die verschiedenen Messungen und Datenpunkte, die von Ihrer Apple Health App und verbundenen Geräten erfasst werden. In JSON-Exporten werden Gesundheitsmetriken im Array metrics gespeichert.

Format für Metriknamen

Alle Metriknamen in JSON-Exporten verwenden das snake_case-Format (Kleinbuchstaben mit Unterstrichen). Zum Beispiel:

  • "Step Count" wird zu "step_count"
  • "Blood Pressure" wird zu "blood_pressure"
  • "Heart Rate" wird zu "heart_rate"
  • "Walking + Running Distance" wird zu "walking_running_distance"

Struktur

Das Array metrics enthält Objekte, die jeweils einen spezifischen Typ von Gesundheitsmetrik repräsentieren. Die meisten Gesundheitsmetriken folgen einer gemeinsamen Struktur:

{
  "name": "step_count",
  "units": "count",
  "data": [
    {
      "qty": 8500,
      "date": "2024-02-06 14:30:00 -0800"
    }
  ]
}

Gemeinsame Felder

  • name (String): Der Name der Gesundheitsmetrik im snake_case-Format (z. B. "step_count", "heart_rate", "active_energy")
  • units (String): Die Maßeinheit (z. B. "count", "bpm", "kcal")
  • data (Array): Ein Array von Datenpunkten, die jeweils enthalten:
    • qty (Number): Der Mengenwert
    • date (Date): Zeitstempel im Format yyyy-MM-dd HH:mm:ss Z

Spezielle Metrikformate

Einige Gesundheitsmetriken haben eindeutige Strukturen, die sich vom gemeinsamen Format unterscheiden:

Blutdruck

Blutdruckmessungen umfassen sowohl systolische als auch diastolische Werte:

{
  "name": "blood_pressure",
  "units": "mmHg",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "systolic": 120,
      "diastolic": 80
    }
  ]
}

Felder:

  • systolic (Number): Der systolische (obere) Blutdruckwert
  • diastolic (Number): Der diastolische (untere) Blutdruckwert

Herzfrequenz

Herzfrequenzdaten umfassen minimale, durchschnittliche und maximale Werte:

{
  "name": "heart_rate",
  "units": "bpm",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85
    }
  ]
}

Felder:

  • Min (Number): Minimale Herzfrequenz während des Messzeitraums
  • Avg (Number): Durchschnittliche Herzfrequenz während des Messzeitraums
  • Max (Number): Maximale Herzfrequenz während des Messzeitraums

Schlafanalyse

Die Struktur der Schlafdaten variiert je nachdem, ob die Datenaggregation in Ihren Exporteinstellungen aktiviert ist.

Aggregierte Schlafdaten

Wenn die Aggregation aktiviert ist, werden Schlafdaten nach Tagen zusammengefasst:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06",
      "totalSleep": 7.5,
      "asleep": 7.0,
      "core": 3.5,
      "deep": 1.5,
      "rem": 2.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

Felder:

  • totalSleep (Number): Gesamte Schlafzeit in Stunden
  • asleep (Number): Gesamte Zeit in einem Schlafzustand
  • core (Number): Dauer des Leichtschlafs in Stunden
  • deep (Number): Dauer des Tiefschlafs in Stunden
  • rem (Number): Dauer des REM-Schlafs in Stunden
  • sleepStart (Date): Wann der Schlaf tatsächlich begann
  • sleepEnd (Date): Wann der Schlaf tatsächlich endete
  • inBed (Number): Gesamte Zeit im Bett in Stunden
  • inBedStart (Date): Wann Sie ins Bett gegangen sind
  • inBedEnd (Date): Wann Sie aufgestanden sind

Nicht aggregierte Schlafdaten

Wenn die Aggregation deaktiviert ist, werden einzelne Schlafsegmente einbezogen:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "deep": 0.0,
      "rem": 0.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

Felder:

  • startDate (Date): Startzeit des Schlafsegments
  • endDate (Date): Endzeit des Schlafsegments
  • qty (Number): Dauer des Segments in Stunden
  • value (String): Schlafzustand - einer von:
    • "Awake"
    • "Asleep" (nicht kategorisierte Schlafphase)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Hinweis: "Asleep" bezieht sich auf eine nicht kategorisierte Schlafphase (anstatt auf die Gesamtschlafzeit). Dies kann auftreten, wenn die Datenquelle keine Schlafphasenverfolgung unterstützt.

Blutzucker

Blutzuckermessungen umfassen Informationen zum Zeitpunkt der Mahlzeit:

{
  "name": "blood_glucose",
  "units": "mg/dL",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 95,
      "mealTime": "Before Meal"
    }
  ]
}

Felder:

  • qty (Number): Blutzuckerspiegel
  • mealTime (String): Einer von:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Sexuelle Aktivität

Einträge zur sexuellen Aktivität verfolgen die Verwendung von Schutz:

{
  "name": "sexual_activity",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 20:00:00 -0800",
      "Unspecified": 0,
      "Protection Used": 1,
      "Protection Not Used": 0
    }
  ]
}

Felder:

  • Unspecified (Number): Anzahl, wenn der Schutzstatus unbekannt ist
  • Protection Used (Number): Anzahl, wenn Schutz verwendet wurde
  • Protection Not Used (Number): Anzahl, wenn kein Schutz verwendet wurde

Händewaschen

Händewasch-Ereignisse verfolgen den Abschlussstatus:

{
  "name": "handwashing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Felder:

  • qty (Number): Anzahl der Händewasch-Ereignisse
  • value (String): Einer von:
    • "Complete"
    • "Incomplete"

Zähneputzen

Zähneputz-Ereignisse verfolgen den Abschlussstatus:

{
  "name": "toothbrushing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Felder:

  • qty (Number): Anzahl der Zähneputz-Ereignisse
  • value (String): Einer von:
    • "Complete"
    • "Incomplete"

Insulinabgabe

Einträge zur Insulinabgabe umfassen den Grund für die Abgabe:

{
  "name": "insulin_delivery",
  "units": "IU",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 5,
      "reason": "Bolus"
    }
  ]
}

Felder:

  • qty (Number): Menge des abgegebenen Insulins
  • reason (String): Einer von:
    • "Bolus" (Mahlzeiteninsulin)
    • "Basal" (Basisinsulin)

Häufige Gesundheitsmetriken

Einige häufig exportierte Gesundheitsmetriken umfassen (alle Metriknamen sind im snake_case-Format):

  • step_count - Tägliche Schrittzählungen
  • walking_running_distance - Zurückgelegte Strecke
  • active_energy - Durch Aktivität verbrannte Kalorien
  • resting_heart_rate - Herzfrequenz in Ruhe
  • heart_rate - Herzfrequenzmessungen
  • respiratory_rate - Atemfrequenz
  • body_temperature - Körpertemperaturmessungen
  • blood_oxygen_saturation - SpO2-Werte
  • weight_&_body_mass - Körpergewichtsmessungen
  • body_mass_index - Berechnete BMI-Werte
  • height - Größenmessungen
  • dietary_water - Flüssigkeitsaufnahme
  • mindful_minutes - Meditations- oder Achtsamkeitszeit

Tipps

  • Zeitgruppierung: Verwenden Sie die Zeitgruppierungseinstellungen in Ihrer Exportkonfiguration, um zu steuern, wie Daten aggregiert werden (nach Sekunde, Minute, Stunde, Tag usw.)
  • Datenaggregation: Aktivieren Sie die Datenaggregation, um Schlaf und andere Metriken nach Tagen zusammenzufassen, um die Analyse zu erleichtern
  • Selektiver Export: Sie können auswählen, welche spezifischen Gesundheitsmetriken Sie in Ihren Export aufnehmen möchten, um die Dateigröße und Verarbeitungszeit zu reduzieren

Verwandte Dokumentation