API Reference

Complete reference for all Strava API v3 endpoints. All requests require authentication and are made to https://www.strava.com/api/v3.

Heads up: API changes in 2026

Strava retired and restricted some endpoints in 2026. On September 1, 2026, the Club Activities, Club Members, and Club Admins endpoints were removed, and Explore Segments was restricted to developers with an approved Extended Access Tier. Strava has also added a deauthorization endpoint (POST /oauth/revoke) and surfaces your application's access tier in the API Settings Dashboard. Separately, a new base URL https://api-v3.strava.com becomes available starting January 4, 2027 — Strava hasn't announced a shutdown date for the current URL. Always confirm against Strava's official API changelog and reference docs.

Base URL
https://www.strava.com/api/v3
New base URL https://api-v3.strava.com available from January 4, 2027.

Activities

Activities are the core of Strava. These endpoints let you create, read, update, and analyze activities.

Endpoint
POST/activities
Create Activity
Creates a manual activity for an athlete
GET/activities/{id}
Get Activity
Returns the given activity
PUT/activities/{id}
Update Activity
Updates the given activity
GET/athlete/activities
List Athlete Activities
Returns the activities of the authenticated athlete
GET/activities/{id}/comments
List Activity Comments
Returns the comments on the given activity
GET/activities/{id}/kudos
List Activity Kudoers
Returns the athletes who kudosed an activity
GET/activities/{id}/laps
List Activity Laps
Returns the laps of an activity
GET/activities/{id}/zones
Get Activity Zones
Returns heart rate and power zones (Summit)
GET/activities/{id}/streams
Get Activity Streams
Returns the given activity's streams

Example: Get Athlete Activities

curl -X GET "https://www.strava.com/api/v3/athlete/activities?per_page=30" \
     -H "Authorization: Bearer ACCESS_TOKEN"

Use before and after params (epoch timestamps) to filter by date.

Athletes

Access athlete profiles, statistics, and zones.

Endpoint
GET/athlete
Get Authenticated Athlete
Returns the currently authenticated athlete (profile:read_all for the detailed representation)
PUT/athlete
Update Athlete
Update the currently authenticated athlete
GET/athlete/zones
Get Athlete Zones
Returns the heart rate and power zones
GET/athletes/{id}/stats
Get Athlete Stats
Returns the activity stats of the authenticated athlete (Everyone-visibility activities only)

Example: Get Athlete Stats

// Response includes totals for rides, runs, and swims
{
  "all_ride_totals": {
    "count": 250,
    "distance": 15000000,  // meters
    "moving_time": 180000,  // seconds
    "elapsed_time": 200000,
    "elevation_gain": 150000  // meters
  },
  "all_run_totals": { ... },
  "all_swim_totals": { ... },
  "ytd_ride_totals": { ... },
  "recent_ride_totals": { ... }
}

Clubs

Access club information. Strava removed the Club Members, Club Admins, and Club Activities endpoints on September 1, 2026 — only the two below remain.

Endpoint
GET/clubs/{id}
Get Club
Returns a given club
GET/athlete/clubs
List Athlete Clubs
Returns a list of clubs the athlete is a member of

Gear

Retrieve information about bikes, shoes, and other equipment.

Endpoint
GET/gear/{id}
Get Equipment
Returns an equipment (bike or shoe)

Routes

Access routes, including export to GPX/TCX formats for navigation devices. Private routes additionally require the read_all scope.

Endpoint
GET/routes/{id}
Get Route
Returns a route
GET/athletes/{id}/routes
List Athlete Routes
Returns a list of routes created by the athlete
GET/routes/{id}/export_gpx
Export Route GPX
Returns a GPX file of the route
GET/routes/{id}/export_tcx
Export Route TCX
Returns a TCX file of the route
GET/routes/{id}/streams
Get Route Streams
Returns the given route's streams

Segments

Segments are specific sections of road or trail where athletes can compare times. Private segments and athlete-specific segment details additionally require the read_all scope — see the permission scopes guide for what each scope grants.

Endpoint
GET/segments/{id}
Get Segment
Returns a segment
GET/segments/starred
List Starred Segments
Returns a list of starred segments
PUT/segments/{id}/starred
Star Segment
Stars/unstars a segment
GET/segments/explore
Explore Segments
Returns the top 10 segments in a given region. Extended Access Tier only since September 1, 2026
GET/segments/{id}/streams
Get Segment Streams
Returns the given segment's streams

Example: Explore Segments by Location (Extended Access Tier only)

// bounds format: sw_lat,sw_lng,ne_lat,ne_lng
curl -X GET "https://www.strava.com/api/v3/segments/explore?bounds=37.7,-122.5,37.8,-122.4&activity_type=riding" \
     -H "Authorization: Bearer ACCESS_TOKEN"

Segment Efforts

Segment efforts represent an athlete's attempt on a segment during an activity.

Endpoint
GET/segment_efforts/{id}
Get Segment Effort
Returns a segment effort (requires Strava subscription)
GET/segment_efforts
List Segment Efforts
Returns segment efforts for a given segment and athlete (requires Strava subscription)
GET/segment_efforts/{id}/streams
Get Segment Effort Streams
Returns streams for a segment effort completed by the authenticated athlete

Uploads

Upload activity files in FIT, TCX, or GPX format. The upload is processed asynchronously.

Endpoint
POST/uploads
Upload Activity
Uploads a new activity data file
GET/uploads/{uploadId}
Get Upload
Returns the status of an upload

Example: Upload Activity File

curl -X POST "https://www.strava.com/api/v3/uploads" \
     -H "Authorization: Bearer ACCESS_TOKEN" \
     -F file=@activity.fit \
     -F data_type=fit \
     -F name="Morning Ride" \
     -F description="Great weather today!"

Check upload status with GET /uploads/{uploadId} until activity_id is returned.

Activity Streams

Streams are detailed time-series data for activities, including GPS coordinates, elevation, heart rate, power, and more.

Stream TypeDescription
timeTime in seconds
distanceDistance in meters
latlngGPS coordinates [lat, lng]
altitudeElevation in meters
velocity_smoothSpeed in meters/second
heartrateHeart rate in BPM
cadenceCadence in RPM
wattsPower in watts
tempTemperature in Celsius
grade_smoothGrade/gradient percentage

Example: Get Activity Streams

curl -X GET "https://www.strava.com/api/v3/activities/12345/streams?keys=time,distance,latlng,altitude,heartrate,watts&key_by_type=true" \
     -H "Authorization: Bearer ACCESS_TOKEN"

Official API Playground

Test API endpoints interactively with the Strava API Playground.