Sports & Fitness — entry 029 of 34
Strava
Strava's V3 API is the stable REST interface behind Strava's own mobile apps, giving OAuth-authorized apps access to an athlete's activities, segments, routes, and social/kudos data as JSON. It's free to build against within Strava's published per-app and per-15-minute rate limits, with no paid API tier -- monetization happens at the Strava subscription level for end users, not for developers. The old `strava.github.io/api/` static reference has been superseded by `developers.strava.com`'s Getting Started guide, API reference, and in-browser Playground, which is now the canonical developer portal; a live request confirmed the real `www.strava.com/api/v3` host requires a bearer token and echoes an open CORS policy.
GreatAPIs Score
Auth quickstart
- Register an app / run the OAuth flow to obtain a bearer token.
- Send it as an Authorization header
Authorization: Bearer <token>
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Activities8
POST/activitiesCreate an Activity
| Status | Description | Schema |
|---|---|---|
201 | The activity's detailed representation. | DetailedActivity |
default | Unexpected error. | Fault |
GET/activities/{id}Get Activity
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
include_all_efforts | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | The activity's detailed representation. | DetailedActivity |
default | Unexpected error. | Fault |
PUT/activities/{id}Update Activity
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — UpdatableActivity
| Status | Description | Schema |
|---|---|---|
200 | The activity's detailed representation. | DetailedActivity |
default | Unexpected error. | Fault |
GET/activities/{id}/commentsList Activity Comments
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
page | query | no | integer |
per_page | query | no | integer |
page_size | query | no | integer |
after_cursor | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Comments. | — |
default | Unexpected error. | Fault |
GET/activities/{id}/kudosList Activity Kudoers
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Comments. | — |
default | Unexpected error. | Fault |
GET/activities/{id}/lapsList Activity Laps
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Activity Laps. | — |
default | Unexpected error. | Fault |
GET/activities/{id}/zonesGet Activity Zones
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Activity Zones. | — |
default | Unexpected error. | Fault |
GET/athlete/activitiesList Athlete Activities
| Name | In | Required | Type |
|---|---|---|---|
before | query | no | integer |
after | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | The authenticated athlete's activities | — |
default | Unexpected error. | Fault |
Athletes4
GET/athleteGet Authenticated Athlete
| Status | Description | Schema |
|---|---|---|
200 | Profile information for the authenticated athlete. | DetailedAthlete |
default | Unexpected error. | Fault |
PUT/athleteUpdate Athlete
| Name | In | Required | Type |
|---|---|---|---|
weight | path | yes | number |
| Status | Description | Schema |
|---|---|---|
200 | Profile information for the authenticated athlete. | DetailedAthlete |
default | Unexpected error. | Fault |
GET/athlete/zonesGet Zones
| Status | Description | Schema |
|---|---|---|
200 | Heart rate and power zones. | Zones |
default | Unexpected error. | Fault |
GET/athletes/{id}/statsGet Athlete Stats
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Activity stats of the athlete. | ActivityStats |
default | Unexpected error. | Fault |
Clubs5
GET/athlete/clubsList Athlete Clubs
| Status | Description | Schema |
|---|---|---|
200 | A list of summary club representations. | — |
default | Unexpected error. | Fault |
GET/clubs/{id}Get Club
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | The detailed representation of a club. | DetailedClub |
default | Unexpected error. | Fault |
GET/clubs/{id}/activitiesList Club Activities
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A list of activities. | — |
default | Unexpected error. | Fault |
GET/clubs/{id}/adminsList Club Administrators
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A list of summary athlete representations. | — |
default | Unexpected error. | Fault |
GET/clubs/{id}/membersList Club Members
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A list of club athlete representations. | — |
default | Unexpected error. | Fault |
Gears1
GET/gear/{id}Get Equipment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | A representation of the gear. | DetailedGear |
default | Unexpected error. | Fault |
Routes4
GET/athletes/{id}/routesList Athlete Routes
| Status | Description | Schema |
|---|---|---|
200 | A representation of the route. | — |
default | Unexpected error. | Fault |
GET/routes/{id}Get Route
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A representation of the route. | Route |
default | Unexpected error. | Fault |
GET/routes/{id}/export_gpxExport Route GPX
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A GPX file with the route. | — |
default | Unexpected error. | Fault |
GET/routes/{id}/export_tcxExport Route TCX
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | A TCX file with the route. | — |
default | Unexpected error. | Fault |
SegmentEfforts2
GET/segment_effortsList Segment Efforts
| Name | In | Required | Type |
|---|---|---|---|
segment_id | query | yes | integer |
start_date_local | query | no | string |
end_date_local | query | no | string |
| query | no | — |
| Status | Description | Schema |
|---|---|---|
200 | List of segment efforts. | — |
default | Unexpected error. | Fault |
GET/segment_efforts/{id}Get Segment Effort
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Representation of a segment effort. | DetailedSegmentEffort |
default | Unexpected error. | Fault |
Segments4
GET/segments/exploreExplore segments
| Name | In | Required | Type |
|---|---|---|---|
bounds | query | yes | array |
activity_type | query | no | string |
min_cat | query | no | integer |
max_cat | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | List of matching segments. | ExplorerResponse |
default | Unexpected error. | Fault |
GET/segments/starredList Starred Segments
| Status | Description | Schema |
|---|---|---|
200 | List of the authenticated athlete's starred segments. | — |
default | Unexpected error. | Fault |
GET/segments/{id}Get Segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Representation of a segment. | DetailedSegment |
default | Unexpected error. | Fault |
PUT/segments/{id}/starredStar Segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Representation of a segment. | DetailedSegment |
default | Unexpected error. | Fault |
Streams4
GET/activities/{id}/streamsGet Activity Streams
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
keys | query | yes | array |
key_by_type | query | yes | boolean |
| Status | Description | Schema |
|---|---|---|
200 | The set of requested streams. | StreamSet |
default | Unexpected error. | Fault |
GET/routes/{id}/streamsGet Route Streams
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | The set of requested streams. | StreamSet |
default | Unexpected error. | Fault |
GET/segment_efforts/{id}/streamsGet Segment Effort Streams
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
keys | query | yes | array |
key_by_type | query | yes | boolean |
| Status | Description | Schema |
|---|---|---|
200 | The set of requested streams. | StreamSet |
default | Unexpected error. | Fault |
GET/segments/{id}/streamsGet Segment Streams
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
keys | query | yes | array |
key_by_type | query | yes | boolean |
| Status | Description | Schema |
|---|---|---|
200 | The set of requested streams. | StreamSet |
default | Unexpected error. | Fault |
Uploads2
POST/uploadsUpload Activity
| Status | Description | Schema |
|---|---|---|
201 | A representation of the created upload. | Upload |
default | Unexpected error. | Fault |
GET/uploads/{uploadId}Get Upload
| Name | In | Required | Type |
|---|---|---|---|
uploadId | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | Representation of the upload. | Upload |
default | Unexpected error. | Fault |
Try it
Developer reference
https://www.strava.com/api/v3Strava's default overall rate limit is 200 requests per 15 minutes and 2,000 per day per application, with a stricter 100/15min and 1,000/day sub-limit on "non-upload" endpoints (developers.strava.com/docs/rate-limits/) -- limits are shared across all users of an app and reported live via X-RateLimit-Limit/-Usage response headers.
- GET/athlete
- GET/athlete/activities
- GET/activities/{id}
- GET/segments/explore
- GET/athletes/{id}/stats