건강 지표 - JSON 내보내기 형식
JSON 내보내기에서 건강 지표 구조에 대한 문서
Last updated: February 6, 2026
건강 지표
건강 지표는 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 - 일일 걸음 수
- 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 - 명상 또는 마음챙김 시간
팁
- 시간 그룹화: 내보내기 구성의 시간 그룹화 설정을 사용하여 데이터가 집계되는 방식을 제어합니다(초, 분, 시간, 일 등)
- 데이터 집계: 수면 및 기타 지표를 일별로 요약하여 분석을 용이하게 하려면 데이터 집계를 활성화하세요
- 선택적 내보내기: 파일 크기와 처리 시간을 줄이기 위해 내보내기에 포함할 특정 건강 지표를 선택할 수 있습니다