Tipi di dati relativi all'alimentazione

L'API Google Health fornisce tipi di dati per monitorare l'assunzione di cibo e le informazioni nutrizionali di un utente. Questi tipi ti consentono di registrare i pasti, fare riferimento agli alimenti del database alimentare e monitorare le quantità di nutrienti.

Tipi di dati supportati

Tabella: tipi di dati nutrizionali dell'API Google Health
Tipo di dati
  dataType
  filter parameter
Tipo di record
Operazioni disponibili
Ambito Supporto webhook
Supporto per veri zeri
Cibo
  food
  food
Cibo list, get .nutrition.readonly
.nutrition.writeonly
Unità di misura degli alimenti
  food-measurement-unit
  food_measurement_unit
Cibo list, get .nutrition.readonly
.nutrition.writeonly
Diario alimentare
  nutrition-log
  nutrition_log
Esempio list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Diario alimentare

Un diario alimentare rappresenta il cibo registrato da un utente. Esistono due modi per creare un diario alimentare, a seconda del tipo di cibo:

  1. Cibo identificato: imposta il campo food in modo che faccia riferimento a una risorsa Food esistente. I campi nutrients, energy, energyFromFat, totalCarbohydrate, totalFat e foodDisplayName vengono compilati automaticamente dal cibo a cui viene fatto riferimento. Questo è il metodo preferito.

  2. Cibo anonimo: imposta manualmente il campo foodDisplayName e fornisci i valori per nutrients, energy, energyFromFat, totalCarbohydrate, e totalFat. I diari alimentari creati da cibo anonimo non sono modificabili dopo la creazione.

Creare un diario alimentare con cibo anonimo

Per creare una voce di log nutrizionale, invia una richiesta POST all'endpoint dei punti dati nutrition-log.

Richiesta

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
    }
  }
}

Risposta

{
  "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"
    }
  }
}

Creare un diario alimentare con cibo identificato

Per registrare un alimento dal database alimentare, imposta il campo food in modo che faccia riferimento a una risorsa Food. L'API compila automaticamente i campi nutrizionali.

Richiesta:

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
    }
  }
}

Eliminare i diari alimentari

Per eliminare una o più voci del diario alimentare, invia una richiesta POST all'endpoint batchDelete con i nomi delle risorse delle voci da rimuovere.

Richiesta:

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"
  ]
}

Campi NutritionLog

Per un elenco completo dei campi e delle descrizioni, consulta la documentazione di riferimento.

EnergyQuantity

Rappresenta una misurazione dell'energia, misurata in chilocalorie (kcal). Per i dettagli, consulta EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Rappresenta una misurazione del peso, misurata in grammi. Per i dettagli, consulta WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Rappresenta un nutriente specifico e la sua quantità misurata. Per i dettagli, consulta NutrientQuantity.

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

Valori dei nutrienti

Per un elenco completo dei tipi di nutrienti supportati, consulta Nutriente.

Serving

Rappresenta le informazioni sulla porzione per una voce di log del diario alimentare. Per i dettagli, consulta Serving.

{
  "amount": 1.5
}

Valori MealType

Per un elenco completo dei tipi di pasti supportati, consulta MealType.

Cibo

Food è un tipo di dati di sola lettura che rappresenta un alimento nel database alimentare. Utilizza le operazioni list e get per sfogliare gli alimenti disponibili e recuperare le relative informazioni nutrizionali.

Elencare gli alimenti

Per elencare gli alimenti, invia una richiesta GET all'endpoint dei punti dati food:

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

Unità di misura degli alimenti

Food Measurement Unit è un tipo di dati di sola lettura che rappresenta le unità di misura utilizzate per le porzioni di cibo (ad esempio, "tazza", "cucchiaio" o "pezzo").

Elencare le unità di misura disponibili

Per elencare le unità di misura disponibili:

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

Linee guida

  • Quando possibile, utilizza il cibo identificato. L'API compila automaticamente i campi nutrizionali, riducendo gli errori e garantendo la coerenza con il database alimentare.
  • I diari alimentari creati da cibo anonimo non possono essere aggiornati dopo la creazione. Se devi correggere un diario alimentare anonimo, eliminalo e creane uno nuovo.
  • Tutte le quantità di nutrienti nell'array nutrients utilizzano i grammi come unità di misura.
  • I campi energy e energyFromFat utilizzano le chilocalorie (kcal) come unità di misura.