Jenis data nutrisi

Google Health API menyediakan jenis data untuk melacak asupan makanan dan informasi nutrisi pengguna. Jenis ini memungkinkan Anda mencatat makanan, mereferensikan makanan dari database makanan, dan melacak jumlah nutrisi.

Jenis data yang didukung

Tabel: Jenis data nutrisi Google Health API
Jenis data
  dataType
  filter parameter
Jenis
catatan
Operasi yang tersedia
Cakupan Dukungan webhook
Dukungan nol sebenarnya
Makanan
  food
  food
Makanan list, get .nutrition.readonly
.nutrition.writeonly
Unit Pengukuran Makanan
  food-measurement-unit
  food_measurement_unit
Makanan list, get .nutrition.readonly
.nutrition.writeonly
Catatan Gizi
  nutrition-log
  nutrition_log
Contoh list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Catatan Gizi

Catatan Gizi mewakili makanan yang dicatat oleh pengguna. Ada dua cara untuk membuat catatan gizi, bergantung pada jenis makanan:

  1. Makanan yang diidentifikasi: Tetapkan kolom food untuk mereferensikan resource Makanan yang ada. Kolom nutrients, energy, energyFromFat, totalCarbohydrate, totalFat, dan foodDisplayName diisi secara otomatis dari makanan yang direferensikan. Ini adalah metode yang disarankan.

  2. Makanan anonim: Tetapkan kolom foodDisplayName secara manual dan berikan nilai untuk nutrients, energy, energyFromFat, totalCarbohydrate, dan totalFat. Catatan gizi yang dibuat dari makanan anonim tidak dapat diedit setelah dibuat.

Membuat catatan gizi dengan makanan anonim

Untuk membuat entri log gizi, kirim permintaan POST ke endpoint titik data nutrition-log.

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 catatan gizi 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
    }
  }
}

Menghapus catatan gizi

Untuk menghapus satu atau beberapa entri catatan gizi, kirim permintaan POST ke endpoint 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 NutritionLog

Untuk mengetahui daftar lengkap kolom dan deskripsi, lihat Dokumentasi Referensi.

EnergyQuantity

Mewakili pengukuran energi, yang diukur dalam kilokalori (kcal). Untuk mengetahui detailnya, lihat EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Mewakili pengukuran berat, yang diukur dalam gram. Untuk mengetahui detailnya, lihat WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Mewakili nutrisi tertentu dan jumlahnya yang diukur. Untuk mengetahui detailnya, lihat NutrientQuantity.

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

Nilai nutrisi

Untuk mengetahui daftar lengkap jenis nutrisi yang didukung, lihat Nutrisi.

Porsi

Mewakili informasi porsi untuk entri log gizi. Untuk mengetahui detailnya, lihat Porsi.

{
  "amount": 1.5
}

Nilai MealType

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 titik data 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").

Mencantumkan unit pengukuran yang tersedia

Untuk mencantumkan unit pengukuran yang tersedia:

GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints
Authorization: Bearer access-token
Accept: application/json

Panduan

  • Gunakan makanan yang diidentifikasi jika memungkinkan. API akan mengisi kolom nutrisi secara otomatis, sehingga mengurangi error dan memastikan konsistensi dengan database makanan.
  • Catatan gizi yang dibuat dari makanan anonim tidak dapat diperbarui setelah dibuat. Jika Anda perlu mengoreksi catatan makanan anonim, hapus catatan tersebut dan buat yang baru.
  • Semua jumlah nutrisi dalam array nutrients menggunakan gram sebagai unit pengukuran.
  • Kolom energy dan energyFromFat menggunakan kilokalori (kcal) sebagai unit pengukuran.