Tipos de dados de nutrição

A API Google Health fornece tipos de dados para rastrear a ingestão de alimentos e as informações nutricionais de um usuário. Esses tipos permitem registrar refeições, consultar alimentos no banco de dados e rastrear quantidades de nutrientes.

Tipos de dados compatíveis

Tabela: tipos de dados nutricionais da API Google Health
Tipo de dados
  dataType
  filter parâmetro
Tipo de registro
Operações disponíveis
Escopo Suporte a webhook
Suporte a zeros verdadeiros
Comida
  food
  food
Comida list, get .nutrition.readonly
.nutrition.writeonly
Unidade de medida de alimentos
  food-measurement-unit
  food_measurement_unit
Comida list, get .nutrition.readonly
.nutrition.writeonly
Registro de nutrição
  nutrition-log
  nutrition_log
Exemplo list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Registro de nutrição

Um registro de nutrição representa alimentos registrados por um usuário. Há duas maneiras de criar um registro de nutrição, dependendo do tipo de alimento:

  1. Alimento identificado: defina o campo food para referenciar um recurso Alimento existente. Os campos nutrients, energy, energyFromFat, totalCarbohydrate, totalFat e foodDisplayName são preenchidos automaticamente com base no alimento referenciado. Esse é o método preferencial.

  2. Alimento anônimo: defina o campo foodDisplayName manualmente e forneça valores para nutrients, energy, energyFromFat, totalCarbohydrate, e totalFat. Os registros de nutrição criados com 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 de pontos de dados nutrition-log.

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 alimentar do banco de dados de alimentos, defina o campo food para referenciar um recurso de alimento. 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
    }
  }
}

Excluir registros de nutrição

Para excluir uma ou mais entradas de registro de nutrição, envie uma solicitação POST para o endpoint batchDelete com os nomes de recursos das entradas a serem 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 NutritionLog

Para uma lista completa de campos e descrições, consulte a documentação de referência.

EnergyQuantity

Representa uma medição de energia, medida em quilocalorias (kcal). Para mais detalhes, consulte EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Representa uma medição de peso, medida em gramas. Para mais detalhes, consulte WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Representa um nutriente específico e a quantidade medida dele. Para mais detalhes, consulte NutrientQuantity.

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

Valores de nutrientes

Para uma lista completa de tipos de nutrientes compatíveis, consulte Nutriente.

Porção

Representa as informações de porção de uma entrada de registro de nutrição. Para mais detalhes, consulte Porção.

{
  "amount": 1.5
}

Valores de MealType

Para uma lista completa de tipos de refeição compatíveis, consulte MealType.

Comida

Comida é um tipo de dados somente leitura que representa um item alimentar no banco de dados de alimentos. Use as operações list e get para navegar pelos alimentos disponíveis e recuperar as informações nutricionais deles.

Listar alimentos

Para listar alimentos, envie uma solicitação GET para o endpoint de pontos de dados food:

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

Unidade de medida de alimentos

Unidade de medida de alimentos é um tipo de dados somente leitura que representa unidades de medida usadas para porções de alimentos (por exemplo, "xícara", "colher de sopa" ou "pedaço").

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

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 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.
  • Todas as quantidades de nutrientes na matriz nutrients usam gramas como unidade de medida.
  • Os campos energy e energyFromFat usam quilocalorias (kcal) como a unidade de medida.