Stride

Search Documentation

Search for articles, guides, and more

Stride API

A REST API over an athlete's training: their activities and the analysis behind them, their planned sessions, thresholds and wellness metrics, training load, and the workout library. 30 endpoints, authorized by the athlete over OAuth.

Your first request

The quickest way in is a personal access token: create one under Settings → API, choose what it may read, and use it straight away. No app registration, no OAuth flow.

bash
curl "https://api.stride.is/v1/athlete" \
  -H "Authorization: Bearer $STRIDE_TOKEN"

That returns the athlete the token belongs to. Everything else hangs off it: /athletes/me/activities for their calendar, /activities/{id} for the full analysis of one session.

Building for other athletes

To act on behalf of people who are not you, register an app under Settings → API and send athletes through the OAuth flow. See Authentication.

Two things that will catch you out

Timestamps are local wall-clock time

An activity that started at nine in the morning is timestamped 09:00:00Z wherever the athlete was, and the Z does not mean UTC. Read timezone from GET /athlete and interpret every timestamp against it. Treating them as UTC instants puts sessions on the wrong day for anyone who is not on UTC.

Requests are charged by cost, not by count

A full activity analysis is worth many list calls, because it costs us many list calls. The X-RateLimit-Remaining header on every response tells you where you stand. See Errors and rate limits.

Units

SI throughout, with no per-athlete variation: metres, seconds, watts, kilograms, bpm, seconds per kilometre, degrees Celsius. The athlete's uses_metric_units preference describes how Stride's own apps display values to them; it does not change what this API returns.