Die Google Health API bietet Datentypen zum Erfassen der Ernährung und Flüssigkeitszufuhr eines Nutzers. Mit diesen Typen kannst du Mahlzeiten protokollieren, Lebensmittel aus der Lebensmitteldatenbank referenzieren, Nährstoffmengen im Blick behalten und die Flüssigkeitsaufnahme protokollieren.
Unterstützte Datentypen
| Datentyp | Verfügbare -Vorgänge |
Bereich |
|---|---|---|
|
Essen
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Maßeinheit für Lebensmittel
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
Eintragstyp : Lebensmittel
Kompatible Geräte
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Protokoll deiner Flüssigkeitszufuhr
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Ernährungsprotokoll
dataType:
nutrition-logfilter parameter: nutrition_log
Eintragstyp: Sitzung
Kompatible Geräte
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Ernährungsprotokoll
Ein Ernährungsprotokoll stellt die von einem Nutzer protokollierten Lebensmittel dar. Es gibt zwei Möglichkeiten, ein Ernährungsprotokoll zu erstellen, je nach Art des Lebensmittels:
Identifiziertes Lebensmittel: Setzen Sie das Feld
foodso, dass es auf eine vorhandene Food-Ressource verweist. Die Feldernutrients,energy,energyFromFat,totalCarbohydrate,totalFatundfoodDisplayNamewerden automatisch aus dem referenzierten Lebensmittel ausgefüllt. Dies ist die bevorzugte Methode.Anonymes Lebensmittel: Legen Sie das Feld
foodDisplayNamemanuell fest und geben Sie Werte fürnutrients,energy,energyFromFat,totalCarbohydrateundtotalFatan. Ernährungsprotokolle, die aus anonymen Lebensmitteln erstellt wurden, können nach dem Erstellen nicht mehr bearbeitet werden.
Erstelle ein Ernährungstagebuch mit anonymen Lebensmitteln
Wenn du einen Ernährungsprotokolleintrag erstellen möchtest, sende eine POST-Anfrage an den nutrition-log-Endpunkt dataPoints.
Anfrage
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T18:00:00Z",
"endTime": "2026-06-16T18:30:00Z"
},
"foodDisplayName": "Grilled Chicken Breast",
"mealType": "DINNER",
"energy": {
"kcal": 165
},
"totalCarbohydrate": {
"grams": 0
},
"totalFat": {
"grams": 3.6
},
"nutrients": [
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
},
{
"nutrient": "SODIUM",
"quantity": {
"grams": 0.074
}
}
],
"serving": {
"amount": 1.0
}
}
}Antwort
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T18:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T18:30:00Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 18
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 18,
"minutes": 30
}
}
},
"energy": {
"kcal": 165
},
"totalCarbohydrate": {
"grams": 0
},
"totalFat": {
"grams": 3.6
},
"nutrients": [
{
"quantity": {
"grams": 31
},
"nutrient": "PROTEIN"
},
{
"quantity": {
"grams": 0.074
},
"nutrient": "SODIUM"
}
],
"mealType": "DINNER",
"serving": {
"amount": 1
},
"foodDisplayName": "Grilled Chicken Breast"
}
}
}Ernährungstagebuch mit erkannten Lebensmitteln erstellen
Wenn du ein Lebensmittel aus der Lebensmitteldatenbank protokollieren möchtest, lege im Feld food einen Verweis auf eine Lebensmittelressource fest. Die API füllt die Felder für Nährwerte automatisch aus.
Anfrage
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T12:00:00Z",
"endTime": "2026-06-16T12:30:00Z"
},
"food": "users/me/dataTypes/food/dataPoints/food-id",
"mealType": "LUNCH",
"serving": {
"amount": 1.0,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
}
}
}Antwort
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T12:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T12:30:00Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 12
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 12,
"minutes": 30
}
}
},
"energy": {
"kcal": 95
},
"energyFromFat": {
"kcal": 3
},
"totalCarbohydrate": {
"grams": 25
},
"totalFat": {
"grams": 0.3
},
"nutrients": [
{
"quantity": {
"grams": 4.4,
"userProvidedUnit": "GRAM"
},
"nutrient": "DIETARY_FIBER"
},
{
"quantity": {
"grams": 19,
"userProvidedUnit": "GRAM"
},
"nutrient": "SUGAR"
},
{
"quantity": {
"grams": 0.5,
"userProvidedUnit": "GRAM"
},
"nutrient": "PROTEIN"
}
],
"mealType": "LUNCH",
"serving": {
"amount": 1,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
},
"food": "users/user-id/dataTypes/food/dataPoints/food-id",
"foodDisplayName": "Apple"
}
}
}Ernährungsprotokolle löschen
Wenn du einen oder mehrere Ernährungsprotokolleinträge löschen möchtest, sende eine POST-Anfrage an die Methode batchDelete mit den Ressourcennamen der zu entfernenden Einträge.
Anfrage
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json
{
"names": [
"users/me/dataTypes/nutrition-log/dataPoints/data-point-id"
]
}Felder im Ernährungsprotokoll
Eine vollständige Liste der Felder und Beschreibungen finden Sie unter NutritionLog.
Energiemenge
Stellt eine Energiemessung in Kilokalorien (kcal) dar. Weitere Informationen finden Sie unter EnergyQuantity.
{
"kcal": 165
}
Gewichtsmenge
Stellt eine Gewichtsmessung in Gramm dar. Weitere Informationen finden Sie unter WeightQuantity.
{
"grams": 27.3
}
Nährstoffmenge
Stellt einen bestimmten Nährstoff und seine gemessene Menge dar. Weitere Informationen finden Sie unter NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Nährstoffwerte
Eine vollständige Liste der unterstützten Nährstofftypen findest du unter Nutrient.
Wird ausgeliefert
Stellt die Portionsinformationen für einen Ernährungsprotokoll-Logeintrag dar. Weitere Informationen finden Sie unter Serving.
{
"amount": 1.5
}
Werte für Art der Mahlzeit
Eine vollständige Liste der unterstützten Mahlzeitentypen finden Sie unter MealType.
Essen
„Food“ ist ein schreibgeschützter Datentyp, der ein Nahrungsmittel in der Nahrungsmitteldatenbank darstellt.
Verwenden Sie die Vorgänge list und get, um verfügbare Lebensmittel zu durchsuchen und ihre Nährwertinformationen abzurufen.
Lebensmittel auflisten
Wenn Sie Lebensmittel auflisten möchten, senden Sie eine GET-Anfrage an den food-Endpunkt dataPoints:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Maßeinheit für Lebensmittel
„Maßeinheit für Lebensmittel“ ist ein schreibgeschützter Datentyp, der Maßeinheiten für Lebensmittelportionen darstellt (z. B. „Tasse“, „Esslöffel“ oder „Stück“).
Verfügbare Maßeinheiten auflisten
So rufen Sie eine Liste der verfügbaren Maßeinheiten auf:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
Flüssigkeitszufuhr-Protokoll
Ein Flüssigkeitszufuhr-Protokoll stellt die von einem Nutzer protokollierte Flüssigkeitszufuhr dar. Im Gegensatz zu Lebensmitteln, die auf eine Lebensmitteldatenbank verweisen und die Nährstoff- oder Energieaufnahme messen, wird bei Einträgen zur Flüssigkeitszufuhr die genaue Menge an Flüssigkeit erfasst, die in einem bestimmten Zeitraum konsumiert wurde.
Flüssigkeitszufuhr-Protokoll erstellen
Wenn du einen Logeintrag für die Flüssigkeitsaufnahme erstellen möchtest, sende eine POST-Anfrage an den hydration-log-Endpunkt dataPoints. Alle Volumenmengen werden im API-Format in Milliliter umgerechnet.
Anfrage
POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"endTime": "2026-06-16T14:00:01Z"
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}Antwort
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T14:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}
}Eintrag zur Flüssigkeitszufuhr aktualisieren
Wenn du einen Eintrag im Flüssigkeitszufuhrprotokoll aktualisieren möchtest, sende eine PATCH-Anfrage an den hydration-log-Endpunkt dataPoints mit der ID des Datenpunkts.
Anfrage
PATCH https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints/data-point-id
Authorization: Bearer access-token
Content-Type: application/json
{
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T10:00:00Z",
"endTime": "2026-06-16T10:00:01Z"
},
"amountConsumed": {
"milliliters": 500
}
}
}Antwort
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T10:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T10:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 10
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 10,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500
}
}
}
}Protokolle zur Flüssigkeitszufuhr löschen
Wenn du einen oder mehrere Einträge im Flüssigkeitszufuhrprotokoll löschen möchtest, sende eine POST-Anfrage an die Methode batchDelete.
Anfrage
POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json
{
"names": [
"users/me/dataTypes/hydration-log/dataPoints/data-point-id"
]
}Antwort
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.BatchDeleteDataPointsResponse",
"dataPoints": [
{
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T14:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}
]
}
}Felder für das Protokoll der Flüssigkeitszufuhr
Eine vollständige Liste der Felder und Beschreibungen finden Sie unter HydrationLog.
Anzahl der Volumes
Stellt eine Volumenmessung in Millilitern dar. Weitere Informationen finden Sie unter VolumeQuantity.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Volumeneinheitenwerte
Eine vollständige Liste der unterstützten Volume-Einheiten finden Sie unter VolumeUnit. Gängige Werte sind MILLILITER, LITER, CUP_US und FLUID_OUNCE_US.
Richtlinien
- Verwende nach Möglichkeit erkannte Lebensmittel. Die API füllt die Nährwertfelder automatisch aus, wodurch Fehler reduziert und die Konsistenz mit der Lebensmitteldatenbank gewährleistet wird.
- Ernährungsprotokolle, die aus anonymen Lebensmitteln erstellt wurden, können nach dem Erstellen nicht mehr aktualisiert werden. Wenn du ein anonymes Ernährungsprotokoll korrigieren musst, lösche es und erstelle ein neues.
- Im Gegensatz zu anonymen Ernährungsprotokollen sind Einträge im Flüssigkeitsprotokoll vollständig veränderbar und können nach dem Erstellen mit einer
PATCH-Anfrage aktualisiert werden. - Alle Nährstoffmengen im Array
nutrientswerden in Gramm angegeben. - In den Feldern
energyundenergyFromFatwird die Maßeinheit Kilokalorien (kcal) verwendet. - Die API konvertiert und speichert alle Flüssigkeitsmengen in Millilitern. Das optionale Feld
userProvidedUnitinVolumeQuantitywird nur für die clientseitige Anzeige für Nutzer verwendet. - Direkte HTTP-
DELETE-Anfragen an einzelnehydration-log-Datenpunkte geben404 Not Foundzurück. Verwenden Sie die MethodebatchDelete, um diese Ressourceneinträge zu entfernen. - Für Flüssigkeitsaufnahmeprotokolle wird ein kurzes Intervall verwendet, wobei
startTimeundendTimeden Zeitraum darstellen, in dem die Flüssigkeit aufgenommen wurde.