Sviluppare esperienze di parametri vitali e metriche di salute con l'API Google Health

L'API Google Health monitora i parametri vitali e le metriche di salute fisiologica dell'utente, come battito cardiaco, saturazione di ossigeno, glicemia, temperatura corporea centrale e derivazioni della temperatura del sonno giornaliera.

Scopri come leggere e richiedere l'autorizzazione utente per i dati di Vitals nella tua applicazione per offrire la migliore esperienza ai tuoi utenti.

Tipi di dati supportati

L'API supporta i seguenti tipi di dati per il monitoraggio dei parametri vitali e delle metriche sanitarie:

Tabella: tipi di dati Vitals dell'API Google Health
Tipo di dati
  dataType Parametro
  filter
Operazioni
disponibili
Ambito
Glicemia
blood-glucose
blood_glucose
Tipo di record: Esempio
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Temperatura corporea interna
core-body-temperature
core_body_temperature
Tipo di record: Esempio
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilità del battito cardiaco giornaliera
daily-heart-rate-variability
daily_heart_rate_variability
Tipo di record: giornaliero

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Zone battito cardiaco giornaliere
daily-heart-rate-zones
daily_heart_rate_zones
Tipo di record: giornaliero
list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Saturazione di ossigeno giornaliera
daily-oxygen-saturation
daily_oxygen_saturation
Tipo di record: giornaliero

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Frequenza respiratoria giornaliera
daily-respiratory-rate
daily_respiratory_rate
Tipo di record: giornaliero

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Battito cardiaco a riposo giornaliero
daily-resting-heart-rate
daily_resting_heart_rate
Tipo di record: giornaliero

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Derivazioni della temperatura del sonno giornaliera
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations
Tipo di record: giornaliero

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Elettrocardiogramma (ECG)
electrocardiogram
electrocardiogram
Tipo di record: Sessione

Dispositivi compatibili

list .ecg.readonly
Battito cardiaco
heart-rate
heart_rate
Tipo di record: Esempio

Dispositivi compatibili

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilità del battito cardiaco
heart-rate-variability
heart_rate_variability
Tipo di record: Esempio

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Notifica di ritmo irregolare
irregular-rhythm-notification
irregular_rhythm_notification
Tipo di record: Sessione
list .irn.readonly
Saturazione di ossigeno
oxygen-saturation
oxygen_saturation
Tipo di record: Esempio

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Riepilogo del sonno della frequenza respiratoria
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary
Tipo di record: Esempio

Dispositivi compatibili

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Requisiti di sola lettura

I tipi di dati dei parametri vitali fisiologici vengono compilati tramite la sincronizzazione del dispositivo o le voci di log manuali nell'app mobile o nell'app web Fitbit e sono di sola lettura tramite l'API REST (non possono essere scritti o modificati direttamente tramite gli endpoint API di Google Health).

Le seguenti sezioni forniscono dettagli tecnici e formati di rappresentazione REST per i dati vitali.

Battito cardiaco e salute del cuore

L'API fornisce misurazioni intraday dettagliate e riepiloghi giornalieri per le metriche della frequenza cardiaca:

  • Battito cardiaco (heart-rate): misurazioni del battito cardiaco in un determinato momento contenenti un conteggio beatsPerMinute, insieme al motionContext dell'utente (ad esempio SEDENTARY o ACTIVE) e al sensorLocation (ad esempio WRIST o CHEST).
  • Battito cardiaco a riposo giornaliero (daily-resting-heart-rate): un valore di base giornaliero del battito cardiaco a riposo.
  • Variabilità del battito cardiaco (heart-rate-variability e daily-heart-rate-variability): registra la radice quadrata della media delle differenze successive (rmssd) in millisecondi per rappresentare l'HRV.

Esempio di rappresentazione REST

Per eseguire query sulle misurazioni della frequenza cardiaca, invia una richiesta GET all'endpoint list.

.

L'esempio seguente mostra un singolo punto dati heart-rate dell'elenco restituito:

Richiesta

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

Risposta

{
  "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"
        }
      }
    }
  ]
}

Glicemia

Il tipo di dati blood-glucose rappresenta i livelli di glicemia dell'utente. I punti di glucosio nel sangue contengono la concentrazione in milligrammi per decilitro (mg/dL), il contesto del pasto o dell'orario e le informazioni sul campione.

Esempio di rappresentazione REST

Per eseguire query sulle misurazioni della glicemia, invia una richiesta GET all'endpoint list. L'esempio seguente mostra un singolo punto dati blood-glucose dell'elenco restituito:

Richiesta

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

Risposta

{
  "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"
      }
    }
  ]
}

Saturazione di ossigeno (SpO2)

L'API monitora i livelli di ossigeno utilizzando oxygen-saturation (valori campione infragiornalieri) e daily-oxygen-saturation (statistiche riepilogative giornaliere). La concentrazione percentuale è espressa come un numero compreso tra 0 e 100.

Esempio di rappresentazione REST

Per eseguire query sulle misurazioni della saturazione di ossigeno, invia una richiesta GET all'endpoint list. Il seguente esempio mostra un singolo punto dati oxygen-saturation dell'elenco restituito:

Richiesta

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

Risposta

{
  "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

Il monitoraggio della temperatura include le metriche della temperatura corporea interna e le tendenze della temperatura cutanea durante la notte:

  • Temperatura corporea interna (core-body-temperature): registra la temperatura degli organi interni in gradi Celsius, con il sito di misurazione specifico (ad esempio ARMPIT, EAR o FOREHEAD).
  • Derivazioni della temperatura del sonno (daily-sleep-temperature-derivations): Variazioni della temperatura cutanea ad alta frequenza registrate durante la notte.

Esempio di rappresentazione REST

Per eseguire query sulle misurazioni della temperatura corporea centrale, invia una richiesta GET all'endpoint list. Il seguente esempio mostra un singolo punto dati core-body-temperature dell'elenco restituito:

Richiesta

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

Risposta

{
  "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"
      }
    }
  ]
}

Elettrocardiogramma (ECG) e notifiche

Per i dispositivi con sensori di grado medico, l'API espone tipi di dati avanzati sulla salute del cuore:

  • Elettrocardiogramma (electrocardiogram): risultati della sessione ECG a singola derivazione, contenenti una classificazione (SINUS_RHYTHM, ATRIAL_FIBRILLATION, INCONCLUSIVE), frequenza cardiaca media, frequenza di campionamento e campioni di tensione della forma d'onda grezza.
  • Notifica di ritmo irregolare (irregular-rhythm-notification): Eventi di avviso contestuali che indicano segni di potenziale FA rilevati durante il monitoraggio passivo.

Esempio di rappresentazione REST

Per eseguire query sui dati della sessione di elettrocardiogramma, invia una richiesta GET all'endpoint list. Il seguente esempio mostra un singolo punto dati electrocardiogram dell'elenco restituito:

Richiesta

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

Risposta

{
  "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
        ]
      }
    }
  ]
}

Ambiti e autorizzazione

Per utilizzare la funzionalità dati su parametri vitali e salute del cuore, la tua app deve richiedere i seguenti ambiti OAuth:

  • Leggi: https://www.googleapis.com/auth/googlehealth.ecg.readonly
  • Leggi: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
  • Scrittura: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
  • Leggi: https://www.googleapis.com/auth/googlehealth.irn.readonly

Linee guida

Utilizza queste linee guida quando progetti funzionalità con parametri vitali e metriche di salute:

  • Gestisci le conversioni di unità: i valori di temperatura sono forniti in gradi Celsius. Converti in gradi Fahrenheit nel codice frontend in base alle preferenze localizzate dell'utente.
  • Gestisci le notifiche webhook: iscriviti agli avvisi webhook per i parametri vitali per attivare l'analisi di backend immediatamente dopo che un utente sincronizza nuove letture (ad esempio frequenza cardiaca o glicemia).
  • Rispetta la sensibilità dei dati: assicurati che il tuo prodotto spieghi chiaramente agli utenti i contesti clinici o di benessere per la lettura dei parametri fisiologici ad alta frequenza. Spiega perché sono necessari ambiti come health_metrics_and_measurements o ecg prima di chiamare i prompt di autorizzazione.