Stride

Search Documentation

Search for articles, guides, and more

← API overview

Get the training load series

GET/v1/athletes/{athlete_id}/loadrequires activities.read

The performance management series, one row per calendar day whether or not the athlete trained.

load is the 42-day exponential average of daily training score, the long-run accumulation usually called fitness. acute_load is the 7-day average, the short-run cost usually called fatigue. form is the difference: positive means freshening, negative means digging in. sports breaks the same averages down per discipline for multisport athletes, so the per-sport figures do not sum to the combined one.

Defaults to the last 90 days and covers at most 1100.

Path parameters

  • athlete_idstringrequired

    The athlete to act on. `me` is the athlete who authorized this token; any other ID must be an athlete they coach.

Query parameters

  • startstring

    Start of the window, as RFC 3339 or YYYY-MM-DD. May be in the future.

    e.g. 2026-08-01

  • endstring

    End of the window, as RFC 3339 or YYYY-MM-DD. May be in the future, to include planned sessions.

    e.g. 2026-09-01

Example

bash
curl -X GET "https://api.stride.is/v1/athletes/{athlete_id}/load" \
  -H "Authorization: Bearer $STRIDE_TOKEN"

Response 200

Success.

  • daysobject[]always present
    • acute_loadnumberalways present

      Acute training load: the 7-day exponential average. Usually called fatigue.

    • datestringalways present
    • fatiguenumberalways present

      The engine's own fatigue term, which is what Stride charts. Not the same quantity as acute_load.

    • formnumberalways present

      load minus acute_load. Positive means freshening, negative means digging into a block.

    • loadnumberalways present

      Chronic training load: the 42-day exponential average of daily training score. Usually called fitness.

    • sportsobject[]

      The same averages run over each discipline's scores alone, for multisport athletes. These do not sum to the combined figures.

      • acute_loadnumberalways present
      • fatiguenumberalways present
      • loadnumberalways present
      • sportstringalways present
      • training_scoreintegeralways present
    • training_scoreintegeralways present

      Training load from the sessions on this day alone. Zero on a rest day.

Errors

Every error is an RFC 9457 problem document. Branch on its code, which is stable; detail is prose and may be reworded.

  • 400The request was malformed: an unparseable date, an unknown enum value, or a parameter combination that cannot be satisfied.
  • 401No access token was supplied, or it is not valid for this API.
  • 402The Stride account the token belongs to has no active subscription or trial.
  • 403The token does not hold the scope this endpoint requires, or may not act on the athlete or team named.
  • 404No such resource, or it is not visible to this token. The two are deliberately indistinguishable.
  • 405The path exists but does not serve this method. The Allow header lists the ones it does.
  • 429A rate limit was exceeded. Retry after the period in the Retry-After header.
  • 500Something failed on Stride's side. The failure is logged with a trace ID.