La API de Google Health hace un seguimiento de las métricas vitales y de salud fisiológica del usuario, como la frecuencia cardíaca, la saturación de oxígeno, la glucemia, la temperatura corporal central y las derivaciones diarias de la temperatura durante el sueño.
Comprende cómo leer y solicitar la autorización del usuario para los datos de métricas vitales en tu aplicación y, así, ofrecer la mejor experiencia a los usuarios.
Tipos de datos admitidos
La API admite los siguientes tipos de datos para hacer un seguimiento de los signos vitales y las métricas de salud:
Tipo de datosdataType
Parámetro filter |
Operaciones disponibles |
Alcance |
|---|---|---|
Glucemia
blood-glucoseblood_glucose
Tipo de registro: Muestra
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Temperatura corporal central
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilidad de la frecuencia cardíaca diaria
daily-heart-rate-variabilitydaily_heart_rate_variability
Tipo de registro: Diario
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Zonas de frecuencia cardíaca diarias
daily-heart-rate-zonesdaily_heart_rate_zones
Tipo de registro: Diario
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Saturación de oxígeno diaria
daily-oxygen-saturationdaily_oxygen_saturation
Tipo de registro: Diario
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Frecuencia respiratoria diaria
daily-respiratory-ratedaily_respiratory_rate
Tipo de registro: Diario
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Frecuencia cardíaca en reposo diaria
daily-resting-heart-ratedaily_resting_heart_rate
Tipo de registro: Diario
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Derivaciones diarias de la temperatura durante el sueño
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
Tipo de registro: Diario
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Electrocardiograma (ECG)
electrocardiogramelectrocardiogram
Tipo de registro: Sesión
Dispositivos compatibles
|
list | .ecg.readonly |
Frecuencia cardíaca
heart-rateheart_rate
Tipo de registro: Muestra
Dispositivos compatibles
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilidad de la frecuencia cardíaca
heart-rate-variabilityheart_rate_variability
Tipo de registro: Muestra
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Notificación de arritmias
irregular-rhythm-notificationirregular_rhythm_notification
Tipo de registro: Sesión
|
list | .irn.readonly |
Saturación de oxígeno
oxygen-saturationoxygen_saturation
Tipo de registro: Muestra
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Resumen de sueño de la frecuencia respiratoria
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
Tipo de registro: Muestra
Dispositivos compatibles
|
lista, reconciliar | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Requisitos de solo lectura
Los tipos de datos de los signos vitales fisiológicos se completan con la sincronización del dispositivo o las entradas de registro manuales en la app para dispositivos móviles o la app web de Fitbit, y son de solo lectura a través de la API de REST (no se pueden escribir ni modificar directamente a través de los extremos de la API de Google Health).
En las siguientes secciones, se proporcionan detalles técnicos y formatos de representación de REST para los datos de signos vitales.
Frecuencia cardíaca y salud cardíaca
La API proporciona mediciones intradía detalladas y resúmenes diarios acumulados para las métricas de frecuencia cardíaca:
- Frecuencia cardíaca (
heart-rate): Mediciones de la frecuencia cardíaca en un momento determinado que contienen un recuento debeatsPerMinute, junto con elmotionContextdel usuario (comoSEDENTARYoACTIVE) y elsensorLocation(comoWRISToCHEST). - Frecuencia cardíaca en reposo diaria (
daily-resting-heart-rate): Es un valor de referencia diario de la frecuencia cardíaca en reposo. - Variabilidad de la frecuencia cardíaca (
heart-rate-variabilityydaily-heart-rate-variability): Registra la raíz cuadrada media de las diferencias sucesivas (rmssd) en milisegundos para representar la VFC.
Ejemplo de representación de REST
Para consultar las mediciones de la frecuencia cardíaca, envía una solicitud GET al extremo list.
En el siguiente ejemplo, se muestra un solo punto de datos de heart-rate de la lista devuelta:
Solicitud
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
Respuesta
{
"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"
}
}
}
]
}Glucemia
El tipo de datos blood-glucose representa los niveles de azúcar en sangre del usuario. Los puntos de glucemia contienen la concentración en miligramos por decilitro (mg/dL), el contexto de la comida o el momento, y la información de la muestra.
Ejemplo de representación de REST
Para consultar las mediciones de glucemia, envía una solicitud GET al extremo list. En el siguiente ejemplo, se muestra un solo punto de datos de blood-glucose de la lista devuelta:
Solicitud
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
Respuesta
{
"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"
}
}
]
}Saturación de oxígeno (SpO2)
La API hace un seguimiento de los niveles de oxígeno con oxygen-saturation (valores de muestras intradía) y daily-oxygen-saturation (estadísticas de resumen diarias). El porcentaje de concentración se expresa como un número de 0 a 100.
Ejemplo de representación de REST
Para consultar las mediciones de saturación de oxígeno, envía una solicitud GET al extremo list. En el siguiente ejemplo, se muestra un solo punto de datos oxygen-saturation de la lista devuelta:
Solicitud
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
Respuesta
{
"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
}
}
]
}Temperatura
El monitoreo de la temperatura incluye métricas de la temperatura corporal central y tendencias de la temperatura cutánea durante la noche:
- Temperatura corporal central (
core-body-temperature): Registra la temperatura de los órganos internos en grados Celsius, con el sitio de medición específico (comoARMPIT,EARoFOREHEAD). - Derivaciones de la temperatura durante el sueño (
daily-sleep-temperature-derivations): Variaciones de la temperatura cutánea de alta frecuencia registradas durante la noche.
Ejemplo de representación de REST
Para consultar las mediciones de la temperatura corporal central, envía una solicitud GET al extremo list. En el siguiente ejemplo, se muestra un solo punto de datos core-body-temperature de la lista devuelta:
Solicitud
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
Respuesta
{
"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"
}
}
]
}Electrocardiograma (ECG) y notificaciones
En el caso de los dispositivos con sensores de grado médico, la API expone tipos de datos avanzados de salud cardíaca:
- Electrocardiograma (
electrocardiogram): Resultados de la sesión de ECG de un solo electrodo, que contienen una clasificación (SINUS_RHYTHM,ATRIAL_FIBRILLATION,INCONCLUSIVE), la frecuencia cardíaca promedio, la frecuencia de muestreo y las muestras de voltaje de la forma de onda sin procesar. - Notificación de arritmias (
irregular-rhythm-notification): Eventos de alerta contextuales que indican signos de posible FA detectados durante la supervisión pasiva.
Ejemplo de representación de REST
Para consultar los datos de una sesión de electrocardiograma, envía una solicitud GET al extremo list. En el siguiente ejemplo, se muestra un solo punto de datos electrocardiogram de la lista devuelta:
Solicitud
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
Respuesta
{
"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
]
}
}
]
}Alcances y autorización
Para usar la función de datos vitales y de salud cardíaca, tu app debe solicitar los siguientes permisos de OAuth:
- Lectura:
https://www.googleapis.com/auth/googlehealth.ecg.readonly - Lectura:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly - Escribir:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly - Lectura:
https://www.googleapis.com/auth/googlehealth.irn.readonly
Lineamientos
Sigue estos lineamientos cuando diseñes funciones con signos vitales y métricas de salud:
- Controla las conversiones de unidades: Los valores de temperatura se proporcionan en grados Celsius. Convierte a Fahrenheit en el código de tu frontend según las preferencias localizadas del usuario.
- Administrar notificaciones de webhook: Suscríbete a las alertas de webhook para las métricas vitales y activa el análisis de backend inmediatamente después de que un usuario sincronice lecturas nuevas (como la frecuencia cardíaca o la glucemia).
- Respeta la sensibilidad de los datos: Asegúrate de que tu producto explique claramente a los usuarios los contextos clínicos o de bienestar para leer los signos vitales fisiológicos de alta frecuencia. Explica por qué se requieren permisos como
health_metrics_and_measurementsoecgantes de llamar a las indicaciones de autorización.