GET /users/{user_id}/timeseries Get timeseries data

Returns intraday samples for supported metrics. Resolution varies by device (1-second to 15-minute samples). Query in windows of 7 days or less for best performance.

ParameterInTypeRequiredDescription
user_idpathstringrequiredSonar user ID
metricsquerystringrequiredComma-separated metric IDs. Supported: `heart_rate`, `heart_rate_variability`, `stress_score`, `blood_oxygen`, `steps`, `active_calories`
start_datequerystring (date)requiredStart date (ISO 8601)
end_datequerystring (date)requiredEnd date (ISO 8601). Recommended max: 7 days.
unit_systemquerystringoptional`metric` (default) or `imperial`
include_sourcesquerybooleanoptionalInclude which device contributed each sample (default: false)

Example Request

bash
curl -X GET \
  "https://api.sonarhealth.co/v1/users/:user_id/timeseries?metrics={metrics}&start_date={start_date}&end_date={end_date}" \
  -H "Authorization: Bearer $TOKEN"

Response 200 Timeseries samples

json
{
  "data": [
    {
      "timestamp": "2025-01-15T08:00:00Z",
      "metric": "heart_rate",
      "value": 72,
      "unit": "bpm"
    },
    {
      "timestamp": "2025-01-15T08:05:00Z",
      "metric": "heart_rate",
      "value": 74,
      "unit": "bpm"
    },
    {
      "timestamp": "2025-01-15T08:10:00Z",
      "metric": "heart_rate",
      "value": 68,
      "unit": "bpm"
    },
    {
      "timestamp": "2025-01-15T08:00:00Z",
      "metric": "heart_rate_variability",
      "value": 42,
      "unit": "ms"
    },
    {
      "timestamp": "2025-01-15T08:05:00Z",
      "metric": "heart_rate_variability",
      "value": 45,
      "unit": "ms"
    }
  ]
}