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
Tipo di datidataType
filter parameter |
Tipo di record |
Operazioni disponibili |
Ambito | Supporto webhook |
Supporto per veri zeri |
|---|---|---|---|---|---|
Cibo
foodfood
|
Cibo | list, get | .nutrition.readonly.nutrition.writeonly |
||
Unità di misura degli alimenti
food-measurement-unitfood_measurement_unit
|
Cibo | list, get | .nutrition.readonly.nutrition.writeonly |
||
Diario alimentare
nutrition-lognutrition_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:
Cibo identificato: imposta il campo
foodin modo che faccia riferimento a una risorsa Food esistente. I campinutrients,energy,energyFromFat,totalCarbohydrate,totalFatefoodDisplayNamevengono compilati automaticamente dal cibo a cui viene fatto riferimento. Questo è il metodo preferito.Cibo anonimo: imposta manualmente il campo
foodDisplayNamee fornisci i valori pernutrients,energy,energyFromFat,totalCarbohydrate, etotalFat. 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
nutrientsutilizzano i grammi come unità di misura. - I campi
energyeenergyFromFatutilizzano le chilocalorie (kcal) come unità di misura.