Entwicklung von Funktionen für Vitalparameter und Gesundheitsmesswerte mit der Google Health API

Über die Google Health API werden Vitalparameter und physiologische Gesundheitsmesswerte von Nutzern erfasst, z. B. Herzfrequenz, Sauerstoffsättigung, Blutzucker, Körpertemperatur und abgeleitete tägliche Schlaftemperatur.

Hier erfahren Sie, wie Sie die Nutzerautorisierung für Vitalparameter-Daten in Ihrer Anwendung lesen und anfordern, um Ihren Nutzern die bestmögliche Erfahrung zu bieten.

Unterstützte Datentypen

Die API unterstützt die folgenden Datentypen zum Erfassen von Vitalparametern und Gesundheitsmesswerten:

Tabelle: Google Health API-Datentypen für Vitalparameter
Datentyp
  dataType
  filter-Parameter
Verfügbare
Vorgänge
Bereich
Blutzucker
blood-glucose
blood_glucose
Eintragstyp : Beispiel
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Körpertemperatur
core-body-temperature
core_body_temperature
Eintragstyp : Beispiel
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Herzfrequenzvariabilität
daily-heart-rate-variability
daily_heart_rate_variability
Eintragstyp : Täglich

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Herzfrequenzzonen
daily-heart-rate-zones
daily_heart_rate_zones
Eintragstyp : Täglich
list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Sauerstoffsättigung
daily-oxygen-saturation
daily_oxygen_saturation
Eintragstyp : Täglich

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Atemfrequenz
daily-respiratory-rate
daily_respiratory_rate
Eintragstyp : Täglich

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Ruheherzfrequenz
daily-resting-heart-rate
daily_resting_heart_rate
Eintragstyp : Täglich

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tägliche Ableitungen der Schlaftemperatur
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations
Eintragstyp : Täglich

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Elektrokardiogramm (EKG)
electrocardiogram
electrocardiogram
Eintragstyp : Sitzung

Kompatible Geräte

list .ecg.readonly
Herzfrequenz
heart-rate
heart_rate
Eintragstyp : Beispiel

Kompatible Geräte

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Herzfrequenzvariabilität
heart-rate-variability
heart_rate_variability
Eintragstyp : Beispiel

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Benachrichtigung über einen unregelmäßigen Herzrhythmus
irregular-rhythm-notification
irregular_rhythm_notification
Eintragstyp : Sitzung
list .irn.readonly
Sauerstoffsättigung
oxygen-saturation
oxygen_saturation
Eintragstyp : Beispiel

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Zusammenfassung der Atemfrequenz im Schlaf
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary
Eintragstyp : Beispiel

Kompatible Geräte

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Anforderungen für Lesezugriff

Physiologische Vitalparameter-Datentypen werden durch die Gerätesynchronisierung oder manuelle Protokolleinträge in der mobilen Fitbit App oder der Fitbit Web-App ausgefüllt und sind über die REST API schreibgeschützt. Sie können nicht direkt über Google Health API-Endpunkte geschrieben oder geändert werden.

In den folgenden Abschnitten finden Sie technische Details und REST-Darstellungsformate für Vitaldaten.

Herzfrequenz und Herzgesundheit

Die API bietet detaillierte Messungen innerhalb eines Tages und tägliche Zusammenfassungen für Herzfrequenzmesswerte:

  • Herzfrequenz (heart-rate): Herzfrequenzmessungen zu einem bestimmten Zeitpunkt mit einer beatsPerMinute-Anzahl sowie der motionContext des Nutzers (z. B. SEDENTARY oder ACTIVE) und sensorLocation (z. B. WRIST oder CHEST).
  • Tägliche Ruheherzfrequenz (daily-resting-heart-rate): Ein täglicher Baseline-Wert für die Ruheherzfrequenz.
  • Herzfrequenzvariabilität (heart-rate-variability und daily-heart-rate-variability): Erfasst den quadratischen Mittelwert der aufeinanderfolgenden Differenzen (rmssd) in Millisekunden, um die HRV darzustellen.

Beispiel für die REST-Darstellung

Wenn Sie Herzfrequenzmessungen abfragen möchten, senden Sie eine GET-Anfrage an den Endpunkt list.

.

Das folgende Beispiel zeigt einen einzelnen heart-rate-Datenpunkt aus der zurückgegebenen Liste:

Anfrage

GET https://health.googleapis.com/v4/users/me/dataTypes/heart-rate/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T08:05:00Z
Authorization: Bearer access-token
Accept: application/json

Antwort

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/heart-rate/dataPoints/hr-123456789",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "heartRate": {
        "sampleTime": {
          "physicalTime": "2026-04-20T08:00:00Z",
          "utcOffset": "0s"
        },
        "beatsPerMinute": "72",
        "metadata": {
          "motionContext": "SEDENTARY",
          "sensorLocation": "WRIST"
        }
      }
    }
  ]
}

Blutzucker

Der Datentyp blood-glucose steht für den Blutzuckerspiegel des Nutzers. Blutzuckerwerte enthalten die Konzentration in Milligramm pro Deziliter (mg/dL), den Kontext für Mahlzeit oder Zeitpunkt sowie Informationen zur Probe.

Beispiel für die REST-Darstellung

Wenn du Blutzuckermessungen abfragen möchtest, sende eine GET-Anfrage an den Endpunkt list. Das folgende Beispiel zeigt einen einzelnen blood-glucose-Datenpunkt aus der zurückgegebenen Liste:

Anfrage

GET https://health.googleapis.com/v4/users/me/dataTypes/blood-glucose/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T09:00:00Z
Authorization: Bearer access-token
Accept: application/json

Antwort

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/blood-glucose/dataPoints/bg-987654321",
      "dataSource": {
        "recordingMethod": "MANUALLY_ENTERED"
      },
      "bloodGlucose": {
        "sampleTime": {
          "physicalTime": "2026-04-20T08:30:00Z",
          "utcOffset": "-25200s"
        },
        "bloodGlucoseMilligramsPerDeciliter": 95.0,
        "measurementSource": "SELF_MONITORING_BLOOD_GLUCOSE",
        "mealType": "BREAKFAST",
        "measurementTiming": "AFTER_MEAL",
        "specimen": "CAPILLARY_BLOOD",
        "notes": "Post-breakfast fingerstick reading"
      }
    }
  ]
}

Sauerstoffsättigung (SpO2)

Die API erfasst den Sauerstoffgehalt mithilfe von oxygen-saturation (Werte für Stichproben innerhalb eines Tages) und daily-oxygen-saturation (Tageszusammenfassungsstatistiken). Die prozentuale Konzentration wird als Zahl zwischen 0 und 100 angegeben.

Beispiel für die REST-Darstellung

Wenn Sie Messungen der Sauerstoffsättigung abfragen möchten, senden Sie eine GET-Anfrage an den Endpunkt list. Das folgende Beispiel zeigt einen einzelnen oxygen-saturation-Datenpunkt aus der zurückgegebenen Liste:

Anfrage

GET https://health.googleapis.com/v4/users/me/dataTypes/oxygen-saturation/dataPoints?startTime=2026-04-20T03:00:00Z&endTime=2026-04-20T03:05:00Z
Authorization: Bearer access-token
Accept: application/json

Antwort

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/oxygen-saturation/dataPoints/spo2-555555",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "oxygenSaturation": {
        "sampleTime": {
          "physicalTime": "2026-04-20T03:00:00Z",
          "utcOffset": "0s"
        },
        "percentage": 98.2
      }
    }
  ]
}

Temperatur

Die Temperaturmessung umfasst Messwerte für die Körperkerntemperatur und Trends bei der Hauttemperatur während des Schlafs:

  • Körperkerntemperatur (core-body-temperature): Erfasst die Temperatur der inneren Organe in Grad Celsius an der jeweiligen Messstelle (z. B. ARMPIT, EAR oder FOREHEAD).
  • Abgeleitete Schlaftemperatur (daily-sleep-temperature-derivations): Über Nacht aufgezeichnete hochfrequente Schwankungen der Hauttemperatur.

Beispiel für die REST-Darstellung

Wenn du Messungen der Körperkerntemperatur abfragen möchtest, sende eine GET-Anfrage an den Endpunkt list. Das folgende Beispiel zeigt einen einzelnen core-body-temperature-Datenpunkt aus der zurückgegebenen Liste:

Anfrage

GET https://health.googleapis.com/v4/users/me/dataTypes/core-body-temperature/dataPoints?startTime=2026-04-20T22:00:00Z&endTime=2026-04-20T23:00:00Z
Authorization: Bearer access-token
Accept: application/json

Antwort

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/core-body-temperature/dataPoints/cbt-666666",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "coreBodyTemperature": {
        "sampleTime": {
          "physicalTime": "2026-04-20T22:30:00Z",
          "utcOffset": "-18000s"
        },
        "temperatureCelsius": 36.8,
        "measurementLocation": "FOREHEAD"
      }
    }
  ]
}

Elektrokardiogramm (EKG) und Benachrichtigungen

Für Geräte mit medizinischen Sensoren stellt die API erweiterte Daten zu Herzgesundheitstypen bereit:

  • Elektrokardiogramm (electrocardiogram): Ergebnisse einer 1‑Kanal‑EKG-Aufzeichnung mit einer Klassifizierung (SINUS_RHYTHM, ATRIAL_FIBRILLATION, INCONCLUSIVE), durchschnittlicher Herzfrequenz, Abtastfrequenz und Rohdaten der Wellenformspannung.
  • Benachrichtigung über einen unregelmäßigen Herzrhythmus (irregular-rhythm-notification): Kontextbezogene Benachrichtigungsereignisse, die auf Anzeichen von potenziellem Vorhofflimmern hinweisen, die während der passiven Überwachung erkannt wurden.

Beispiel für die REST-Darstellung

Wenn Sie Daten zu EKG-Sitzungen abfragen möchten, senden Sie eine GET-Anfrage an den Endpunkt list. Das folgende Beispiel zeigt einen einzelnen electrocardiogram-Datenpunkt aus der zurückgegebenen Liste:

Anfrage

GET https://health.googleapis.com/v4/users/me/dataTypes/electrocardiogram/dataPoints?startTime=2026-04-20T10:00:00Z&endTime=2026-04-20T10:05:00Z
Authorization: Bearer access-token
Accept: application/json

Antwort

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/electrocardiogram/dataPoints/ecg-777777",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "electrocardiogram": {
        "interval": {
          "startTime": "2026-04-20T10:00:00Z",
          "startUtcOffset": "0s",
          "endTime": "2026-04-20T10:00:30Z",
          "endUtcOffset": "0s"
        },
        "resultClassification": "SINUS_RHYTHM",
        "beatsPerMinuteAvg": "70",
        "samplingFrequencyHertz": 250,
        "millivoltsScalingFactor": 1000,
        "leadNumber": 1,
        "waveformSamples": [
          -12, -8, 4, 18, 30, 42, 50, 48, 32, 10
        ]
      }
    }
  ]
}

Bereiche und Autorisierung

Wenn Sie die Funktion Vitalparameter und Daten zur Herzgesundheit verwenden möchten, muss Ihre App die folgenden OAuth-Bereiche anfordern:

  • Lesen: https://www.googleapis.com/auth/googlehealth.ecg.readonly
  • Lesen: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
  • Schreiben: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
  • Lesen: https://www.googleapis.com/auth/googlehealth.irn.readonly

Richtlinien

Beachten Sie die folgenden Richtlinien, wenn Sie Funktionen mit Vitalparametern und Gesundheitsmesswerten entwickeln:

  • Einheitenumrechnungen vornehmen: Temperaturwerte werden in Grad Celsius angegeben. Konvertieren Sie die Temperatur in Ihrem Frontend-Code in Fahrenheit, basierend auf den lokalisierten Einstellungen des Nutzers.
  • Webhook-Benachrichtigungen verwalten: Abonnieren Sie Webhook-Benachrichtigungen für Vitalparameter, um die Backend-Analyse sofort auszulösen, nachdem ein Nutzer neue Messwerte (z. B. Herzfrequenz oder Blutzucker) synchronisiert hat.
  • Sensibilität von Daten berücksichtigen: In Ihrem Produkt muss Nutzern der klinische oder Wellness-Kontext für das Lesen hochfrequenter physiologischer Vitalparameter klar erläutert werden. Erklären Sie, warum Bereiche wie health_metrics_and_measurements oder ecg erforderlich sind, bevor Autorisierungsaufforderungen aufgerufen werden.