A API Google Health fornece tipos de dados para monitorar a nutrição e a hidratação de um usuário. Esses tipos permitem registrar refeições, consultar alimentos no banco de dados, monitorar quantidades de nutrientes e registrar a ingestão de líquidos.
Tipos de dados compatíveis
| Tipo de dado | Operações disponíveis |
Escopo |
|---|---|---|
|
Comida
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Unidade de medida de alimentos
dataType:
food-measurement-unitparâmetro de filtro: food_measurement_unit
Tipo de registro : comida
Dispositivos compatíveis
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Registro de hidratação
dataType:
hydration-logparâmetro de filtro: hydration_log
Tipo de registro : sessão
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Registro de alimentação
dataType:
nutrition-logparâmetro de filtro: nutrition_log
Tipo de registro : sessão
Dispositivos compatíveis
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Registro de alimentação
Um registro de nutrição representa os alimentos registrados por um usuário. Há duas maneiras de criar um registro de nutrição, dependendo do tipo de alimento:
Alimento identificado: defina o campo
foodpara referenciar um recurso Food atual. Os camposnutrients,energy,energyFromFat,totalCarbohydrate,totalFatefoodDisplayNamesão preenchidos automaticamente com base no alimento referenciado. Esse é o método preferencial.Alimento anônimo: defina o campo
foodDisplayNamemanualmente e forneça valores paranutrients,energy,energyFromFat,totalCarbohydrateetotalFat. Os registros de nutrição criados com base em alimentos anônimos não podem ser editados após a criação.
Criar um registro de nutrição com alimentos anônimos
Para criar uma entrada de registro de nutrição, envie uma solicitação POST para o endpoint nutrition-log
dataPoints.
Solicitação
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
}
}
}Resposta
{
"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"
}
}
}Criar um registro de nutrição com alimentos identificados
Para registrar um item do banco de dados de alimentos, defina o campo food para referenciar um
recurso Food. A API preenche os campos nutricionais automaticamente.
Solicitação
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"
}
}
}Resposta
{
"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"
}
}
}Excluir registros de nutrição
Para excluir uma ou mais entradas de registro de nutrição, envie uma solicitação POST ao
método batchDelete com os nomes dos recursos das entradas que serão removidas.
Solicitação:
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"
]
}Campos de registro de nutrição
Para uma lista completa de campos e descrições, consulte
NutritionLog.
Quantidade de energia
Representa uma medição de energia, medida em quilocalorias (kcal). Para
mais detalhes, consulte EnergyQuantity.
{
"kcal": 165
}
Quantidade de peso
Representa uma medição de peso, em gramas. Para mais detalhes,
consulte WeightQuantity.
{
"grams": 27.3
}
Quantidade de nutrientes
Representa um nutriente específico e a quantidade medida dele. Para mais detalhes, consulte
NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Valores de nutrientes
Para ver uma lista completa dos tipos de nutrientes aceitos, consulte
Nutrient.
Disponibilização
Representa as informações de porção de uma entrada de registro de nutrição. Para mais detalhes, consulte
Serving.
{
"amount": 1.5
}
Valores do tipo de refeição
Para ver uma lista completa dos tipos de refeição aceitos, consulte
MealType.
Comida
"Alimento" é um tipo de dado somente leitura que representa um item no banco de dados de alimentos.
Use as operações list e get para procurar alimentos disponíveis e recuperar as
informações nutricionais deles.
Listar alimentos
Para listar alimentos, envie uma solicitação GET ao endpoint food dataPoints:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Unidade de medida de alimentos
A unidade de medida de alimentos é um tipo de dado somente leitura que representa as unidades de medida usadas para porções de alimentos (por exemplo, "xícara", "colher de sopa" ou "unidade").
Listar unidades de medida disponíveis
Para listar as unidades de medida disponíveis:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
Registro de hidratação
Um registro de hidratação representa o líquido registrado por um usuário. Ao contrário dos alimentos, que fazem referência a um banco de dados de alimentos e medem a ingestão de nutrientes ou energia, as entradas de hidratação monitoram o volume específico de líquido consumido em um determinado intervalo de tempo.
Criar um registro de hidratação
Para criar uma entrada de registro de hidratação, envie uma solicitação POST ao endpoint hydration-log
dataPoints. Todas as quantidades de volume são convertidas em mililitros no formato da API.
Solicitação
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"
}
}
}Resposta
{
"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"
}
}
}
}Atualizar um registro de hidratação
Para atualizar uma entrada de registro de hidratação, envie uma solicitação PATCH para o endpoint hydration-log
dataPoints com o ID do ponto de dados.
Solicitação
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
}
}
}Resposta
{
"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
}
}
}
}Excluir registros de hidratação
Para excluir uma ou mais entradas de registro de hidratação, envie uma solicitação POST ao método batchDelete.
Solicitação
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"
]
}Resposta
{
"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"
}
}
}
]
}
}Campos de registro de hidratação
Para uma lista completa de campos e descrições, consulte
HydrationLog.
Quantidade de volume
Representa uma medida de volume, em mililitros. Para mais detalhes,
consulte VolumeQuantity.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Valores de unidade de volume
Para uma lista completa de unidades de volume compatíveis, consulte
VolumeUnit. Os valores comuns incluem
MILLILITER, LITER, CUP_US e FLUID_OUNCE_US.
Diretrizes
- Use alimentos identificados sempre que possível. A API preenche os campos nutricionais automaticamente, reduzindo erros e garantindo a consistência com o banco de dados de alimentos.
- Os registros de nutrição criados com base em alimentos anônimos não podem ser atualizados após a criação. Se você precisar corrigir um registro de alimentos anônimo, exclua-o e crie um novo.
- Ao contrário dos registros anônimos de nutrição alimentar, as entradas de registro de hidratação são totalmente
mutáveis e podem ser atualizadas após a criação usando uma solicitação
PATCH. - Todas as quantidades de nutrientes na matriz
nutrientsusam gramas como unidade de medida. - Os campos
energyeenergyFromFatusam quilocalorias (kcal) como unidade de medida. - A API converte e armazena todas as quantidades de hidratação em mililitros. O campo opcional
userProvidedUnitemVolumeQuantityé usado apenas para exibição voltada ao usuário do lado do cliente. - As solicitações HTTP
DELETEdiretas para pontos de dadoshydration-logindividuais retornam404 Not Found. Use o métodobatchDeletepara remover essas entradas de recurso. - Os registros de hidratação usam um intervalo curto em que
startTimeeendTimerepresentam o período em que o líquido foi consumido.