GET /users/{user_id}/scores Get current scores

Returns the user's latest health scores. Scores recompute automatically as new data arrives.

ParameterInTypeRequiredDescription
user_idpathstringrequiredSonar user ID

Example Request

bash
curl -X GET \
  "https://api.sonarhealth.co/v1/users/:user_id/scores" \
  -H "Authorization: Bearer $TOKEN"

Response 200 Current health scores

json
{
  "data": [
    {
      "type": "recovery_score",
      "value": 78,
      "computed_at": "2025-01-15T07:30:00Z",
      "factors": [
        {
          "name": "hrv_trend",
          "contribution": 0.35,
          "direction": "positive"
        },
        {
          "name": "sleep_quality",
          "contribution": 0.28,
          "direction": "positive"
        },
        {
          "name": "resting_heart_rate",
          "contribution": 0.22,
          "direction": "neutral"
        }
      ]
    },
    {
      "type": "strain_score",
      "value": 42,
      "computed_at": "2025-01-15T14:00:00Z",
      "factors": []
    },
    {
      "type": "sleep_score",
      "value": 85,
      "computed_at": "2025-01-15T07:30:00Z",
      "factors": []
    },
    {
      "type": "stress_score",
      "value": 22,
      "computed_at": "2025-01-15T14:00:00Z",
      "factors": []
    },
    {
      "type": "nutrition_score",
      "value": 65,
      "computed_at": "2025-01-15T12:00:00Z",
      "factors": []
    },
    {
      "type": "energy_reserve_score",
      "value": 71,
      "computed_at": "2025-01-15T14:00:00Z",
      "factors": []
    }
  ]
}
GET /users/{user_id}/scores/history Get score history

Returns daily score values over a date range for one or more score types.

ParameterInTypeRequiredDescription
user_idpathstringrequiredSonar user ID
typesquerystringoptionalComma-separated score types (default: all). E.g., `recovery_score,sleep_score`
start_datequerystring (date)requiredStart date (ISO 8601)
end_datequerystring (date)requiredEnd date (ISO 8601)

Example Request

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

Response 200 Score history

json
{
  "data": [
    {
      "date": "2025-01-14",
      "type": "recovery_score",
      "value": 68
    },
    {
      "date": "2025-01-14",
      "type": "sleep_score",
      "value": 74
    },
    {
      "date": "2025-01-15",
      "type": "recovery_score",
      "value": 78
    },
    {
      "date": "2025-01-15",
      "type": "sleep_score",
      "value": 85
    }
  ]
}