Google Health API には、ユーザーの栄養と水分摂取を追跡するためのデータ型が用意されています。これらのタイプを使用すると、食事の記録、食品データベースからの食品の参照、栄養素の量の追跡、水分摂取量の記録を行うことができます。
サポートされるデータタイプ
| データ型 | 使用可能な オペレーション |
スコープ |
|---|---|---|
|
食べ物
|
list、get | .nutrition.readonly.nutrition.writeonly |
|
食品の測定単位
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
記録タイプ: 食事
対応デバイス
|
list、get | .nutrition.readonly.nutrition.writeonly |
|
水分摂取量の記録
dataType:
hydration-logfilter parameter: hydration_log
Record type(レコードタイプ): Session(セッション)
|
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .nutrition.readonly.nutrition.writeonly |
|
栄養摂取量の記録
dataType:
nutrition-logfilter parameter: nutrition_log
Record type(レコードタイプ): Session(セッション)
対応デバイス
|
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .nutrition.readonly.nutrition.writeonly |
栄養摂取量の記録
栄養ログは、ユーザーが記録した食品を表します。食品の種類に応じて、栄養ログを作成する方法は 2 つあります。
特定された食品:
foodフィールドを、既存の Food リソースを参照するように設定します。nutrients、energy、energyFromFat、totalCarbohydrate、totalFat、foodDisplayNameフィールドは、参照される食品から自動的に入力されます。こちらをおすすめします。匿名の食品:
foodDisplayNameフィールドを手動で設定し、nutrients、energy、energyFromFat、totalCarbohydrate、totalFatの値を指定します。匿名の食品から作成された栄養ログは、作成後に編集できません。
匿名の食品を含む栄養ログを作成する
栄養ログエントリを作成するには、nutrition-log
dataPoints エンドポイントに POST リクエストを送信します。
リクエスト
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"
}
}
}栄養摂取量の記録を削除する
1 つ以上の栄養摂取ログエントリを削除するには、削除するエントリのリソース名を指定して、batchDelete メソッドに POST リクエストを送信します。
リクエスト:
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 をご覧ください。
サービス提供
栄養ログエントリの 1 回分の情報を表します。詳しくは、Serving をご覧ください。
{
"amount": 1.5
}
食事の種類の値
サポートされている食事タイプの完全なリストについては、MealType をご覧ください。
食べ物
Food は、食品データベース内の食品アイテムを表す読み取り専用のデータ型です。list オペレーションと get オペレーションを使用して、利用可能な食品を閲覧し、その栄養情報を取得します。
食品を一覧表示する
食品を一覧表示するには、food dataPoints エンドポイントに GET リクエストを送信します。
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
水分摂取量の記録
水分摂取量の記録は、ユーザーが記録した水分摂取量を表します。食品データベースを参照して栄養素やエネルギーの摂取量を測定する食品とは異なり、水分補給のエントリは、特定の時間間隔で摂取された液体の特定の量を追跡します。
水分摂取量の記録を作成する
水分補給ログエントリを作成するには、hydration-log
dataPoints エンドポイントに POST リクエストを送信します。すべての体積量は、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"
}
}
}
}水分摂取量の記録を更新する
水分補給ログエントリを更新するには、データポイントの ID を指定して 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
}
}
}
}水分摂取量の記録を削除する
1 つ以上の水分補給ログエントリを削除するには、batchDelete メソッドに POST リクエストを送信します。
リクエスト
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 は、すべての水分摂取量をミリリットルに変換して保存します。
VolumeQuantityのオプションのuserProvidedUnitフィールドは、クライアントサイドのユーザー向け表示にのみ使用されます。 - 個々の
hydration-logデータポイントへの直接 HTTPDELETEリクエストは404 Not Foundを返します。これらのリソース エントリを削除するには、batchDeleteメソッドを使用します。 - 水分補給ログでは、
startTimeとendTimeで水分を摂取した期間を表す短い間隔を使用します。