Skip to content

Heart Rate Series

Stream: timeseries | Event type: heart_rate_series

Continuous heart rate samples chunked into 15-minute windows using compact columnar arrays.

{
"event_type": "heart_rate_series",
"data_version": "1.1",
"source_id": "ts-hr-a1b2...",
"provider_ref": "hr-intraday-2026-03-19",
"device_id": "dev-001",
"payload_ts": 1742558400000,
"revision": 1,
"capture_mode": null, "window_start": 1742558400000,
"window_end": 1742559300000,
"chunk_index": 28,
"day_complete": false,
"resolution_s": 5,
"columns": ["ts", "bpm"],
"samples": [
[1742558400000, 72],
[1742558405000, 73],
[1742558410000, 71]
]
}

These fields are shared by all timeseries event types.

| Field | Type | Description | |-------|------|-------------| | window_start | number \| null (epoch ms) | Start of the 15-minute chunk. | | window_end | number \| null (epoch ms) | End of the 15-minute chunk. | | chunk_index | number \| null | 0-based index within the day (0-95 for 15-min chunks). | | day_complete | boolean \| null | Whether HealthSync has emitted all available chunks for this day. null when unknown. | | resolution_s | number \| null | Sample interval hint in seconds. | | columns | string[] | Ordered column names for each sample array. | | samples | array[] | Compact array of values matching columns order. |

| Column | Type | Unit | Description | |--------|------|------|-------------| | ts | number | epoch ms | Sample timestamp. | | bpm | number | bpm | Heart rate at this instant. |

| day_complete | Meaning | |---------------|---------| | true | HealthSync has received and emitted all available chunks for this day. | | false | More chunks may follow (day still in progress). | | null | HealthSync cannot determine completeness (e.g., backfill). |