Keely for developers
Workouts
Every workout and activity with its sport, times, Load, heart rate and zones: a range of them, or one by its id.
Updated
On this page
GET /v1/workouts
Without days, workouts are listed by their start, between from at 00:00 UTC and to at 24:00 UTC, date is null, and a note says so.
kindistrainingorrecovery(a sauna, a cold plunge, a massage), andclassthe training workout’s zone mix: VO2 max, Threshold, Tempo, Endurance, Easy, Recovery or Mixed. How workouts are found and classed.measuredisfalsefor an activity the person added for a time the band has no heart rate for: its Load, zones and heart rate arenull, and anotesays why.measured_fromsays whether the heart rate came from the band or from a recording another app saved to Apple Health.legsappear on an event of several sports (a triathlon, a brick), each leg with its own Load and heart rate; atransitionleg has neither.unnamedmarks a workout the person hasn’t named yet;suggested_activityis Keely’s guess from their past workouts.
{
"from": "2026-09-14",
"to": "2026-09-27",
"count": 1,
"workouts": [
{
"date": "2026-09-27",
"id": "5f3c0e1d2b4a6978",
"start": "2026-09-27T09:20:00Z", "end": "2026-09-27T10:14:00Z", "duration_minutes": 54,
"activity": "Running", "activity_id": "run", "kind": "training",
"added_by_person": false, "measured": true,
"measured_from": "a recording another app saved to Apple Health (a watch or chest strap)",
"load": 176.4, "average_hr_bpm": 158.2, "max_hr_bpm": 181,
"zone_minutes": { "z1": 0, "z2": 12, "z3": 10, "z4": 24, "z5": 2 },
"class": "Threshold", "recovery_hours": 19.8, "hr_recovery_1min_bpm": 31,
"legs": [
{ "kind": "run", "start": "2026-09-27T09:20:00Z", "end": "2026-09-27T09:45:00Z", "duration_minutes": 25, "activity": "Running", "load": 82.1, "average_hr_bpm": 159.4 },
{ "kind": "walk", "start": "2026-09-27T09:45:00Z", "end": "2026-09-27T09:55:00Z", "duration_minutes": 10, "activity": "Walking", "load": 6.2, "average_hr_bpm": 128.3 },
{ "kind": "run", "start": "2026-09-27T09:55:00Z", "end": "2026-09-27T10:14:00Z", "duration_minutes": 19, "activity": "Running", "load": 88.1, "average_hr_bpm": 160.8 }
]
}
],
"as_of": "2026-09-27T15:20:00Z",
"methodology": "https://meetkeely.com/methodology"
}
GET /v1/workouts/{id}
One workout, shaped as above, in workout.