API Google Health предоставляет типы данных для отслеживания питания и потребления жидкости пользователем. Эти типы позволяют регистрировать приемы пищи, ссылаться на продукты из базы данных продуктов, отслеживать количество питательных веществ и регистрировать потребление жидкости.
Поддерживаемые типы данных
Тип данныхdataTypeпараметр filter | Доступный операции | Объем |
|---|---|---|
| Еда | список, получить | .nutrition.readonly.nutrition.writeonly |
Измерительный прибор для пищевых продуктовfood-measurement-unitfood_measurement_unit Тип записи: Еда Совместимые устройства
| список, получить | .nutrition.readonly.nutrition.writeonly |
| Журнал учета потребления жидкости | список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление | .nutrition.readonly.nutrition.writeonly |
Журнал учета пищевых продуктовnutrition-lognutrition_log Тип записи: Образец Совместимые устройства
| список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление | .nutrition.readonly.nutrition.writeonly |
Журнал учета пищевых продуктов
Журнал пищевой ценности — это список продуктов, которые пользователь зарегистрировал. Существует два способа создания журнала пищевой ценности, в зависимости от типа продукта:
Идентифицированный продукт : Укажите в поле
foodссылку на существующий ресурс «Продукт питания» . Поляnutrients, «energy,energyFromFat,totalCarbohydrate,totalFatиfoodDisplayNameзаполняются автоматически на основе указанного продукта. Это предпочтительный метод.Анонимные продукты : Задайте поле
foodDisplayNameвручную и укажите значения дляnutrients,energy,energyFromFat,totalCarbohydrateиtotalFat. Журналы пищевой ценности, созданные на основе анонимных продуктов, нельзя редактировать после создания.
Создайте дневник питания с анонимными продуктами.
Для создания записи в журнале питания отправьте POST запрос на конечную точку nutrition-log dataPoints .
Запрос
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 dataPoints :
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
Журнал учета потребления жидкости
Журнал учета потребления жидкости представляет собой данные о количестве жидкости, потребленной пользователем. В отличие от продуктов питания, которые ссылаются на базу данных продуктов и измеряют потребление питательных веществ или энергии, записи о потреблении жидкости отслеживают конкретный объем жидкости, потребленной за определенный интервал времени.
Заведите дневник потребления воды.
Для создания записи в журнале потребления воды отправьте POST запрос на конечную точку dataPoints hydration-log . Все объемы преобразуются в миллилитры в формате API.
Запрос
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"
}
}
}Ответ
{
"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"
}
}
}
}Обновите журнал учета потребления воды.
Для обновления записи в журнале гидратации отправьте PATCH запрос на конечную точку hydration-log dataPoints , указав идентификатор точки данных.
Запрос
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
}
}
}Ответ
{
"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
}
}
}
}Удалить записи о потреблении воды
Для удаления одной или нескольких записей в журнале гидратации отправьте POST запрос методу batchDelete .
Запрос
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"
]
}Ответ
{
"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"
}
}
}
]
}
}Поля HydrationLog
Полный список полей и их описаний см. в справочной документации .
VolumeQuantity
Обозначает объем в миллилитрах. Подробнее см. VolumeQuantity .
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Значения VolumeUnit
Полный список поддерживаемых единиц измерения объема см. в разделе VolumeUnit . К распространенным значениям относятся MILLILITER , LITER , CUP_US и FLUID_OUNCE_US .
Руководящие принципы
- По возможности используйте идентифицированные продукты. API автоматически заполняет поля с информацией о пищевой ценности, что снижает количество ошибок и обеспечивает согласованность с базой данных продуктов питания.
- Журналы учета питания, созданные на основе анонимных данных о продуктах, нельзя обновить после создания. Если вам нужно исправить анонимный журнал учета питания, удалите его и создайте новый.
- В отличие от анонимных журналов учета пищевой ценности продуктов, записи об уровне гидратации полностью изменяемы и могут быть обновлены после создания с помощью запроса
PATCH. - В таблице
nutrientsвсе значения указаны в граммах. - В полях
energyиenergyFromFatв качестве единицы измерения используются килокалории (kcal). - API преобразует и сохраняет все объемы гидратации в миллилитрах. Необязательное поле
userProvidedUnitвVolumeQuantityиспользуется только для отображения информации на стороне клиента. - Прямые HTTP-запросы
DELETEк отдельным точкам данныхhydration-logвозвращают ошибку404 Not Found. Используйте методbatchDeleteдля удаления этих записей ресурсов. - В журналах учета потребления жидкости используется короткий интервал, где
startTimeиendTimeобозначают период времени, в течение которого была потреблена жидкость.