Google Health API menyediakan jenis data untuk melacak nutrisi dan hidrasi pengguna. Jenis ini memungkinkan Anda mencatat makanan, mereferensikan makanan dari database makanan, melacak jumlah nutrisi, dan mencatat asupan cairan.
Jenis data yang didukung
| Jenis data | Operasi yang tersedia |
Cakupan |
|---|---|---|
|
Makanan
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Unit Pengukuran Makanan
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
Jenis data: Makanan
Perangkat yang kompatibel
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
Log Hidrasi
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Catatan Nutrisi
dataType:
nutrition-logfilter parameter: nutrition_log
Jenis data: Sesi
Perangkat yang kompatibel
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Catatan Nutrisi
Log Nutrisi mewakili makanan yang dicatat oleh pengguna. Ada dua cara untuk membuat log nutrisi, bergantung pada jenis makanan:
Makanan yang diidentifikasi: Tetapkan kolom
fooduntuk mereferensikan resource Makanan yang ada. Kolomnutrients,energy,energyFromFat,totalCarbohydrate,totalFat, danfoodDisplayNamediisi secara otomatis dari makanan yang direferensikan. Ini adalah metode yang direkomendasikan.Makanan anonim: Tetapkan kolom
foodDisplayNamesecara manual dan berikan nilai untuknutrients,energy,energyFromFat,totalCarbohydrate, dantotalFat. Log nutrisi yang dibuat dari makanan anonim tidak dapat diedit setelah dibuat.
Membuat log nutrisi dengan makanan anonim
Untuk membuat entri log nutrisi, kirim permintaan POST ke endpoint nutrition-log
dataPoints.
Permintaan
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
}
}
}Respons
{
"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"
}
}
}Membuat log nutrisi dengan makanan yang diidentifikasi
Untuk mencatat item makanan dari database makanan, tetapkan kolom food untuk mereferensikan
resource Makanan. API akan mengisi kolom nutrisi secara otomatis.
Permintaan
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"
}
}
}Respons
{
"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"
}
}
}Menghapus catatan gizi
Untuk menghapus satu atau beberapa entri log nutrisi, kirim permintaan POST ke
metode batchDelete dengan nama resource entri yang akan dihapus.
Permintaan:
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"
]
}Kolom catatan gizi
Untuk mengetahui daftar lengkap kolom dan deskripsi, lihat
NutritionLog.
Jumlah energi
Merepresentasikan pengukuran energi, yang diukur dalam kilokalori (kcal). Untuk
mengetahui detailnya, lihat EnergyQuantity.
{
"kcal": 165
}
Kuantitas berat
Mewakili pengukuran berat, yang diukur dalam gram. Untuk mengetahui detailnya,
lihat WeightQuantity.
{
"grams": 27.3
}
Jumlah nutrisi
Mewakili nutrisi tertentu dan jumlah terukurnya. Untuk detailnya, lihat
NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Nilai nutrisi
Untuk mengetahui daftar lengkap jenis nutrisi yang didukung, lihat
Nutrient.
Tayang
Menampilkan informasi porsi untuk entri log nutrisi. Untuk detailnya, lihat
Serving.
{
"amount": 1.5
}
Nilai jenis makanan
Untuk mengetahui daftar lengkap jenis makanan yang didukung, lihat
MealType.
Makanan
Makanan adalah jenis data hanya baca yang mewakili item makanan dalam database makanan.
Gunakan operasi list dan get untuk menjelajahi makanan yang tersedia dan mengambil
informasi nutrisinya.
Mencantumkan makanan
Untuk mencantumkan makanan, kirim permintaan GET ke endpoint dataPoints food:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Unit Pengukuran Makanan
Unit Pengukuran Makanan adalah jenis data hanya baca yang mewakili unit pengukuran yang digunakan untuk porsi makanan (misalnya, "cangkir", "sendok makan", atau "potong").
Menampilkan daftar unit pengukuran yang tersedia
Untuk mencantumkan satuan pengukuran yang tersedia:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
Catatan Hidrasi
Catatan Hidrasi mewakili cairan yang dicatat oleh pengguna. Tidak seperti makanan, yang merujuk ke database Makanan dan mengukur asupan nutrisi atau energi, entri hidrasi melacak volume cairan tertentu yang dikonsumsi selama interval waktu tertentu.
Membuat catatan hidrasi
Untuk membuat entri log hidrasi, kirim permintaan POST ke endpoint hydration-log
dataPoints. Semua jumlah volume dikonversi menjadi mililiter dalam
format API.
Permintaan
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"
}
}
}Respons
{
"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"
}
}
}
}Memperbarui catatan hidrasi
Untuk memperbarui entri log hidrasi, kirim permintaan PATCH ke endpoint hydration-log
dataPoints dengan ID titik data.
Permintaan
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
}
}
}Respons
{
"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
}
}
}
}Menghapus catatan hidrasi
Untuk menghapus satu atau beberapa entri log hidrasi, kirim permintaan POST ke
metode batchDelete.
Permintaan
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"
]
}Respons
{
"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"
}
}
}
]
}
}Kolom log hidrasi
Untuk mengetahui daftar lengkap kolom dan deskripsi, lihat
HydrationLog.
Jumlah volume
Menunjukkan pengukuran volume, yang diukur dalam mililiter. Untuk mengetahui detailnya,
lihat VolumeQuantity.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
Nilai unit volume
Untuk mengetahui daftar lengkap unit volume yang didukung, lihat
VolumeUnit. Nilai umum mencakup
MILLILITER, LITER, CUP_US, dan FLUID_OUNCE_US.
Panduan
- Gunakan makanan yang teridentifikasi jika memungkinkan. API mengisi kolom nutrisi secara otomatis, sehingga mengurangi kesalahan dan memastikan konsistensi dengan database makanan.
- Log nutrisi yang dibuat dari makanan anonim tidak dapat diperbarui setelah dibuat. Jika Anda perlu memperbaiki log makanan anonim, hapus dan buat yang baru.
- Tidak seperti log nutrisi makanan anonim, entri log hidrasi sepenuhnya
dapat diubah dan dapat diperbarui setelah dibuat menggunakan permintaan
PATCH. - Semua jumlah nutrisi dalam array
nutrientsmenggunakan gram sebagai unit pengukuran. - Kolom
energydanenergyFromFatmenggunakan kilokalori (kcal) sebagai satuan ukur. - API mengonversi dan menyimpan semua kuantitas hidrasi dalam mililiter. Kolom
userProvidedUnitopsional diVolumeQuantityhanya digunakan untuk tampilan sisi klien yang ditampilkan kepada pengguna. - Permintaan
DELETEHTTP langsung ke setiap titik datahydration-logakan menampilkan404 Not Found. Gunakan metodebatchDeleteuntuk menghapus entri resource ini. - Log hidrasi menggunakan interval singkat dengan
startTimedanendTimeyang mewakili jangka waktu konsumsi cairan.