L'API Google Health fornisce tipi di dati per monitorare l'alimentazione e l'idratazione di un utente. Questi tipi ti consentono di registrare i pasti, fare riferimento agli alimenti nel database degli alimenti, monitorare le quantità di nutrienti e registrare l'assunzione di liquidi.
Tipi di dati supportati
| Tipo di dati | Operazioni disponibili |
Ambito |
|---|---|---|
|
Cibo
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Unità di misura degli alimenti
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
Tipo di record: Alimenti
Dispositivi compatibili
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Diario dell'idratazione
dataType:
hydration-logfilter parameter: hydration_log
Tipo di record: Sessione
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Diario alimentare
dataType:
nutrition-logfilter parameter: nutrition_log
Tipo di record: Sessione
Dispositivi compatibili
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Diario alimentare
Un log nutrizionale rappresenta gli alimenti registrati da un utente. Esistono due modi per creare un diario alimentare, a seconda del tipo di cibo:
Alimento identificato: imposta il campo
foodin modo che faccia riferimento a una risorsa Alimento esistente. I campinutrients,energy,energyFromFat,totalCarbohydrate,totalFatefoodDisplayNamevengono compilati automaticamente in base all'alimento di riferimento. Questo è il metodo preferito.Alimento anonimo: imposta manualmente il campo
foodDisplayNamee fornisci i valori pernutrients,energy,energyFromFat,totalCarbohydrateetotalFat. I diari alimentari creati da alimenti anonimi non sono modificabili dopo la creazione.
Crea un registro nutrizionale con alimenti anonimi
Per creare una voce di log della nutrizione, invia una richiesta POST all'endpoint nutrition-log
dataPoints.
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"
}
}
}Crea un registro nutrizionale con gli alimenti identificati
Per registrare un alimento dal database degli alimenti, 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,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
}
}
}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-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"
}
}
}Elimina i diari alimentari
Per eliminare una o più voci di log nutrizionale, invia una richiesta POST al metodo 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 del log dell'alimentazione
Per un elenco completo dei campi e delle descrizioni, consulta NutritionLog.
Quantità di energia
Rappresenta una misurazione dell'energia, misurata in chilocalorie (kcal). Per maggiori dettagli, consulta EnergyQuantity.
{
"kcal": 165
}
Quantità di peso
Rappresenta una misurazione del peso, misurata in grammi. Per maggiori dettagli, vedi WeightQuantity.
{
"grams": 27.3
}
Quantità di nutrienti
Rappresenta un nutriente specifico e la relativa quantità misurata. Per maggiori dettagli, vedi NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Valori dei nutrienti
Per un elenco completo dei tipi di nutrienti supportati, consulta
Nutrient.
Pubblicazione
Rappresenta le informazioni sulla porzione per una voce di log nutrizionale. Per maggiori dettagli, vedi Serving.
{
"amount": 1.5
}
Valori del tipo di pasto
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 degli alimenti.
Utilizza le operazioni list e get per sfogliare gli alimenti disponibili e recuperare le relative informazioni nutrizionali.
Elenca alimenti
Per elencare gli alimenti, invia una richiesta GET all'endpoint food dataPoints:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Unità di misura degli alimenti
Unità di misura degli alimenti è 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").
Elenca 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
Diario dell'idratazione
Un log dell'idratazione rappresenta i liquidi registrati da un utente. A differenza degli alimenti, che fanno riferimento a un database di alimenti e misurano l'apporto di nutrienti o energia, le voci relative all'idratazione monitorano il volume specifico di liquidi consumati in un determinato intervallo di tempo.
Crea un diario dell'idratazione
Per creare una voce di log dell'idratazione, invia una richiesta POST all'endpoint hydration-log
dataPoints. Tutte le quantità di volume vengono convertite in millilitri nel formato API.
Richiesta
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"
}
}
}Risposta
{
"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"
}
}
}
}Aggiorna un log di idratazione
Per aggiornare una voce di log di idratazione, invia una richiesta PATCH all'endpoint hydration-log
dataPoints con l'ID del punto dati.
Richiesta
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
}
}
}Risposta
{
"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
}
}
}
}Elimina i log dell'idratazione
Per eliminare una o più voci del log di idratazione, invia una richiesta POST al metodo batchDelete.
Richiesta
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"
]
}Risposta
{
"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"
}
}
}
]
}
}Campi del log dell'idratazione
Per un elenco completo dei campi e delle descrizioni, consulta HydrationLog.
Quantità di volume
Rappresenta una misurazione del volume, misurata in millilitri. Per maggiori dettagli, vedi VolumeQuantity.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Valori delle unità di volume
Per un elenco completo delle unità di volume supportate, consulta VolumeUnit. I valori comuni includono MILLILITER, LITER, CUP_US e FLUID_OUNCE_US.
Linee guida
- Se possibile, utilizza gli alimenti identificati. L'API compila automaticamente i campi nutrizionali, riducendo gli errori e garantendo la coerenza con il database degli alimenti.
- I log di alimentazione creati da alimenti anonimi non possono essere aggiornati dopo la creazione. Se devi correggere un diario alimentare anonimo, eliminalo e creane uno nuovo.
- A differenza dei log anonimi sulla nutrizione alimentare, le voci del log sull'idratazione sono completamente modificabili e possono essere aggiornate dopo la creazione utilizzando una richiesta
PATCH. - Tutte le quantità di nutrienti nell'array
nutrientsutilizzano i grammi come unità di misura. - I campi
energyeenergyFromFatutilizzano le chilocalorie (kcal) come unità di misura. - L'API converte e memorizza tutte le quantità di idratazione in millilitri. Il campo facoltativo
userProvidedUnitinVolumeQuantityviene utilizzato solo per la visualizzazione lato client rivolta agli utenti. - Le richieste HTTP
DELETEdirette ai singoli punti datihydration-logrestituiscono404 Not Found. Utilizza il metodobatchDeleteper rimuovere queste voci di risorse. - I log di idratazione utilizzano un intervallo breve in cui
startTimeeendTimerappresentano il periodo di tempo in cui è stato consumato il liquido.