Stride

Search Documentation

Search for articles, guides, and more

← API overview

List activities in a date window

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

Activities in a date window, completed and planned. The window may reach into the future: past sessions are matched on when they started, future ones on when they are planned for, so one call covers both sides of today.

Defaults to the last 30 days plus the next 14. Summaries only - call GET /v1/activities/{activity_id} for the analysis of one session.

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}/activities" \
  -H "Authorization: Bearer $STRIDE_TOKEN"

Response 200

Success.

  • activitiesobject[]always present
    • ascent_metersinteger

      Total climbing in metres.

    • avg_power_wattsinteger

      Average power in watts, where a power meter was recording.

    • descriptionstring
    • distance_metersinteger

      Distance covered in metres.

    • duration_secondsinteger

      Total elapsed time in seconds.

    • feelinteger

      How the session felt to the athlete, 1 (terrible) to 5 (great).

    • idstringalways present
    • namestring
    • planned_atstring

      When the session is planned for, in the athlete's local wall-clock time with a Z suffix, on the same terms as started_at. Absent for an unplanned session.

    • planned_distance_metersinteger

      Planned distance in metres.

    • planned_duration_secondsinteger

      Planned duration in seconds.

    • planned_intensitynumber

      Planned intensity as a fraction of threshold, e.g. 0.75.

    • planned_pace_seconds_per_kmnumber

      Planned pace in seconds per kilometre.

    • planned_training_scoreinteger

      Planned training load for the session.

    • rpeinteger

      The athlete's rate of perceived exertion, 1 (easy) to 10 (maximal).

    • sourcestring

      Where the recording came from, e.g. GARMIN, WAHOO, STRIDE. STRIDE means the Stride app recorded it.

    • started_atstring

      When the session started, in the athlete's local wall-clock time with a Z suffix. This is NOT a UTC instant: read the athlete's timezone from the athlete endpoint to interpret it. Absent for a session that has not happened yet.

    • typestringalways present

      The sport, e.g. RIDE, RUN, SWIM.

    • weighted_heart_rateinteger

      Heart rate in bpm, weighted towards the harder parts of the session rather than a flat average.

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.