API Reference

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

Base URL
https://www.strava.com/api/v3

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
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 an athlete

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, members, and activities. The authenticated athlete must be a member to access club activities.

Endpoint
GET/clubs/{id}
Get Club
Returns a given club
GET/clubs/{id}/members
List Club Members
Returns a list of club members
GET/clubs/{id}/admins
List Club Admins
Returns a list of club admins
GET/clubs/{id}/activities
List Club Activities
Returns a list of recent club activities
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.

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. Explore segments by location or access starred segments.

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 segments in a given region
GET/segments/{id}/streams
Get Segment Streams
Returns the given segment's streams

Example: Explore Segments by Location

// 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
GET/segment_efforts
List Segment Efforts
Returns segment efforts for a given segment and athlete
GET/segment_efforts/{id}/streams
Get Segment Effort Streams
Returns streams for a segment effort

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.