Google Health API melacak tanda vital dan metrik kesehatan fisiologis pengguna, seperti detak jantung, saturasi oksigen, glukosa darah, suhu tubuh inti, dan turunan suhu tidur harian.
Pahami cara membaca dan meminta otorisasi pengguna untuk data vital di aplikasi Anda guna memberikan pengalaman terbaik bagi pengguna.
Jenis data yang didukung
API ini mendukung jenis data berikut untuk melacak tanda vital dan metrik kesehatan:
Jenis datadataType
Parameter filter |
Operasi yang tersedia |
Cakupan |
|---|---|---|
|
Glukosa Darah
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Suhu Tubuh Inti
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilitas Detak Jantung Harian
daily-heart-rate-variabilitydaily_heart_rate_variability
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Zona Detak Jantung Harian
daily-heart-rate-zonesdaily_heart_rate_zones
Jenis data: Harian
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Saturasi Oksigen Harian
daily-oxygen-saturationdaily_oxygen_saturation
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Laju Pernapasan Harian
daily-respiratory-ratedaily_respiratory_rate
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Detak Jantung saat Istirahat Harian
daily-resting-heart-ratedaily_resting_heart_rate
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Turunan Suhu Tidur Harian
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Elektrokardiogram (EKG)
electrocardiogramelectrocardiogram
Jenis data: Sesi
Perangkat yang kompatibel
|
list | .ecg.readonly |
Detak Jantung
heart-rateheart_rate
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilitas Detak Jantung
heart-rate-variabilityheart_rate_variability
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Notifikasi Irama Tidak Teratur
|
list | .irn.readonly |
Saturasi Oksigen
oxygen-saturationoxygen_saturation
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Ringkasan Tidur Laju Pernapasan
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Persyaratan hanya baca
Jenis data tanda vital fisiologis diisi oleh sinkronisasi perangkat atau entri log manual di aplikasi seluler atau aplikasi web Fitbit, dan bersifat hanya baca melalui REST API (tidak dapat ditulis atau diubah secara langsung melalui endpoint Google Health API).
Bagian berikut memberikan detail teknis dan format representasi REST untuk data vitalitas.
Detak jantung dan kesehatan jantung
API ini memberikan pengukuran intrahari yang mendetail dan ringkasan harian untuk metrik detak jantung:
- Detak Jantung (
heart-rate): Pengukuran detak jantung pada satu titik waktu yang berisi jumlahbeatsPerMinute, besertamotionContextpengguna (sepertiSEDENTARYatauACTIVE) dansensorLocation(sepertiWRISTatauCHEST). - Detak Jantung Saat Istirahat Harian (
daily-resting-heart-rate): Nilai detak jantung saat istirahat dasar harian. - Variabilitas Detak Jantung (
heart-rate-variabilitydandaily-heart-rate-variability): Mencatat root mean square dari perbedaan berurutan (rmssd) dalam milidetik untuk merepresentasikan HRV.
Contoh representasi REST
Untuk mengkueri pengukuran detak jantung, kirim permintaan GET ke endpoint list.
Contoh berikut menunjukkan satu titik data heart-rate dari
daftar yang ditampilkan:
Permintaan
GET https://health.googleapis.com/v4/users/me/dataTypes/heart-rate/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T08:05:00Z Authorization: Bearer access-token Accept: application/json
Respons
{
"dataPoints": [
{
"name": "users/me/dataTypes/heart-rate/dataPoints/hr-123456789",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"heartRate": {
"sampleTime": {
"physicalTime": "2026-04-20T08:00:00Z",
"utcOffset": "0s"
},
"beatsPerMinute": "72",
"metadata": {
"motionContext": "SEDENTARY",
"sensorLocation": "WRIST"
}
}
}
]
}Gula darah
Jenis data blood-glucose mewakili kadar gula darah pengguna. Titik glukosa darah menyimpan konsentrasi dalam miligram per desiliter (mg/dL),
konteks makanan atau waktu, dan info spesimen.
Contoh representasi REST
Untuk mengkueri pengukuran glukosa darah, kirim permintaan GET ke endpoint list. Contoh berikut menunjukkan satu titik data blood-glucose dari
daftar yang ditampilkan:
Permintaan
GET https://health.googleapis.com/v4/users/me/dataTypes/blood-glucose/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T09:00:00Z Authorization: Bearer access-token Accept: application/json
Respons
{
"dataPoints": [
{
"name": "users/me/dataTypes/blood-glucose/dataPoints/bg-987654321",
"dataSource": {
"recordingMethod": "MANUALLY_ENTERED"
},
"bloodGlucose": {
"sampleTime": {
"physicalTime": "2026-04-20T08:30:00Z",
"utcOffset": "-25200s"
},
"bloodGlucoseMilligramsPerDeciliter": 95.0,
"measurementSource": "SELF_MONITORING_BLOOD_GLUCOSE",
"mealType": "BREAKFAST",
"measurementTiming": "AFTER_MEAL",
"specimen": "CAPILLARY_BLOOD",
"notes": "Post-breakfast fingerstick reading"
}
}
]
}Saturasi oksigen (SpO2)
API melacak kadar oksigen menggunakan oxygen-saturation (nilai sampel intrahari)
dan daily-oxygen-saturation (statistik ringkasan harian). Konsentrasi
persen dinyatakan sebagai angka dari 0 hingga 100.
Contoh representasi REST
Untuk mengkueri pengukuran saturasi oksigen, kirim permintaan GET ke endpoint list. Contoh berikut menunjukkan satu titik data oxygen-saturation
dari daftar yang ditampilkan:
Permintaan
GET https://health.googleapis.com/v4/users/me/dataTypes/oxygen-saturation/dataPoints?startTime=2026-04-20T03:00:00Z&endTime=2026-04-20T03:05:00Z Authorization: Bearer access-token Accept: application/json
Respons
{
"dataPoints": [
{
"name": "users/me/dataTypes/oxygen-saturation/dataPoints/spo2-555555",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"oxygenSaturation": {
"sampleTime": {
"physicalTime": "2026-04-20T03:00:00Z",
"utcOffset": "0s"
},
"percentage": 98.2
}
}
]
}Suhu
Pelacakan suhu mencakup metrik suhu tubuh inti dan tren suhu kulit saat tidur:
- Suhu Tubuh Inti (
core-body-temperature): Mencatat suhu organ internal dalam Celsius, dengan lokasi pengukuran tertentu (sepertiARMPIT,EAR, atauFOREHEAD). - Turunan Suhu Tidur (
daily-sleep-temperature-derivations): Variasi suhu kulit frekuensi tinggi yang direkam semalaman.
Contoh representasi REST
Untuk mengkueri pengukuran suhu tubuh inti, kirim permintaan GET ke endpoint list. Contoh berikut menunjukkan satu titik data core-body-temperature
dari daftar yang ditampilkan:
Permintaan
GET https://health.googleapis.com/v4/users/me/dataTypes/core-body-temperature/dataPoints?startTime=2026-04-20T22:00:00Z&endTime=2026-04-20T23:00:00Z Authorization: Bearer access-token Accept: application/json
Respons
{
"dataPoints": [
{
"name": "users/me/dataTypes/core-body-temperature/dataPoints/cbt-666666",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"coreBodyTemperature": {
"sampleTime": {
"physicalTime": "2026-04-20T22:30:00Z",
"utcOffset": "-18000s"
},
"temperatureCelsius": 36.8,
"measurementLocation": "FOREHEAD"
}
}
]
}Elektrokardiogram (EKG) dan notifikasi
Untuk perangkat dengan sensor tingkat medis, API ini mengekspos jenis data kesehatan jantung tingkat lanjut:
- Elektrokardiogram (
electrocardiogram): Hasil sesi EKG satu sadapan, yang berisi klasifikasi (SINUS_RHYTHM,ATRIAL_FIBRILLATION,INCONCLUSIVE), detak jantung rata-rata, frekuensi pengambilan sampel, dan sampel voltase bentuk gelombang mentah. - Notifikasi Irama Tidak Teratur (
irregular-rhythm-notification): Peristiwa pemberitahuan kontekstual yang menunjukkan tanda-tanda potensi AFib yang terdeteksi selama pemantauan pasif.
Contoh representasi REST
Untuk mengkueri data sesi elektrokardiogram, kirim permintaan GET ke endpoint list. Contoh berikut menunjukkan satu titik data electrocardiogram
dari daftar yang ditampilkan:
Permintaan
GET https://health.googleapis.com/v4/users/me/dataTypes/electrocardiogram/dataPoints?startTime=2026-04-20T10:00:00Z&endTime=2026-04-20T10:05:00Z Authorization: Bearer access-token Accept: application/json
Respons
{
"dataPoints": [
{
"name": "users/me/dataTypes/electrocardiogram/dataPoints/ecg-777777",
"dataSource": {
"recordingMethod": "ACTIVELY_MEASURED"
},
"electrocardiogram": {
"interval": {
"startTime": "2026-04-20T10:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-04-20T10:00:30Z",
"endUtcOffset": "0s"
},
"resultClassification": "SINUS_RHYTHM",
"beatsPerMinuteAvg": "70",
"samplingFrequencyHertz": 250,
"millivoltsScalingFactor": 1000,
"leadNumber": 1,
"waveformSamples": [
-12, -8, 4, 18, 30, 42, 50, 48, 32, 10
]
}
}
]
}Cakupan dan otorisasi
Untuk menggunakan fitur data vital dan kesehatan jantung, aplikasi Anda harus meminta cakupan OAuth berikut:
- Baca:
https://www.googleapis.com/auth/googlehealth.ecg.readonly - Baca:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly - Menulis:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly - Baca:
https://www.googleapis.com/auth/googlehealth.irn.readonly
Panduan
Gunakan panduan ini saat mendesain fitur dengan metrik kesehatan dan tanda vital:
- Menangani konversi satuan: Nilai suhu diberikan dalam Celsius. Konversikan ke Fahrenheit dalam kode frontend Anda berdasarkan preferensi pengguna yang dilokalkan.
- Mengelola notifikasi webhook: Berlangganan notifikasi webhook untuk data penting guna memicu analisis backend segera setelah pengguna menyinkronkan pembacaan baru (seperti detak jantung atau glukosa darah).
- Menghormati sensitivitas data: Pastikan produk Anda menjelaskan dengan jelas kepada pengguna konteks klinis atau kesehatan untuk membaca tanda vital fisiologis frekuensi tinggi. Jelaskan alasan cakupan seperti
health_metrics_and_measurementsatauecgdiperlukan sebelum memanggil dialog otorisasi.