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.

ParameterInTypeRequiredDescription
user_idpathstringrequiredSonar user ID
start_datequerystring (date)requiredStart date (ISO 8601)
end_datequerystring (date)requiredEnd date (ISO 8601)
unit_systemquerystringoptional`metric` (default) or `imperial`
include_sourcesquerybooleanoptionalInclude source device info (default: false)
pagequeryintegeroptionalPage number (default: 1)
per_pagequeryintegeroptionalResults 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
  }
}