Stride

Search Documentation

Search for articles, guides, and more

← API overview

Update an activity

PATCH/v1/activities/{activity_id}requires activities.write

Change an activity's name, description, sport, or the athlete's own subjective ratings (rpe 1-10 and feel 1-5).

Only the fields you send are changed. This does not alter recorded data: to correct what was recorded, upload a corrected file.

Path parameters

  • activity_idstringrequired

    The activity ID, e.g. `act_2f...`. The owner is resolved from it.

Example

bash
curl -X PATCH "https://api.stride.is/v1/activities/{activity_id}" \
  -H "Authorization: Bearer $STRIDE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ }'

Response 200

Success.

  • 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.