Типы данных о питании

API Google Health предоставляет типы данных для отслеживания потребления пищи пользователем и информации о пищевой ценности продуктов. Эти типы позволяют регистрировать приемы пищи, ссылаться на продукты из базы данных продуктов питания и отслеживать количество питательных веществ.

Поддерживаемые типы данных

Таблица: Типы данных о питании в Google Health API
Тип данных
dataType
параметр filter
Записывать
тип
Доступный
операции
Объем Вебхук
поддерживать
Истинные нули
поддерживать
Еда
food
food
Еда список, получить .nutrition.readonly
.nutrition.writeonly
Измерительный прибор для пищевых продуктов
food-measurement-unit
food_measurement_unit
Еда список, получить .nutrition.readonly
.nutrition.writeonly
Журнал учета пищевых продуктов
nutrition-log
nutrition_log
Образец список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление .nutrition.readonly
.nutrition.writeonly

Журнал учета пищевых продуктов

Журнал пищевой ценности — это список продуктов, которые пользователь зарегистрировал. Существует два способа создания журнала пищевой ценности, в зависимости от типа продукта:

  1. Идентифицированный продукт : Укажите в поле food ссылку на существующий ресурс «Продукт питания» . Поля nutrients , « energy , energyFromFat , totalCarbohydrate , totalFat и foodDisplayName заполняются автоматически на основе указанного продукта. Это предпочтительный метод.

  2. Анонимные продукты : Задайте поле foodDisplayName вручную и укажите значения для nutrients , energy , energyFromFat , totalCarbohydrate и totalFat . Журналы пищевой ценности, созданные на основе анонимных продуктов, нельзя редактировать после создания.

Создайте дневник питания с анонимными продуктами.

Для создания записи в журнале питания отправьте POST запрос на конечную точку данных nutrition-log .

Запрос

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

Ответ

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

Создайте дневник питания с указанием конкретных продуктов.

Чтобы добавить продукт питания в базу данных продуктов, укажите в поле food ссылку на ресурс «Продукт питания». API автоматически заполняет поля с информацией о пищевой ценности.

Запрос:

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

Удалить журналы учета питания

Для удаления одной или нескольких записей журнала питания отправьте POST запрос на конечную точку batchDelete , указав имена ресурсов записей, которые необходимо удалить.

Запрос:

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

Поля журнала питания

Полный список полей и их описаний см. в справочной документации .

EnergyQuantity

Представляет собой показатель энергетической ценности, измеряемый в килокалориях ( kcal ). Подробнее см. EnergyQuantity .

{
  "kcal": 165
}

ВесКоличество

Обозначает величину веса, измеренную в граммах. Подробнее см. WeightQuantity .

{
  "grams": 27.3
}

Количество питательных веществ

Обозначает конкретное питательное вещество и его измеренное количество. Подробнее см. в разделе «Количество питательных веществ» .

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

Пищевая ценность

Полный список поддерживаемых типов питательных веществ см. в разделе «Питательные вещества» .

Подача

Представляет собой информацию о порции для записи в журнале учета пищевой ценности. Подробнее см. раздел «Порция» .

{
  "amount": 1.5
}

Значения MealType

Полный список поддерживаемых типов блюд см. в разделе MealType .

Еда

Тип данных «Еда» — это тип данных только для чтения, представляющий собой продукт питания в базе данных продуктов питания. Используйте операции list и get данных, чтобы просматривать доступные продукты и получать информацию об их пищевой ценности.

Список продуктов

Чтобы получить список продуктов питания, отправьте GET запрос к конечной точке данных food :

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

Измерительный прибор для пищевых продуктов

Единица измерения пищевых продуктов — это тип данных только для чтения, представляющий единицы измерения, используемые для порций продуктов питания (например, «чашка», «столовая ложка» или «кусок»).

Список доступных единиц измерения

Чтобы отобразить список доступных единиц измерения:

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

Руководящие принципы

  • По возможности используйте идентифицированные продукты. API автоматически заполняет поля с информацией о пищевой ценности, что снижает количество ошибок и обеспечивает согласованность с базой данных продуктов питания.
  • Журналы учета питания, созданные на основе анонимных данных о продуктах, нельзя обновить после создания. Если вам нужно исправить анонимный журнал учета питания, удалите его и создайте новый.
  • В таблице nutrients все значения указаны в граммах.
  • В полях energy и energyFromFat в качестве единицы измерения используются килокалории ( kcal ).