Tipos de datos nutricionales

La API de Google Health proporciona tipos de datos para hacer un seguimiento de la ingesta de alimentos y la información nutricional de un usuario. Estos tipos te permiten registrar comidas, hacer referencia a alimentos de la base de datos de alimentos y hacer un seguimiento de las cantidades de nutrientes.

Tipos de datos admitidos

Tabla: Tipos de datos nutricionales de la API de Google Health
Tipo de datos
  dataType
  filter parámetro
Tipo de registro
Operaciones disponibles
Alcance Compatibilidad con webhook
Compatibilidad con ceros verdaderos
Comida
  food
  food
Comida list, get .nutrition.readonly
.nutrition.writeonly
Unidad de medida de alimentos
  food-measurement-unit
  food_measurement_unit
Comida list, get .nutrition.readonly
.nutrition.writeonly
Registro de nutrición
  nutrition-log
  nutrition_log
Muestra list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Registro de nutrición

Un registro de nutrición representa los alimentos que registró un usuario. Existen dos maneras de crear un registro de nutrición, según el tipo de alimento:

  1. Alimento identificado: Establece el campo food para hacer referencia a un recurso Food existente. Los campos nutrients, energy, energyFromFat, totalCarbohydrate, totalFat y foodDisplayName se propagan automáticamente desde el alimento al que se hace referencia. Este es el método preferido.

  2. Alimento anónimo: Establece el campo foodDisplayName de forma manual y proporciona valores para nutrients, energy, energyFromFat, totalCarbohydrate, y totalFat. Los registros de nutrición creados a partir de alimentos anónimos no se pueden editar después de la creación.

Crea un registro de nutrición con alimentos anónimos

Para crear una entrada de registro de nutrición, envía una solicitud POST al extremo de puntos de datos nutrition-log.

Solicitud

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

Respuesta

{
  "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 de nutrición con alimentos identificados

Para registrar un alimento de la base de datos de alimentos, establece el campo food para hacer referencia a un recurso Food. La API propaga los campos nutricionales automáticamente.

Solicitud:

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

Borra registros de nutrición

Para borrar una o más entradas de registro de nutrición, envía una solicitud POST al extremo batchDelete con los nombres de recursos de las entradas que deseas quitar.

Solicitud:

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 NutritionLog

Para obtener una lista completa de los campos y las descripciones, consulta la documentación de referencia.

EnergyQuantity

Representa una medición de energía, medida en kilocalorías (kcal). Para obtener más información, consulta EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Representa una medición de peso, medida en gramos. Para obtener más información, consulta WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Representa un nutriente específico y su cantidad medida. Para obtener más información, consulta NutrientQuantity.

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

Valores de nutrientes

Para obtener una lista completa de los tipos de nutrientes admitidos, consulta Nutrient.

Entrega

Representa la información de la porción para una entrada de registro de nutrición. Para obtener más información, consulta Serving.

{
  "amount": 1.5
}

Valores de MealType

Para obtener una lista completa de los tipos de comidas admitidos, consulta MealType.

Comida

Food es un tipo de datos de solo lectura que representa un alimento en la base de datos de alimentos. Usa las operaciones list y get para explorar los alimentos disponibles y recuperar su información nutricional.

Enumera alimentos

Para enumerar alimentos, envía una solicitud GET al extremo de puntos de datos food:

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

Unidad de medida de alimentos

La unidad de medida de alimentos es un tipo de datos de solo lectura que representa las unidades de medida que se usan para las porciones de alimentos (por ejemplo, "taza", "cucharada" o "pieza").

Enumera las unidades de medida disponibles

Para enumerar las unidades de medida disponibles, haz lo siguiente:

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

Lineamientos

  • Usa alimentos identificados cuando sea posible. La API propaga los campos nutricionales automáticamente, lo que reduce los errores y garantiza la coherencia con la base de datos de alimentos.
  • Los registros de nutrición creados a partir de alimentos anónimos no se pueden actualizar después de la creación. Si necesitas corregir un registro de alimentos anónimo, bórralo y crea uno nuevo.
  • Todas las cantidades de nutrientes en el array nutrients usan gramos como unidad de medida.
  • Los campos energy y energyFromFat usan kilocalorías (kcal) como la unidad de medida.