La API de Google Health proporciona tipos de datos que hacen un seguimiento de los patrones de sueño de un usuario, incluidas la duración, la calidad y las métricas fisiológicas durante el descanso. Estas métricas ayudan a las aplicaciones a proporcionar estadísticas sobre la recuperación, la higiene del sueño y las tendencias de salud a largo plazo.
Las métricas fisiológicas, como la variabilidad de la frecuencia cardíaca (VFC), la saturación de oxígeno (SpO2) y la frecuencia respiratoria, se registran específicamente durante el sueño, ya que el cuerpo se encuentra en un estado estable y de reposo. Esto permite que la API capture un modelo de referencia de la salud autónoma y respiratoria del usuario sin la interferencia de los factores de estrés diurnos, la actividad física o las condiciones ambientales variables.
Comprende las diferencias entre estos tipos de datos para determinar qué métricas se adaptan a tu aplicación.
Tipos de datos admitidos
La API admite los siguientes tipos de datos para medir el sueño:
| Tipo de datos | Operaciones de disponibles |
Alcance |
|---|---|---|
|
Variabilidad de la frecuencia cardíaca diaria
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
Tipo de registro: Diario
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Saturación de oxígeno diaria
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
Tipo de registro: Diario
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Frecuencia respiratoria diaria
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
Tipo de registro: Diario
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Daily Sleep Temperature Derivations
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
Tipo de registro: Diario
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Variabilidad de la frecuencia cardíaca
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
Tipo de registro: Muestra
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Saturación de oxígeno
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
Tipo de registro: Muestra
Resolución de almacenamiento: 1 minuto
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Resumen de sueño de la frecuencia respiratoria
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
Tipo de registro: Muestra
Dispositivos compatibles
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Sueño
dataType:
sleepfilter parameter: sleep
Tipo de registro: Sesión
Dispositivos compatibles
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
Sesiones de sueño y despertares breves
Una sesión de sueño (Sleep) representa un evento de sueño discreto, como una sola noche de sueño o una siesta durante el día. Incluye un desglose detallado de las fases del sueño que no se superponen, junto con intervalos breves de transición de vigilia conocidos como despertares breves.
- Sesión de sueño (
Sleep): Representa un evento de sueño discreto (intervalos de etapasLIGHT,DEEP,REMyAWAKE) que dividen la línea de tiempo contigua del descanso principal. - Despertares breves (
shortAwakenings): Transiciones breves de vigilia o despertares que ocurren durante el descanso. A diferencia de los intervalos de faseAWAKEestándar (que dividen la progresión de las fases del sueño contiguas que no se superponen), los despertares breves son segmentos distintos que pueden superponerse con las fases del sueño circundantes. Proporcionan visibilidad detallada de la inquietud y los microdespertares sin interrumpir la estructura principal de las fases del sueño. - Despertares nocturnos: Los despertares nocturnos (como levantarse para tomar agua) se identifican a través de la fusión de sensores integrados en el dispositivo (acelerómetro, giroscopio y recuento de pasos). Las aplicaciones pueden detectar despertares nocturnos filtrando
stagespor intervalos contype: "AWAKE"(que se usa en los registros de sueño deCLASSICySTAGES) o inspeccionandooutOfBedSegments.
Ejemplo
{
"name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
"sleep": {
"interval": {
"startTime": "2026-04-20T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-04-21T06:30:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-04-20T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-04-20T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-04-20T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-04-21T01:15:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
}
],
"shortAwakenings": [
{
"startTime": "2026-04-20T23:10:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-04-20T23:11:30Z",
"endUtcOffset": "-14400s",
"type": "AWAKE"
}
],
"summary": {
"minutesInSleepPeriod": "480",
"minutesAsleep": "455",
"minutesAwake": "25",
"minutesToFallAsleep": "15",
"minutesAfterWakeUp": "10"
}
}
}
Cómo crear una sesión de sueño
Para crear una entrada de sesión de sueño, envía una solicitud POST al extremo de datos
sleep. La respuesta incluye el campo name que contiene el
data-point-id, que se puede usar en una solicitud
Update (Patch) o
Delete.
Solicitud
POST https://health.googleapis.com/v4/users/me/dataTypes/sleep/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}Respuesta
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}
}Métricas de eficiencia y latencia del sueño
Además de las fases del sueño y las métricas fisiológicas, la API proporciona métricas clave que cuantifican la calidad del sueño y el inicio del sueño. La eficiencia del sueño y la latencia de inicio del sueño son métricas clínicas estándar que describen la eficacia con la que un usuario descansa en relación con el tiempo total que pasa en la cama, lo que proporciona información sobre la higiene del sueño y el descanso.
Puntuación de eficiencia del sueño
La eficiencia del sueño es una métrica estándar que se define como la proporción de tiempo que se pasa durmiendo en relación con el tiempo total que se pasa en la cama. La API calcula la eficiencia del sueño con la siguiente fórmula:
Sleep Efficiency Score = round( (Total Minutes Asleep / Total Minutes In Bed) * 100 )
La puntuación de eficiencia se calcula justo antes de la partición de los niveles de sueño (fases). La cantidad total de minutos de sueño que se muestra en la respuesta de la API (en el campo summary.minutesAsleep) refleja el resultado final después de que se calculan los niveles de sueño.
Si un usuario o investigador modifica manualmente la hora de inicio o finalización de un registro de sueño, la API vuelve a calcular la puntuación de eficiencia del sueño y ajusta las particiones de las etapas según los datos de sensores registrados dentro del nuevo límite de hora de acostarse y de despertarse.
Latencia del inicio del sueño
La latencia de inicio del sueño mide el tiempo transcurrido desde que un usuario tiene la intención de quedarse dormido (el inicio del tiempo "en la cama" o "luces apagadas") hasta que se produce el inicio del sueño.
En el caso de los registros generados automáticamente (metadata.manuallyEdited es false),
summary.minutesToFallAsleep se establece de forma predeterminada en "0" porque no se registró ningún intento explícito de
quedarse dormido. Cuando las horas de inicio en la cama se registran o editan de forma manual (metadata.manuallyEdited es true), la API calcula y propaga summary.minutesToFallAsleep junto con summary.minutesAfterWakeUp.
Orientación para la investigación y el registro manual
Cuando los participantes registran o ajustan manualmente las horas de inicio y finalización en la cama, ocurre lo siguiente:
- Actualizar los límites de tiempo en la cama cambia el
interval(y elsummary.minutesInSleepPeriod) del sueño. - Los niveles de sueño y las particiones de las fases se ajustan automáticamente para evaluar los datos de los sensores dentro de la nueva ventana.
- La puntuación de eficiencia del sueño,
summary.minutesToFallAsleepysummary.minutesAfterWakeUpse vuelven a calcular en función del período actualizado.
Desviaciones diarias de la temperatura durante el sueño
Las derivaciones de la temperatura durante el sueño diaria miden la variación de la temperatura cutánea de un usuario durante el sueño en comparación con su valor de referencia. Por lo general, estos datos se informan una vez al día después de una sesión de sueño importante.
Frecuencia respiratoria
La frecuencia respiratoria mide las respiraciones por minuto del usuario. Durante el sueño, es una
métrica clave para supervisar la calidad del sueño y las posibles alteraciones. La API admite la frecuencia respiratoria de muestra (respiratory-rate), los resúmenes diarios (daily-respiratory-rate) y los resúmenes de sueño a nivel de la sesión (respiratory-rate-sleep-summary).
Variabilidad de la frecuencia cardíaca (VFC)
La VFC mide la variación de tiempo entre cada latido. Es un indicador clave
del estado del sistema nervioso autónomo. Una VFC alta durante el sueño
suele indicar una mejor recuperación y preparación, mientras que una VFC baja puede indicar
estrés o sobreentrenamiento. La API admite muestras de VFC (heart-rate-variability) y resúmenes diarios (daily-heart-rate-variability).
Saturación de oxígeno
La saturación de oxígeno en sangre (SpO2) representa el porcentaje de hemoglobina saturada de oxígeno en relación con la hemoglobina total en la sangre. La supervisión de la SpO2 durante
el sueño ayuda a detectar posibles alteraciones de la respiración y confirma si el
usuario mantiene niveles de oxígeno adecuados durante toda la noche. La API admite muestras de SpO2 (oxygen-saturation) y resúmenes diarios (daily-oxygen-saturation).
Cuando consultas oxygen-saturation a nivel de minuto, la API de Google Health devuelve
solo los datos validados y filtra las mediciones no válidas causadas por
el movimiento del brazo, un ajuste flojo en la muñeca o una confianza baja del sensor (menos del 50%), así como
las lecturas adyacentes al ruido de movimiento. Debido a que se excluyen los minutos no válidos,
la cobertura a nivel de minutos puede ser escasa y se esperan brechas en las marcas de tiempo. Tanto oxygen-saturation como daily-oxygen-saturation se basan en las mismas lecturas validadas. Para obtener detalles sobre los criterios de validación, consulta Filtrado de SpO2 por minuto y validez de los datos.
Vista integral de la salud del sueño y la recuperación
Si bien cada métrica proporciona estadísticas específicas, están profundamente interrelacionadas y, en conjunto, ofrecen una vista integral de la recuperación de un usuario. Las fases del sueño (ligero, profundo y REM) proporcionan la base estructural del descanso, mientras que los marcadores fisiológicos, como la VFC y la SpO2, indican cómo responde físicamente el cuerpo a ese descanso. Por ejemplo, una sesión de sueño de alta calidad con un sueño profundo óptimo suele correlacionarse con una VFC más alta, lo que indica una recuperación eficaz del sistema nervioso autónomo.
Combinar estos datos con las derivaciones de la frecuencia respiratoria y la temperatura durante el sueño permite que las aplicaciones identifiquen posibles alteraciones. Un aumento repentino de la frecuencia respiratoria o una desviación de la temperatura durante el sueño pueden contextualizar por qué un usuario podría haber pasado menos tiempo en las fases de recuperación. Si analizan estos tipos de datos en conjunto, los desarrolladores pueden proporcionar una evaluación integral de la higiene del sueño y las tendencias de salud a largo plazo.
Lineamientos
Cuando integres las métricas de sueño en tu app, sigue estos lineamientos:
- Detalles de la sesión: Para mostrar las fases del sueño de un usuario (ligero, profundo, REM, despierto) y los despertares breves, consulta el tipo de datos
sleep. - Despertares nocturnos: Para hacer un seguimiento de los eventos de despertar a mitad de la noche sin flujos de sensores sin procesar, inspecciona los intervalos de la etapa
sleepy filtra los elementos contype: "AWAKE"(para los registros de sueñoSTAGESyCLASSIC) o inspeccionaoutOfBedSegments. - Latencia y eficiencia: Usa
summary.minutesToFallAsleepy la fórmula de eficiencia del sueño para el análisis de la latencia del sueño. Ten en cuenta quesummary.minutesToFallAsleepse propaga cuando los registros de sueño se editan manualmente (metadata.manuallyEditedestrue) o se registran de forma explícita. - Supervisión fisiológica: Para una supervisión avanzada de la salud, combina los datos de la sesión de sueño con métricas fisiológicas y de recuperación, como
respiratory-rate-sleep-summary,daily-sleep-temperature-derivations,daily-heart-rate-variabilityydaily-oxygen-saturation. - Conciliación: Usa la operación
reconcilepara asegurarte de que los registros de sueño superpuestos de diferentes dispositivos (por ejemplo, un wearable y un sensor de colchón) se combinen en un único registro de sueño "principal".
Calcular el tiempo total en sueño profundo
Para calcular el tiempo total que un usuario pasó en una fase de sueño profundo reparador durante una noche específica, haz lo siguiente:
- Consulta el tipo de datos
sleeppara el período especificado. - Itera la lista de etapas y, luego, identifica los intervalos en los que
typeesDEEP. - Calcula la duración (hora de finalización - hora de inicio) de cada intervalo de sueño profundo y súmalas.
La suma resultante proporciona la duración física total del sueño profundo para esa sesión.