ワークアウト - JSONエクスポート形式
JSONエクスポートでのワークアウト構造に関するドキュメント
Last updated: February 6, 2026
On this page
ワークアウト
ワークアウトデータには、Apple Healthに記録されたランニング、サイクリング、水泳、筋力トレーニングなどのすべての運動セッションが含まれます。JSONエクスポートでは、ワークアウトはworkouts配列に保存されます。
エクスポートバージョン
Health Auto Exportは2つのワークアウトエクスポートバージョンをサポートしています:
- バージョン2(推奨):より詳細なメタデータと構造化データを備えた拡張形式
- バージョン1(レガシー):既存のワークフローとの互換性のために維持されている古い形式
ワークアウト バージョン2
バージョン2は、データが利用可能な場合にのみ含まれるオプションフィールドを含む包括的な構造を提供します。
基本構造
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"duration": 1800
}
必須フィールド
id(String): ワークアウトの一意の識別子name(String): ワークアウトタイプ名(例:「Running」、「Cycling」、「Swimming」)start(Date):yyyy-MM-dd HH:mm:ss Z形式のワークアウト開始時刻end(Date):yyyy-MM-dd HH:mm:ss Z形式のワークアウト終了時刻duration(Number): 秒単位のワークアウト時間
オプションフィールド
以下のフィールドは、データが利用可能な場合にのみ含まれます:
場所情報
{
"location": "Outdoor",
"isIndoor": false
}
location(String):"Indoor"、"Outdoor"、"Pool"、"Open Water"のいずれかisIndoor(Boolean): ワークアウトが屋内で行われたかどうか
エネルギーと強度
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Object): ワークアウト中に燃焼したアクティブカロリーtotalEnergy(Object): 燃焼した総カロリー(アクティブ+安静時)intensity(Object): タスクの代謝当量(MET)値
距離と速度
{
"distance": {
"qty": 3.5,
"units": "mi"
},
"speed": {
"qty": 7.0,
"units": "mph"
},
"avgSpeed": {
"qty": 7.0,
"units": "mph"
},
"maxSpeed": {
"qty": 8.5,
"units": "mph"
}
}
distance(Object): 移動した総距離speed(Object): 現在または平均速度avgSpeed(Object): ワークアウト全体の平均速度maxSpeed(Object): 達成した最大速度
単位:
- 距離:
"mi"(マイル)または"km"(キロメートル) - 速度:
"mph"(時速マイル)または"kmph"(時速キロメートル)
標高
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Object): 獲得した総標高elevationDown(Object): 失った総標高
単位: "ft"(フィート)または"m"(メートル)
環境データ
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Object): ワークアウト中の周囲温度humidity(Object): 相対湿度のパーセンテージ
温度単位: "degF"(華氏)または"degC"(摂氏)
水泳専用フィールド
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "spm"
}
}
lapLength(Object): 各ラップの長さstrokeStyle(String): 次のいずれか:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): 水泳効率スコアsalinity(String):"Fresh Water"または"Salt Water"totalSwimmingStrokeCount(Object): ストロークの総数swimCadence(Object): 1分あたりのストローク数
歩数とケイデンスデータ
{
"stepCount": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 5000,
"units": "count",
"source": "Apple Watch"
}
],
"stepCadence": {
"qty": 180,
"units": "spm"
},
"flightsClimbed": {
"qty": 10,
"units": "count"
}
}
stepCount(Array): 時間経過に伴う歩数測定の配列stepCadence(Object): 1分あたりの歩数flightsClimbed(Object): 上った階段のフライト数
心拍数データ
{
"heartRate": {
"min": {
"qty": 120,
"units": "bpm"
},
"avg": {
"qty": 150,
"units": "bpm"
},
"max": {
"qty": 175,
"units": "bpm"
}
},
"maxHeartRate": {
"qty": 175,
"units": "bpm"
},
"avgHeartRate": {
"qty": 150,
"units": "bpm"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"Min": 120,
"Avg": 150,
"Max": 175,
"units": "bpm",
"source": "Apple Watch"
}
],
"heartRateRecovery": [
{
"date": "2024-02-06 07:30:00 -0800",
"Min": 140,
"Avg": 145,
"Max": 150,
"units": "bpm",
"source": "Apple Watch"
}
]
}
heartRate(Object): 最小、平均、最大心拍数のサマリーmaxHeartRate(Object): ワークアウト中の最大心拍数avgHeartRate(Object): ワークアウト中の平均心拍数heartRateData(Array): ワークアウト全体の詳細な心拍数測定heartRateRecovery(Array): 回復期間中の心拍数測定
時系列データ配列
「ワークアウトメトリクスを含める」が有効になっている場合、多くのメトリクスを時系列配列として含めることができます:
{
"activeEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 50,
"units": "kcal",
"source": "Apple Watch"
}
],
"basalEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "kcal",
"source": "Apple Watch"
}
],
"cyclingCadence": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 90,
"units": "rpm",
"source": "Apple Watch"
}
],
"cyclingDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.5,
"units": "mi",
"source": "Apple Watch"
}
],
"cyclingPower": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 200,
"units": "W",
"source": "Power Meter"
}
],
"cyclingSpeed": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 18,
"units": "mph",
"source": "Apple Watch"
}
],
"swimDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 25,
"units": "yd",
"source": "Apple Watch"
}
],
"swimStroke": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "count",
"source": "Apple Watch"
}
],
"walkingAndRunningDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.25,
"units": "mi",
"source": "Apple Watch"
}
]
}
QuantityData構造:
date(Date): 測定のタイムスタンプqty(Number): 数量値units(String): 測定単位source(String, オプション): データソースデバイスまたはアプリ
HeartRateData構造:
date(Date): 測定のタイムスタンプMin(Number): 最小心拍数Avg(Number): 平均心拍数Max(Number): 最大心拍数units(String): 単位(通常は「bpm」)source(String, オプション): データソースデバイスまたはアプリ
ルートデータ
「ルートデータを含める」が有効で、ワークアウトにGPSデータがある場合:
{
"route": [
{
"latitude": 37.7749,
"longitude": -122.4194,
"altitude": 50.5,
"course": 45.0,
"courseAccuracy": 5.0,
"horizontalAccuracy": 10.0,
"verticalAccuracy": 15.0,
"timestamp": "2024-02-06 07:00:00 -0800",
"speed": 7.0,
"speedAccuracy": 0.5
}
]
}
位置フィールド:
latitude(Number): GPS緯度座標longitude(Number): GPS経度座標altitude(Number): メートル単位の標高course(Number): 度単位の移動方向(0-360)courseAccuracy(Number): 度単位のコース測定の精度horizontalAccuracy(Number): メートル単位の水平位置精度verticalAccuracy(Number): メートル単位の垂直位置精度timestamp(Date): 位置が記録された時刻speed(Number): メートル/秒単位の速度speedAccuracy(Number): m/s単位の速度測定の精度
メタデータ
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Object): ワークアウトに関連付けられた追加のカスタムメタデータ
ワークアウト バージョン1(レガシー)
バージョン1はよりシンプルな構造を使用します。新しいエクスポートにはバージョン2が推奨されます。
バージョン1構造
{
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"activeEnergy": {
"qty": 350,
"units": "kcal"
},
"distance": {
"qty": 3.5,
"units": "mi"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 150,
"units": "count"
}
],
"route": [
{
"lat": 37.7749,
"lon": -122.4194,
"altitude": 50.5,
"timestamp": "2024-02-06 07:00:00 -0800"
}
]
}
ワークアウトメトリクスの時間グループ化
エクスポートバージョン2を使用し、「ワークアウトメトリクスを含める」が有効な場合、時系列データの粒度を制御できます:
- 分: ワークアウトメトリクスを分間隔でグループ化
- 秒: ワークアウトメトリクスを秒間隔でグループ化(より詳細、ファイルサイズが大きい)
ヒント
- ルートデータを含める: 屋外ワークアウトのGPSルート情報を取得するには、このオプションを有効にします
- ワークアウトメトリクスを含める: 心拍数、パワー、ケイデンスなどのメトリクスの詳細な時系列データを取得するには、これを有効にします
- エクスポートバージョン: 最も包括的なデータ構造にはバージョン2を使用します
- GPXエクスポート: ルートデータは、マッピングアプリケーションで使用するために、別のGPXファイルとしてエクスポートすることもできます