Oura API V2: エンドポイントとデータの詳細解説

Oura ring

Ouraリングは、睡眠、活動、健康状態を追跡する革新的なデバイスです。Oura APIのバージョン2(V2)は、開発者がこれらのデータを活用し、健康管理アプリケーションや研究に役立てることを可能にします。本記事では、Oura API V2で利用可能な13個のエンドポイントと、それぞれから取得できる具体的なデータについて解説します。

エンドポイント一覧

まず、Oura ringのAPI(V2)にアクセスするとこちらの表に記載している13個のエンドポイントを使用することができます。
(※下記の表に記載したものは2023年12月時点のものなので、修正されたり、追加削除されている場合があります。最新の情報は公式ドキュメントに載っているのでそちらを参照ください。)

各エンドポイントで得られる詳細データ

日々の活動ルート(daily_activity)

データの種類説明データの中身
id各活動データに割り当てられたユニークなID。これにより、データの特定と追跡が可能です2-5daccc095220cc5493a4e9c2b681ca941e(文字列)
class_5_min5分間隔で分類された活動レベル。たとえば「静止」、「歩行」などの活動状態を示します。stationary(文字列)
score日々の活動に基づく総合的なスコア。活動の量や質を数値で表したものです。85
active_calories活動によって消費されたカロリーの量。運動や身体活動によるエネルギー消費を示します。520 kcal
average_met_minutes1日の平均代謝当量分(MET分)。身体活動の強度に基づくエネルギー消費量です。600 MET分
contributors活動スコアに影響を与える要因の内訳。各要因(日々の目標達成、1時間ごとの移動など)がスコアにどれだけ貢献しているかを示します。
equivalent_walking_distance歩行に相当する距離。歩いたときと同じエネルギーを消費する距離を示します。8000メートル
high_activity_met_minutes高強度活動による代謝当量分。運動などの高強度の活動によるエネルギー消費を示します。300 MET分
high_activity_time高強度活動の総時間。高強度の運動や活動を行った合計時間です。60分
inactivity_alerts1日の不活動アラートの回数。長時間動かなかったときに発生するアラートの回数です。3回
low_activity_met_minutes低強度活動による代謝当量分。軽い活動によるエネルギー消費を示します。100 MET分(整数、MET分)
low_activity_time低強度活動の総時間。軽い運動や活動を行った合計時間です。120分
medium_activity_met_minutes中強度活動による代謝当量分。中程度の活動によるエネルギー消費を示します。200 MET分
medium_activity_time中強度活動の総時間。中程度の運動や活動を行った合計時間です。90分
met1日の平均代謝当量。1日を通しての平均的な活動強度を示します。1.5 MET
meters_to_target目標までの距離。設定した目標(例えば歩行距離)に対する現在の進捗を示します。2000メートル
non_wear_timeリングを装着していなかった時間。リングをつけていない時間の長さです。180分
resting_time安静時の総時間。1日のうち安静に過ごした時間の合計です。500分
sedentary_met_minutes座っている時間の代謝当量分。座位や静止状態でのエネルギー消費を示します。400 MET分
sedentary_time座っている総時間。座って過ごした時間の合計です。28800秒
steps歩数。1日の総歩数を示します。10000歩
target_calories目標カロリー。1日のカロリー消費目標量です。2000 kcal
target_meters目標メートル数。1日の歩行距離目標です。10000メートル
total_calories1日の総カロリー消費量。食事以外の全活動による総エネルギー消費量です。2500 kcal
dayデータの日付。対象となる日付です。2023-12-05(文字列、日付)
timestampデータのタイムスタンプ。データが記録された正確な時刻です。2023-12-05T14:15:22Z(文字列、ISO 8601形式)

日々の準備度ルート(daily_readiness)

データの種類説明データの中身
id各準備度データに割り当てられたユニークなID。データの特定と追跡に使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
contributors各要素が日々の準備度にどれだけ寄与しているかを示します。
activity_balance累積活動バランスの寄与度。1日の活動量と種類がどれだけ準備度に影響しているかを示します。80
body_temperature体温の寄与度。基準体温からの偏差がどれだけ準備度に影響しているかを示します。70
hrv_balance心拍変動の寄与度。HRVのバランスがどれだけ準備度に影響しているかを示します。75
previous_day_activity前日の活動の寄与度。前日の身体活動が準備度にどれだけ影響しているかを示します。65
previous_night前夜の睡眠の寄与度。前夜の睡眠の質が準備度にどれだけ影響しているかを示します。85
recovery_index回復指数の寄与度。身体の回復能力が準備度にどれだけ影響しているかを示します。90
resting_heart_rate安静心拍数の寄与度。安静時の心拍数が準備度にどれだけ影響しているかを示します。60
sleep_balance睡眠バランスの寄与度。長期的な睡眠のバランスが準備度にどれだけ影響しているかを示します。88
dayデータが記録された日付。日付形式で示されます。2019-08-24(YYYY-MM-DD形式の日付)。
scoreその日の全体的な準備度を示すスコア。高いスコアは良い準備状態を意味します。82
temperature_deviation標準体温からの偏差。体温が通常より高いか低いかを示します。-0.3°C(摂氏度)
temperature_trend_deviation体温の長期的な傾向からの偏差。時間の経過とともに体温がどのように変化しているかを示します。0.1°C(摂氏度)
timestampデータのタイムスタンプ。データが記録された正確な時刻です。2019-08-24T14:15:22Z(文字列、ISO 8601形式)

日々の睡眠ルート(daily_sleep)

データの種類説明データの中身
id各睡眠データに割り当てられたユニークなID。データの特定と追跡に使用されます。2-5daccc095220cc5493a4e9c2b681ca941e(文字列)
contributors睡眠の質に寄与する要素。
deep_sleep深い睡眠の持続時間。深い睡眠の割合が多いほど、回復効果が高いとされます。120分
efficiency睡眠の効率。ベッドにいる時間に対する実際の睡眠時間の割合を示します。85%
latency入眠までの時間。ベッドに入ってから実際に眠りにつくまでの時間です。15分
rem_sleepレム睡眠の持続時間。夢を見る睡眠段階であり、脳の回復に重要とされます。90分
restfulness睡眠の安定性。夜間の覚醒回数や動きの多さを示します。low
timing睡眠のタイミング。理想的な睡眠時間にどれだけ近いかを示します。optimal
total_sleep総睡眠時間。一晩の全体的な睡眠量を示します。480分
dayデータが記録された日付。2019-08-24(YYYY-MM-DD形式の日付)
score睡眠の全体的な質を示すスコア。80
timestampデータのタイムスタンプ。データが記録された正確な時刻です。2019-08-24T14:15:22Z(文字列、ISO 8601形式)

日々のSpO2ルート(daily_spo2)

データの種類説明データの中身
id各SpO2データに割り当てられたユニークなID。データの特定と追跡に使用されます。2-5daccc095220cc5493a4e9c2b681ca941e(文字列)
dayデータが記録された日付。2019-08-24(YYYY-MM-DD形式の日付)
spo2_percentageその日の血中酸素飽和度(SpO2)の平均値。SpO2は、血液中の酸素の量をパーセンテージで示し、全身の酸素供給状態を反映します。
average1日の平均SpO2値。通常はパーセント単位で示され、健康な成人では95%以上が一般的です。98%

心拍数ルート(heartrate)

データの種類説明データの中身
bpm (Beats Per Minute)心拍数。1分間あたりの心拍数を示し、心臓の健康状態や身体的ストレスのレベルを反映します。60 bpm
source心拍数データのソース。心拍数が測定された状態(例: “awake”(覚醒時)、”sleep”(睡眠時))を示します。“awake”(覚醒時)、”sleep”(睡眠時)(文字列)
timestampデータのタイムスタンプ。データが記録された正確な時刻です。2019-08-24T14:15:22Z(文字列、ISO 8601形式)

個人情報ルート(personal_info)

データの種類説明データの中身
idユーザーの一意な識別子。個々のユーザーを識別するための固有のIDです。“5daccc095220cc5493a4e9c2b681ca941e”(文字列)
ageユーザーの年齢。ユーザーの現在の年齢を数値で表します。30歳
weightユーザーの体重。ユーザーの現在の体重をキログラム単位で表します。70 kg
heightユーザーの身長。ユーザーの身長をセンチメートル単位で表します。175 cm
biological_sexユーザーの生物学的性別。ユーザーの性別を表す文字列です。“male”(文字列、”male” または “female”)
emailユーザーの電子メールアドレス。ユーザーがアカウントに登録したメールアドレスです。user@example.com“(文字列、電子メールアドレス)

休息モード期間ルート(rest_mode_period)

データの種類説明データの中身
idデータの一意な識別子。休息モード期間に固有のIDです。5daccc095220cc5493a4e9c2b681ca941e(文字列)
end_day休息モード期間の終了日。休息モードが終了した日付を示します。2019-08-24(YYYY-MM-DD形式の日付)
end_time休息モード期間の終了時刻。休息モードが終了した正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
episodes休息モード期間中のエピソードの配列。
tags休息モード期間に関連するタグの配列。休息モードに関連する特定の活動や状況を示すタグです。[“vacation”](文字列の配列)
timestampエピソードが記録された時刻。エピソードが発生した正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
start_day休息モード期間の開始日。休息モードが開始した日付を示します。2019-08-24(YYYY-MM-DD形式の日付)
start_time休息モード期間の開始時刻。休息モードが開始した正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)

リング構成ルート(ring_configuration)

データの種類説明データの中身
idリング構成の一意な識別子。特定のリング構成を識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
colorリングの色。リングの外観を示す色です。glossy_black(文字列、色の名前)
designリングのデザイン。リングのスタイルや形状を示します。heritage(文字列、デザイン名)
firmware_versionリングのファームウェアバージョン。リングのソフトウェアのバージョンを示します。1.15.0
hardware_typeリングのハードウェアタイプ。リングの世代やモデルを示します。gen1(世代またはモデル)
set_up_atリングが設定された時刻。リングが初めて使用された時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
sizeリングのサイズ。リングの大きさを示す数値です。11
next_tokenページネーションに使用されるトークン。データセットが大きい場合、全てのデータを一度に取得する代わりに、次に取得すべきデータセットへのポインターとして機能します。6daccc095220cc5493a4e9c2b681ca941f(文字列)

セッションルート(session)

データの種類説明データの中身
idセッションの一意な識別子。特定のセッションを識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
dayセッションが行われた日付。セッションが記録された日を示します。2019-08-24(YYYY-MM-DD形式の日付)
start_datetimeセッションの開始時刻。セッションが始まった正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
end_datetimeセッションの終了時刻。セッションが終了した正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
typeセッションのタイプ。セッションの種類や活動を示します。breathing(文字列、セッションの種類)
heart_rateセッション中の心拍数。セッション中の心拍数の変動や平均値を含むデータです。{“average”: 70, “max”: 90}(オブジェクト、心拍数の詳細)
heart_rate_variabilityセッション中の心拍変動(HRV)。心拍のリズムや変動の詳細を含むデータです。{“average”: 50, “min”: 40}(オブジェクト、HRVの詳細)
moodセッション後の気分。セッション後のユーザーの気分や感情状態を示します。bad(文字列、気分の状態)
motion_countセッション中の動きの回数。セッション中に記録された身体活動の量を示します。100回
next_tokenページネーションに使用されるトークン。データセットが大きい場合、全てのデータを一度に取得する代わりに、次に取得すべきデータセットへのポインターとして機能します。6daccc095220cc5493a4e9c2b681ca941f(文字列)

睡眠時間ルート(sleep_time)

データの種類説明データの中身
id睡眠時間データの一意な識別子。特定の睡眠時間データを識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
dayデータが記録された日付。睡眠時間データが参照する日を示します。2019-08-24(YYYY-MM-DD形式の日付)
optimal_bedtime理想的な就寝時間。
day_tz日付のタイムゾーン。ユーザーの地域タイムゾーンを考慮した時刻です。0(整数、タイムゾーンオフセット)
end_offset理想的な就寝時間の終了時刻のオフセット。23:00
start_offset理想的な就寝時間の開始時刻のオフセット。22:00
recommendation睡眠時間に関する推奨事項。睡眠効率の改善や睡眠パターンの調整に関するアドバイスを示します。improve_efficiency(文字列、推奨事項)
status睡眠時間データのステータス。睡眠データが十分でない場合や分析が完了していない場合などを示します。not_enough_nights(文字列、ステータス)
next_tokenページネーションに使用されるトークン。データセットが大きい場合、全てのデータを一度に取得する代わりに、次に取得すべきデータセットへのポインターとして機能します。6daccc095220cc5493a4e9c2b681ca941f(文字列)

タグルート(tag)

データの種類説明データの中身
idタグデータの一意な識別子。特定のタグを識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
dayデータが記録された日付。タグが記録された日を示します。2019-08-24(YYYY-MM-DD形式の日付)
textタグのテキスト。ユーザーが入力したタグの内容を示します。ジョギング(文字列)
timestampタグが記録された時刻。タグが記録された正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
tags関連するタグの配列。タグに関連付けられた追加のタグやキーワードを示します。[“運動”, “健康”](文字列の配列)
next_tokenページネーションに使用されるトークン。データセットが大きい場合、全てのデータを一度に取得する代わりに、次に取得すべきデータセットへのポインターとして機能します。6daccc095220cc5493a4e9c2b681ca941f(文字列)

ワークアウトルート(workout)

データの種類説明データの中身
idワークアウトデータの一意な識別子。特定のワークアウトを識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
activityワークアウトの種類。行われた運動や活動のタイプを示します。jogging(文字列、活動の種類)
caloriesワークアウトによって消費されたカロリーの量。運動によるエネルギー消費を示します。300 kcal
dayワークアウトが行われた日付。ワークアウトが記録された日を示します。2019-08-24(YYYY-MM-DD形式の日付)
distanceワークアウトで移動した距離。例えば走行距離など、運動による移動距離を示します。5 km
end_datetimeワークアウトの終了時刻。ワークアウトが終了した正確な時刻を示します。2019-08-24T14:15:22Z(ISO 8601形式のタイムスタンプ)
intensityワークアウトの強度。運動の強度レベルを示します。easy(文字列、強度レベル)
labelワークアウトに付けられたラベル。ユーザーが特定のワークアウトに付けたカスタムラベルを示します。朝のランニング(文字列)
sourceワークアウトデータのソース。データがどのように記録されたかを示します。manual(文字列、ソースタイプ)
start_datetimeワークアウトの開始時刻。ワークアウトが始まった正確な時刻を示します。2019-08-24T13:15:22Z(ISO 8601形式のタイムスタンプ)

睡眠ルート(sleep)

データの種類説明データの中身
id睡眠データの一意な識別子。特定の睡眠期間を識別するために使用されます。5daccc095220cc5493a4e9c2b681ca941e(文字列)
average_breath平均呼吸数。睡眠中の1分間あたりの平均呼吸回数を示します。15回/分
average_heart_rate平均心拍数。睡眠中の1分間あたりの平均心拍数を示します。60 bpm
average_hrv平均心拍変動(HRV)。睡眠中の心拍間隔の平均変動を示します。50ミリ秒
awake_time覚醒時間。ベッドにいる間の覚醒した合計時間を示します。30分
bedtime_end就寝終了時刻。睡眠を終えた正確な時刻を示します。2019-08-24T07:00:00Z(ISO 8601形式のタイムスタンプ)
bedtime_start就寝開始時刻。睡眠を開始した正確な時刻を示します。2019-08-23T23:00:00Z(ISO 8601形式のタイムスタンプ)
day睡眠データが記録された日付。2019-08-24(YYYY-MM-DD形式の日付)
deep_sleep_duration深い睡眠の持続時間。深い睡眠の総時間を示します。90分
efficiency睡眠効率。ベッドにいた時間に対する実際の睡眠時間の割合を示します。85%
heart_rate睡眠中の心拍数データ。心拍数の詳細情報を含みます。
interval心拍数の測定間隔。5分
items心拍数のデータポイント。[60, 62, 59](整数の配列、拍/分)
timestampデータが記録された時刻。2019-08-24T01:00:00Z(ISO 8601形式のタイムスタンプ)
hrv睡眠中の心拍変動(HRV)データ。HRVの詳細情報を含みます。
intervalHRVの測定間隔。5分
itemsHRVのデータポイント。[50, 52, 48](整数の配列、ミリ秒)
timestampデータが記録された時刻。2019-08-24T01:00:00Z(ISO 8601形式のタイムスタンプ)
latency入眠までの時間。ベッドに入ってから実際に眠りにつくまでの時間です。15分
light_sleep_duration浅い睡眠の持続時間。浅い睡眠の総時間を示します。180分
low_battery_alert低バッテリーアラート。バッテリー残量が低いことを示すフラグ。true(真偽値)
lowest_heart_rate最低心拍数。睡眠中の最低心拍数を示します。55 bpm
movement_30_sec30秒間の動きの回数。睡眠中の30秒間あたりの平均動きの回数を示します。1143222134(文字列、動きの回数)
period睡眠期間。睡眠を取った総期間を示します。480分
readiness準備度。睡眠がその日の準備度にどれだけ寄与しているかを示すデータ。
contributors睡眠が準備度に寄与している要素。{“activity_balance”: 80, “body_temperature”: 70}(オブジェクト)
score睡眠に基づく準備度スコア。82
temperature_deviation体温の偏差。0.2°C
temperature_trend_deviation体温の傾向からの偏差。0.1°C
readiness_score_delta準備度スコアの変化。前日からの準備度スコアの変動を示します。5
rem_sleep_durationレム睡眠の持続時間。レム睡眠の総時間を示します。120分
restless_periods睡眠中の落ち着かない期間の回数。睡眠中に頻繁に動いたり覚醒したりする期間の回数を示します。5回
sleep_phase_5_min5分間の睡眠段階。睡眠の各段階(レム、深い睡眠、浅い睡眠)の分布を示します。444423323441114(文字列、睡眠段階)
sleep_score_delta睡眠スコアの変化。前日からの睡眠スコアの変動を示します。4
sleep_algorithm_version睡眠アルゴリズムのバージョン。睡眠データの解析に使用されたアルゴリズムのバージョンを示します。v1(文字列、バージョン)
time_in_bedベッドにいた時間。ベッドに入ってから出るまでの総時間を示します。480分
total_sleep_duration総睡眠時間。一晩の全体的な睡眠量を示します。420分
typeデータのタイプ。deleted(文字列、データの種類)

まとめ

Oura API V2は、健康やウェルネスデータを活用するための強力なツールです。各エンドポイントから提供される詳細なデータにより、開発者はユーザーの健康管理とウェルネスをサポートするアプリケーションを作成することが可能になります。このAPIを使用することで、よりパーソナライズされた健康管理ソリューションの開発が期待できます。

コメント