Google Health API предоставляет типы данных для отслеживания питания и потребления воды. Эти типы позволяют регистрировать приемы пищи, ссылаться на продукты из базы данных, отслеживать количество питательных веществ и регистрировать потребление жидкости.
Поддерживаемые типы данных
| Тип данных | Доступные операции |
Область действия |
|---|---|---|
|
Еда
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Единица измерения количества еды
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
Тип записи: еда.
Совместимые устройства
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Журнал потребления жидкости
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Журнал питания
dataType:
nutrition-logfilter parameter: nutrition_log
Тип записи: сеанс.
Совместимые устройства
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Журнал питания
Журнал питания содержит информацию о еде, которую пользователь регистрирует в приложении. Существует два способа создания записи о питании в зависимости от типа пищи:
Распознанное блюдо. Задайте поле
food, чтобы указать существующий ресурс 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 для ссылки на ресурс 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,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
}
}
}Ответ
{
"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"
}
}
}Удалить журналы питания
Чтобы удалить одну или несколько записей в журнале питания, отправьте запрос 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"
]
}Поля журнала питания
Полный список полей и их описания приведены в статье NutritionLog.
Количество энергии
Представляет измерение энергии в килокалориях (kcal). Подробную информацию можно найти в статье EnergyQuantity.
{
"kcal": 165
}
Вес
Представляет измерение веса в граммах. Подробную информацию можно найти в статье WeightQuantity.
{
"grams": 27.3
}
Количество питательного вещества
Представляет определенное питательное вещество и его измеренное количество. Подробную информацию можно найти в статье NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Значения питательных веществ
Полный список поддерживаемых типов питательных веществ можно найти в разделе Nutrient.
Активно
Представляет информацию о порции для записи в журнале питания. Подробную информацию можно найти в статье Serving.
{
"amount": 1.5
}
Значения типа приема пищи
Полный список поддерживаемых типов блюд можно найти в разделе MealType.
Еда
Food – это тип данных только для чтения, который представляет продукт питания в базе данных продуктов.
Используйте операции 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 к конечной точке hydration-log
dataPoints. Все объемы в формате 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.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Значения единиц объема
Полный список поддерживаемых единиц объема приведен в разделе 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представляют период времени, в течение которого была выпита жидкость.