GET
/users/{user_id}/workouts
Get workout sessions
Returns per-session workout data including sport type, start/end timestamps, duration, distance, active calories, average and max heart rate, heart rate zone breakdown, and elevation gain.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
user_id | path | string | required | Sonar user ID |
start_date | query | string (date) | required | Start date (ISO 8601) |
end_date | query | string (date) | required | End date (ISO 8601) |
unit_system | query | string | optional | `metric` (default) or `imperial` |
include_sources | query | boolean | optional | Include source device info (default: false) |
page | query | integer | optional | Page number (default: 1) |
per_page | query | integer | optional | Results per page (default: 20, max: 100) |
Example Request
bash
curl -X GET \
"https://api.sonarhealth.co/v1/users/:user_id/workouts?start_date={start_date}&end_date={end_date}" \
-H "Authorization: Bearer $TOKEN"
Response 200 Workout sessions
json
{
"data": [
{
"sport_type": "running",
"start": "2025-01-15T07:30:00Z",
"end": "2025-01-15T08:15:00Z",
"duration": 45,
"distance": 6.2,
"active_calories": 480,
"heart_rate_avg": 152,
"heart_rate_max": 178,
"heart_rate_zones": {
"zone_1": 2,
"zone_2": 12,
"zone_3": 18,
"zone_4": 10,
"zone_5": 3
},
"elevation_gain": 85
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 12
}
}
Sonar