Google Health API は、ユーザーの睡眠パターン(睡眠時間、睡眠の質、休息中の生理学的指標など)を追跡するデータ型を提供します。これらの指標は、アプリがリカバリー、睡眠衛生、長期的な健康状態の傾向に関する分析情報を提供するために役立ちます。
心拍変動(HRV)、血中酸素ウェルネス(SpO2)、呼吸数などの生理学的指標は、身体が安定した休息状態にある睡眠中に記録されます。これにより、API は、日中のストレス要因、身体活動、環境条件の変化の影響を受けずに、ユーザーの自律神経系と呼吸器系の健康状態のベースラインを把握できます。
これらのデータ型の違いを理解して、アプリケーションに適した指標を判断します。
サポートされるデータタイプ
API は、睡眠の測定に次のデータ型をサポートしています。
| データ型 | 利用可能な オペレーション |
スコープ |
|---|---|---|
|
1 日の心拍変動
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
レコードタイプ: 毎日
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
1 日の酸素飽和度
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
レコードタイプ: 毎日
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
1 日の呼吸数
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
レコードタイプ: 毎日
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
毎日の睡眠時の体温の推移
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
レコードタイプ: 毎日
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
心拍変動
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
レコードタイプ: サンプル
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
酸素飽和度
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
レコードタイプ: サンプル
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
呼吸数の睡眠のまとめ
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
レコードタイプ: サンプル
対応デバイス
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
睡眠
dataType:
sleepfilter parameter: sleep
レコードタイプ: セッション
対応デバイス
|
list、get、reconcile、create、update、batchDelete | .sleep.readonly.sleep.writeonly |
睡眠セッションと短い覚醒
睡眠セッション(Sleep)は、夜間の睡眠や昼寝など、個別の睡眠イベントを表します。睡眠ステージの重複しない詳細な内訳と、短時間覚醒と呼ばれる短い覚醒移行間隔が含まれます。
- 睡眠セッション(
Sleep): 主な休息の連続したタイムラインを分割する個別の睡眠イベント(LIGHT、DEEP、REM、AWAKEのステージ間隔)を表します。 - 短い目覚め(
shortAwakenings): 休息中に発生する短い目覚め。標準のAWAKEステージ間隔(重複しない連続した睡眠ステージの推移を分割)とは異なり、短時間の覚醒は、周囲の睡眠ステージと重複する可能性のある個別のセグメントです。睡眠の主なステージ構造を損なうことなく、睡眠中の落ち着きのなさや微小な覚醒を詳細に把握できます。 - 夜間の目覚め: 夜間の目覚め(水を飲むために起きるなど)は、デバイス上のセンサー フュージョン(加速度計、ジャイロスコープ、歩数)によって特定されます。Web API では、レベル
"wake"(従来の睡眠)または"awake"(睡眠ステージ)でマークされた間隔をフィルタすることで、夜間の覚醒を検出できます。
例
{
"name": "sleeps/12345",
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-21T06:30:00Z",
"sleepType": "STAGES",
"minutesToFallAsleep": 15,
"minutesAfterWakeup": 10,
"sleepStages": [
{
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-20T23:45:00Z",
"type": "LIGHT"
},
{
"startTime": "2026-04-20T23:45:00Z",
"endTime": "2026-04-21T01:15:00Z",
"type": "DEEP"
}
],
"shortAwakenings": [
{
"startTime": "2026-04-20T23:10:00Z",
"endTime": "2026-04-20T23:11:30Z",
"type": "AWAKE"
}
]
}
睡眠セッションを作成する
睡眠セッション エントリを作成するには、sleep データポイント エンドポイントに POST リクエストを送信します。レスポンスには、data-point-id を含む name フィールドが含まれます。このフィールドは、更新(パッチ)リクエストまたは削除リクエストで使用できます。
リクエスト
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"
}
]
}
}レスポンス
{
"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"
}
]
}
}
}睡眠効率と入眠までの時間の指標
API は、睡眠ステージと生理学的指標に加えて、睡眠の質と入眠を数値化する重要な指標を提供します。睡眠効率と入眠潜時は、ユーザーが寝床にいた合計時間に対してどれだけ効果的に休息できたかを表す標準的な臨床指標であり、睡眠衛生と休息度に関する分析情報を提供します。
睡眠効率スコア
睡眠効率は、寝床にいた合計時間に対する睡眠時間の割合として定義される標準的な指標です。API は、次の式を使用して睡眠効率を計算します。
Sleep Efficiency Score = round( (Total Minutes Asleep / Total Minutes In Bed) * 100 )
効率スコアは、睡眠レベル(ステージ)のパーティショニングの直前に計算されます。API レスポンスで返される合計睡眠時間(summary.minutesAsleep フィールド)は、睡眠レベルの計算後の最終結果を反映しています。
ユーザーまたは研究者が睡眠記録の開始時間または終了時間を手動で変更すると、API は睡眠効率スコアを再計算し、新しい就寝時間と起床時間の境界内で記録されたセンサーデータに基づいてステージ パーティションを調整します。
入眠までの時間
入眠までの時間とは、ユーザーが眠りにつこうとしたとき(「ベッドに入った」または「消灯」の開始時間)から入眠までの経過時間を測定したものです。
自動検出(auto_detect)を使用して自動的に生成されたログの場合、明示的インテントで入眠の意図が記録されていないため、minutesToFallAsleep はデフォルトで 0 になります。就寝開始時刻が手動で記録または編集されると(ログが manual に変換されると)、API は minutesAfterWakeup とともに minutesToFallAsleep を計算して入力します。
調査と手動ロギングのガイダンス
参加者が手動で就寝時間と起床時間を記録または調整した場合:
- ベッド内境界を更新すると、
timeInBed間隔が変更されます。 - 睡眠レベルとステージのパーティションが自動的に調整され、新しいウィンドウ内のセンサーデータが評価されます。
- 睡眠効率スコア、
minutesToFallAsleep、minutesAfterWakeupは、更新された時間枠に基づいて再計算されます。
毎日の睡眠時皮膚温の推定値
毎日の睡眠時体温の変動は、睡眠中のユーザーの皮膚温の変動を基準値と比較して測定します。このデータは通常、主な睡眠セッションの後に 1 日 1 回報告されます。
呼吸数
呼吸数は、1 分あたりの呼吸回数を測定します。睡眠中は、睡眠の質と潜在的な妨害要因をモニタリングするための重要な指標となります。この API は、呼吸数のサンプル(respiratory-rate)、1 日の概要(daily-respiratory-rate)、セッション レベルの睡眠の概要(respiratory-rate-sleep-summary)をサポートしています。
心拍変動(HRV)
心拍変動は、各心拍間の時間間隔の変動を測定します。自律神経系の状態を示す重要な指標です。睡眠中の HRV が高い場合は、一般的に回復とエナジースコアが高いことを示し、HRV が低い場合は、ストレスやオーバートレーニングを示している可能性があります。この API は、HRV のサンプル(heart-rate-variability)と 1 日の概要(daily-heart-rate-variability)をサポートしています。
血中酸素ウェルネス
SpO2 は、血液中の総ヘモグロビンに対する酸素飽和ヘモグロビンの割合を表します。睡眠中の血中酸素ウェルネスをモニタリングすることは、呼吸の乱れを検出し、ユーザーが夜間に十分な酸素レベルを維持できるようにするために不可欠です。この API は、血中酸素ウェルネスのサンプル(oxygen-saturation)と 1 日の概要(daily-oxygen-saturation)をサポートしています。
睡眠の質と回復を総合的に把握
各指標はそれぞれ特定の分析情報を提供しますが、相互に深く関連しており、全体としてユーザーのリカバリー状況を包括的に把握できます。睡眠ステージ(浅い睡眠、深い睡眠、レム睡眠)は休息の構造的な基盤を提供し、HRV や SpO2 などの生理学的マーカーは、体がその休息にどのように身体的に反応しているかを示します。たとえば、質の高い睡眠セッションで深い睡眠が最適に取れている場合、HRV が高くなることが多く、自律神経系の効果的な回復を示しています。
これらのデータと呼吸数や睡眠時の体温の推定値を組み合わせることで、アプリは睡眠を妨げる可能性のある要因を特定できます。呼吸数の急激な増加や睡眠時の体温の変動は、ユーザーが回復段階に費やした時間が短かった理由を説明するのに役立ちます。これらのデータタイプを同時に分析することで、睡眠衛生と長期的な健康指標の傾向を包括的に評価できます。
ガイドライン
アプリに睡眠指標を統合する際は、次のガイドラインに沿ってください。
- セッションの詳細: ユーザーの睡眠ステージ(浅い睡眠、深い睡眠、レム睡眠、覚醒)と短時間の覚醒を表示するには、
sleepデータ型をクエリします。 - 夜間の覚醒: 未加工のセンサー ストリームなしで夜間の覚醒イベントをトラッキングするには、
sleepステージ間隔を調べ、ステージタイプがAWAKE(または従来の睡眠ログの場合はwake)のアイテムをフィルタします。 - レイテンシと効率:
minutesToFallAsleepと睡眠効率の式を使用して、睡眠潜時の分析を行います。minutesToFallAsleepは、睡眠ログが手動で編集された場合、または明示的に記録された場合に設定されます。 - 生理学的モニタリング: 高度な健康状態のモニタリングでは、睡眠セッションのデータと、
respiratory-rate-sleep-summary、daily-sleep-temperature-derivations、daily-heart-rate-variability、daily-oxygen-saturationなどの生理学的指標やリカバリー指標を組み合わせます。 - 調整:
reconcileオペレーションを使用して、異なるデバイス(ウェアラブルやマットレス センサーなど)から重複する睡眠ログが 1 つの「メイン」睡眠記録に統合されるようにします。
深い睡眠の合計時間を計算する
特定の夜にユーザーが回復的な深い睡眠段階で過ごした合計時間を計算するには:
- 指定された期間の
sleepデータ型をクエリします。 - ステージのリストを反復処理し、
typeがDEEPである間隔を特定します。 - 各深い睡眠の間隔の継続時間(終了時間 - 開始時間)を計算し、それらを合計します。
この合計が、そのセッションの深い睡眠の合計時間になります。