ヘルスメトリクス - JSONエクスポート形式

JSONエクスポートでのヘルスメトリクス構造に関するドキュメント

Last updated: February 6, 2026

On this page

ヘルスメトリクス

ヘルスメトリクスは、Apple Healthアプリと接続されたデバイスによって収集される様々な測定値とデータポイントを表します。JSONエクスポートでは、ヘルスメトリクスはmetrics配列に保存されます。

メトリクス名の形式

JSONエクスポートのすべてのメトリクス名はsnake_case形式(アンダースコア付きの小文字)を使用します。例えば:

  • "Step Count"は"step_count"になります
  • "Blood Pressure"は"blood_pressure"になります
  • "Heart Rate"は"heart_rate"になります
  • "Walking + Running Distance"は"walking_running_distance"になります

構造

metrics配列には、それぞれが特定のヘルスメトリクスタイプを表すオブジェクトが含まれます。ほとんどのヘルスメトリクスは共通の構造に従います:

{
  "name": "step_count",
  "units": "count",
  "data": [
    {
      "qty": 8500,
      "date": "2024-02-06 14:30:00 -0800"
    }
  ]
}

共通フィールド

  • name (String): snake_case形式のヘルスメトリクスの名前(例:"step_count"、"heart_rate"、"active_energy")
  • units (String): 測定単位(例:"count"、"bpm"、"kcal")
  • data (Array): 各データポイントを含む配列:
    • qty (Number): 数量値
    • date (Date): yyyy-MM-dd HH:mm:ss Z形式のタイムスタンプ

特別なメトリクス形式

一部のヘルスメトリクスは、共通形式とは異なる独自の構造を持っています:

血圧

血圧の測定値には、収縮期と拡張期の両方の値が含まれます:

{
  "name": "blood_pressure",
  "units": "mmHg",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "systolic": 120,
      "diastolic": 80
    }
  ]
}

フィールド:

  • systolic (Number): 収縮期(上)の血圧測定値
  • diastolic (Number): 拡張期(下)の血圧測定値

心拍数

心拍数データには、最小値、平均値、最大値が含まれます:

{
  "name": "heart_rate",
  "units": "bpm",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85
    }
  ]
}

フィールド:

  • Min (Number): 測定期間中の最小心拍数
  • Avg (Number): 測定期間中の平均心拍数
  • Max (Number): 測定期間中の最大心拍数

睡眠分析

睡眠データの構造は、エクスポート設定でデータ集約が有効になっているかどうかによって異なります。

集約された睡眠データ

集約が有効になっている場合、睡眠データは日ごとに要約されます:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06",
      "totalSleep": 7.5,
      "asleep": 7.0,
      "core": 3.5,
      "deep": 1.5,
      "rem": 2.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

フィールド:

  • totalSleep (Number): 総睡眠時間(時間単位)
  • asleep (Number): 任意の睡眠状態での総時間
  • core (Number): 浅い睡眠の持続時間(時間単位)
  • deep (Number): 深い睡眠の持続時間(時間単位)
  • rem (Number): REM睡眠の持続時間(時間単位)
  • sleepStart (Date): 睡眠が実際に開始した時刻
  • sleepEnd (Date): 睡眠が実際に終了した時刻
  • inBed (Number): ベッドにいた総時間(時間単位)
  • inBedStart (Date): ベッドに入った時刻
  • inBedEnd (Date): ベッドから出た時刻

集約されていない睡眠データ

集約が無効になっている場合、個別の睡眠セグメントが含まれます:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "deep": 0.0,
      "rem": 0.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

フィールド:

  • startDate (Date): 睡眠セグメントの開始時刻
  • endDate (Date): 睡眠セグメントの終了時刻
  • qty (Number): セグメントの持続時間(時間単位)
  • value (String): 睡眠状態 - 次のいずれか:
    • "Awake"
    • "Asleep"(カテゴリ化されていない睡眠フェーズ)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

注: "Asleep"は、カテゴリ化されていない睡眠フェーズを指します(総睡眠時間ではなく)。これは、データソースが睡眠フェーズの追跡をサポートしていない場合に発生する可能性があります。

血糖値

血糖値の測定値には、食事のタイミング情報が含まれます:

{
  "name": "blood_glucose",
  "units": "mg/dL",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 95,
      "mealTime": "Before Meal"
    }
  ]
}

フィールド:

  • qty (Number): 血糖値レベル
  • mealTime (String): 次のいずれか:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

性的活動

性的活動のエントリは、避妊具の使用を追跡します:

{
  "name": "sexual_activity",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 20:00:00 -0800",
      "Unspecified": 0,
      "Protection Used": 1,
      "Protection Not Used": 0
    }
  ]
}

フィールド:

  • Unspecified (Number): 避妊具の状態が不明な場合のカウント
  • Protection Used (Number): 避妊具が使用された場合のカウント
  • Protection Not Used (Number): 避妊具が使用されなかった場合のカウント

手洗い

手洗いイベントは、完了状態を追跡します:

{
  "name": "handwashing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

フィールド:

  • qty (Number): 手洗いイベントの数
  • value (String): 次のいずれか:
    • "Complete"
    • "Incomplete"

歯磨き

歯磨きイベントは、完了状態を追跡します:

{
  "name": "toothbrushing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

フィールド:

  • qty (Number): 歯磨きイベントの数
  • value (String): 次のいずれか:
    • "Complete"
    • "Incomplete"

インスリン投与

インスリン投与のエントリには、投与の理由が含まれます:

{
  "name": "insulin_delivery",
  "units": "IU",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 5,
      "reason": "Bolus"
    }
  ]
}

フィールド:

  • qty (Number): 投与されたインスリンの量
  • reason (String): 次のいずれか:
    • "Bolus"(食事時インスリン)
    • "Basal"(基礎インスリン)

一般的なヘルスメトリクス

一般的にエクスポートされるヘルスメトリクスには、以下が含まれます(すべてのメトリクス名はsnake_case形式):

  • step_count - 1日の歩数
  • walking_running_distance - 移動距離
  • active_energy - 活動によって消費されたカロリー
  • resting_heart_rate - 安静時心拍数
  • heart_rate - 心拍数測定
  • respiratory_rate - 呼吸数
  • body_temperature - 体温測定値
  • blood_oxygen_saturation - SpO2レベル
  • weight_&_body_mass - 体重測定
  • body_mass_index - 計算されたBMI値
  • height - 身長測定
  • dietary_water - 水分摂取量
  • mindful_minutes - 瞑想またはマインドフルネスの時間

ヒント

  • 時間グループ化: エクスポート設定の時間グループ化設定を使用して、データがどのように集約されるかを制御します(秒、分、時間、日など)
  • データ集約: 睡眠やその他のメトリクスを日ごとに要約して分析を容易にするために、データ集約を有効にします
  • 選択的エクスポート: ファイルサイズと処理時間を減らすために、エクスポートに含める特定のヘルスメトリクスを選択できます

関連ドキュメント