Ernährungsdatentypen

Die Google Health API bietet Datentypen zum Erfassen der Nahrungsaufnahme und der Nährwertinformationen eines Nutzers. Mit diesen Typen können Sie Mahlzeiten protokollieren, Lebensmittel aus der Lebensmitteldatenbank referenzieren und Nährstoffmengen erfassen.

Unterstützte Datentypen

Tabelle: Datentypen für Nährwertinformationen in der Google Health API
Datentyp
  dataType
  filter Parameter
Datensatztyp
Verfügbare
Vorgänge
Umfang Webhook
Unterstützung
Unterstützung für „Echte Nullen“
Lebensmittel
  food
  food
Lebensmittel list, get .nutrition.readonly
.nutrition.writeonly
Maßeinheit für Lebensmittel
  food-measurement-unit
  food_measurement_unit
Lebensmittel list, get .nutrition.readonly
.nutrition.writeonly
Ernährungsprotokoll
  nutrition-log
  nutrition_log
Beispiel list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Ernährungsprotokoll

Ein Ernährungsprotokoll stellt von einem Nutzer protokollierte Lebensmittel dar. Je nach Art des Lebensmittels gibt es zwei Möglichkeiten, ein Ernährungsprotokoll zu erstellen:

  1. Identifizierte Lebensmittel: Legen Sie das Feld food fest, um auf eine vorhandene Lebensmittel-Ressource zu verweisen. Die Felder nutrients, energy, energyFromFat, totalCarbohydrate, totalFat und foodDisplayName werden automatisch aus den referenzierten Lebensmitteln ausgefüllt. Dies ist die bevorzugte Methode.

  2. Anonyme Lebensmittel: Legen Sie das Feld foodDisplayName manuell fest und geben Sie Werte für nutrients, energy, energyFromFat, totalCarbohydrate, und totalFat an. Ernährungsprotokolle, die aus anonymen Lebensmitteln erstellt wurden, können nach dem Erstellen nicht mehr bearbeitet werden.

Ernährungsprotokoll mit anonymen Lebensmitteln erstellen

Senden Sie zum Erstellen eines Ernährungsprotokolleintrags eine POST-Anfrage an den Endpunkt für nutrition-log-Datenpunkte.

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ährungsprotokoll mit identifizierten Lebensmitteln erstellen

Wenn Sie ein Lebensmittel aus der Lebensmitteldatenbank protokollieren möchten, legen Sie das Feld food fest, um auf eine Lebensmittelressource zu verweisen. Die API füllt die Felder für Nährwertinformationen 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
    }
  }
}

Ernährungsprotokolle löschen

Wenn Sie einen oder mehrere Ernährungsprotokolleinträge löschen möchten, senden Sie eine POST-Anfrage an den Endpunkt 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 von Ernährungsprotokollen

Eine vollständige Liste der Felder und Beschreibungen finden Sie in der Referenzdokumentation.

EnergyQuantity

Stellt eine Energiemessung in Kilokalorien (kcal) dar. Weitere Informationen finden Sie unter EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Stellt eine Gewichtsmessung in Gramm dar. Weitere Informationen finden Sie unter WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

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 finden Sie unter Nutrient.

Serving

Stellt die Portionsinformationen für einen Ernährungsprotokoll-Logeintrag dar. Weitere Informationen finden Sie unter Serving.

{
  "amount": 1.5
}

MealType-Werte

Eine vollständige Liste der unterstützten Mahlzeitentypen finden Sie unter MealType.

Lebensmittel

„Lebensmittel“ ist ein schreibgeschützter Datentyp, der ein Lebensmittel in der Lebensmitteldatenbank darstellt. Mit den Vorgängen list und get können Sie verfügbare Lebensmittel durchsuchen und ihre Nährwertinformationen abrufen.

Lebensmittel auflisten

Senden Sie zum Auflisten von Lebensmitteln eine GET-Anfrage an den Endpunkt für food-Datenpunkte:

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 listen Sie verfügbare Maßeinheiten auf:

GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints
Authorization: Bearer access-token
Accept: application/json

Richtlinien

  • Verwenden Sie nach Möglichkeit identifizierte Lebensmittel. Die API füllt die Felder für Nährwertinformationen 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 Sie ein Protokoll für anonyme Lebensmittel korrigieren müssen, löschen Sie es und erstellen Sie ein neues.
  • Für alle Nährstoffmengen im Array nutrients wird Gramm als Maßeinheit verwendet.
  • Für die Felder energy und energyFromFat wird Kilokalorie (kcal) als die Maßeinheit verwendet.