Google Health API는 사용자의 음식 섭취량과 영양 정보를 추적하기 위한 데이터 유형을 제공합니다. 이러한 유형을 사용하면 식사를 기록하고, 음식 데이터베이스에서 음식을 참조하고, 영양소의 양을 추적할 수 있습니다.
지원되는 데이터 유형
데이터 유형dataType
filter 매개변수 |
기록 유형 |
사용 가능한 작업 |
범위 | 웹훅 지원 |
실제 0 지원 |
|---|---|---|---|---|---|
음식
foodfood
|
음식 | list, get | .nutrition.readonly.nutrition.writeonly |
||
음식 측정 단위
food-measurement-unitfood_measurement_unit
|
음식 | list, get | .nutrition.readonly.nutrition.writeonly |
||
영양 기록
nutrition-lognutrition_log
|
샘플 | list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
영양 기록
영양 기록은 사용자가 기록한 음식을 나타냅니다. 음식 유형에 따라 영양 기록을 만드는 방법에는 두 가지가 있습니다.
식별된 음식: 기존 음식 리소스를 참조하도록
food필드를 설정합니다.nutrients,energy,energyFromFat,totalCarbohydrate,totalFat,foodDisplayName필드는 참조된 음식에서 자동으로 채워집니다. 이 방법이 선호되는 방법입니다.익명의 음식:
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"
]
}NutritionLog 필드
필드 및 설명의 전체 목록은 참조 문서를 참고하세요.
EnergyQuantity
에너지 측정값을 나타내며 킬로칼로리 (kcal)로 측정됩니다. 자세한 내용은 EnergyQuantity를 참고하세요.
{
"kcal": 165
}
WeightQuantity
무게 측정값을 나타내며 그램으로 측정됩니다. 자세한 내용은 WeightQuantity를 참고하세요.
{
"grams": 27.3
}
NutrientQuantity
특정 영양소와 측정된 양을 나타냅니다. 자세한 내용은 NutrientQuantity를 참고하세요.
{
"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)를 측정 단위로 사용합니다.