Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
For years our website has run cron jobs sending request to the Strava API. We are having three cron jobs. So every minute we are sending request to Strava but we are experiencing "Rate Limit Exceed " issues now. Strava suggests making a change to web hook events API, which is fine by me, but where do I find capable resources to that code change?
I need to be able to access the routes, to later search for the GPX of each Athlete associated with my club, and thus be able to recover all the statistics to consolidatename, date, hour, local, km, gpxThe api I'm using is: GET https://www.strava.com/api/v3/athletes/:athleteId/routes?page=1&per_page=200 but I get Forbidden Is there any way to search for the information of the athletes associated with my club?
Hi Developers, I am Atul Sharma and I want to authorise strava using OpenID Connect in Firebase and for that I need Issuer URL as described here. So can anyone suggest me where can I get this URL.Thanks
Hi folks,I need help with something that should be straightforward. I want to execute the Get API Call List Club Activities (getClubActivitiesById) [https://developers.strava.com/docs/reference/#api-Clubs-getClubActivitiesById]. I meet the pre-requisite of being a member of the club I want to extract data from.Via Postman I execute the following actions:1. Get Action: https://www.strava.com/api/v3/clubs/**bleep**/activities?page=&per_page=2. In the Headers Section I define the Key field as "Authorization" and specify its value with "Bearer 'YourAccessToken'"3. The response I get is the following:{ "message": "Bad Request", "errors": [ { "resource": "Application", "field": "page", "code": "invalid" } ] }What is weird is that the API call does get picked up as an API call on the API Usage report in the My Application API section. I hence conclude that the API call is executed correctly but I am lacking authorization, but I am sure I use the right token at the right time.He
Hello Everyone,To preface this, i am very new to working with APIs so have been trying to follow multiple tutorials...Im sure this topic has been discussed before, but i cannot find my situation and am hoping someone can help me...So...I have followed the instructions on authorization Iincluding using the correct read_all in the scope that trips a lot of people up.I am able to exchange the code for an access token, and the retrieve all of my activities - no problems - Great stuff!I save the token to a json file, opening and checking the expiry each time i make a new call.The problem arises 6 hours later - i need to use the refresh token to get a new access token - which i (seemingly) do without issue, i make the request and recieve back the new access token (and update my saved json file)- but i can no longer retrieve all of my activites.Am i doing something wrong? do i need to include something when requesting my new access token? Ive been searching round google for about a week
For some reason, I am not receiving any webhook events (new activities, updated activities, etc) today. I have never experienced this issue before. Is there some kind of problem that would cause this today?
Hello everyone. I'm having an issue with retrieving user data.I decided to create an API that would fetch data from my friends and push a weekly leaderboard to our Telegram channel, showing who ran the most.So, let me describe the process of creating the application.1) I registered the application on Strava and obtained all the necessary data to work with their API.2) I created an Express application and connected it to the Firebase database.3) Through a Telegram bot, I asked my friend for permission to access their personal information. I used him to test the application architecture. I sent him the following link: https://www.strava.com/oauth/authorize?client_id=${clientID}&redirect_uri=${redirectURI}&response_type=code&scope=read_all. Please note that the scope field includes the read_all parameter.4) My friend clicked the link and granted permission to share their information with me. At this stage, I stored all the necessary data, including their ID and token, in the d
When you visit Strava.com and sign in, you can view (and download) Strava's source which is not minified.Their custom @strava Components are also shipped with the source.Interesting bit of knowledge and some good reading!
Hi everyone! I am somewhat familiar with Strava's API both directly via HTTP and with the Python Stravalib library through my visualization app Heatflask (https://www.heatflask.com) (Client ID 12700) which I has been running since 2016. However I have another thing I am trying to do on my own. I have a lot of old activities that I imported from SportTracks dating from 2009 - 2014, very few of which have heart-rate data. I would like to retroactively update RPE (https://support.strava.com/hc/en-us/articles/360032535512-Perceived-Exertion) for these activities by comparing with similar more recent efforts. I can manually change that value one activity at a time on Strava website, which is really slow. Is there any way I can do it via API? I do not see RPE as a parameter for Activity update (https://developers.strava.com/docs/reference/#api-models-UpdatableActivity). In fact, the only info I have seen about RPE for Strava's API was th
On the getting started guide in the section F. Why do I need webhooks? it states: "Per our API terms, you need to implement webhooks to know when an athlete has deauthorized your API application" What about mobile only applications? We're building a mobile only app and have no intention of managing a backend server because our app does not require one to function. So are mobile apps exempt from this, or is there a special way to handle this case?
Hi all.Using a get on https://www.strava.com/api/v3/activities/, I get a list of activities.I realised that each activity in the json response is a summary of the activities, because "resource_state" : 2,So I tried to tried to get the detailed representation.Which you can get using /activities/{id}.But for that, you need the ID.OF course, I can get the ID from the first query, and then re-query using the ID, but I'm wondering if there is not a simpler way.For instance a way to get a list of ID directly, and then using that list to get the detailled representation.Thanks for any hint!
On June 22/23 for some users of our app the upload failed for FIT files with swimming data. The response error when uploading the FIT file was:status: 404 error: {"message":"Record Not Found","errors":[{"resource":"resource","field":"path","code":"invalid"}]}Without any change on our site, the problem disappeared on June 24. The same swimming data FIT files that caused the 404 error could be uploaded succesfully. So it looks Strava fixed it.But yesterday (June 29) or the day before, the problem happened again. And it continues today. Not for all users who upload swimming data FIT files, but for some of them, in different countries on different continents.We reported the issue to Strava, added a concrete example (user id and time the problem happened) and the response was that they couldn't look into it. Because we don't know the source of this issue, and we can't reproduce it ourselves, we hoped that Strava would have a look into their log files, but it seems they don't want to do this
Is there an easy way to determine how old a segment is? If not, could it be added to each segment e.g. creation date?
Hi there!I am looking for someone to please point me in the direction of some help for API integration for an Organ Donation event we are hosting in September called Race for Recipients.Last year we logged 11,000 activities in a week across the UK.Many participants have asked that we get STRAVA integrated with our web based platform to improve the user experience.I have spoken with customer services at STRAVA, but unfortunately I am still not clear what I need to do.... please help!Many Thanks!
import requests def get_strava_profile(access_token😞 url = "https://www.strava.com/api/v3/athlete" headers = {"Authorization": f"Bearer {access_token}"} response = requests.get(url, headers=headers) if response.status_code == 200: return response.json() else: print(f"Error: {response.status_code}") return None if __name__ == "__main__": access_token = "YOURACCESSTOKEN" profile_data = get_strava_profile(access_token) if profile_data: print(profile_data) get_strava_profile('')How do I get this working? I get a 401 error
I have developed an Android bike computer and my users wants to be able to send live location data to their family or love ones. Such that they can be tracked. Just like Strava Beacon function. As the Strava Beacon function exists I would like to have an API which can be used to post live location data every x minutes/seconds if an activity is started. Such that the my users can use the beacon functionality of Strava. It would be nice if all Strava users can have a unique link which can be reused for each activity. Possibly with privacy settings options (public visible or only for Strava followers or only Strava Beacon followers e.g.) Benefit for Strava is that users should be a Strava Subscriber to be able to use the function. So possibly more subscribers for Strava. Benefit for me is that I do not have to develop this kind of functionality.
We are working on our webhook implementation, and are finding that after the create POST, photos are not available when we do a GET to the getActivityById endpoint. Assuming this is a timing issue, it would be great to have them as part of the update fields in an update POST. Right now the getLoggedInAthleteActivities endpoint is more consistent than webhooks and the data provided for both create and update events - we'd love for that to be swapped so we can deliver a better experience for our users.
Since yesterday, I haven't been receiving any new activity events. I attempted to delete my subscription and re-subscribe, but I am now only receiving a "bad request" message from Strava. Has anyone else experienced this issue?
Hi all,I have a request. Is it possible to expose the Fitness & Freshness metrics via the Strava API? Currently these metrics can only be seen on the Strava website/App.
I received three activity from one person. However, all its values are the same, perhaps the only similarity here is activity_id and polylines_id. Can you check for me and give me the reason? Thank you for your help
Is there any documentation on exactly what is counted under "Read Rate Limits" vs "Overall Rate Limits" ?https://www.strava.com/settings/api includes little (?) links next to each, but they both link to the same page which does not mention Read vs Overall.We're assuming read is pretty much any call to GET athlete/activities or activities/.../stream, but it would be nice to confirm - the overall rate limit we have is five times the read limit, and we have no idea what we would do with so many write calls 🙂Thanks
I'm hitting an issue where the activities api is behaving unexpectedly. I can curl and retrieve details for many activities but I'm having an issue with indoor cycle activities from Wahoo. curl -H "Authorization: Bearer ***" https://www.strava.com/api/v3/activities/9186799911 {"message":"Resource Not Found","errors":[{"resource":"Activity","field":"","code":"not found"}]} Is there something different I need to do to get an api query for a cycle activity from Wahoo working? Running the same command against https://www.strava.com/api/v3/activities/9187552481 gives the expected result.
Why has Strava removed the distance behind/ahead of pace for goal targets?!? Very disappointingPLEASE BRING IT BACK
I am working on a React application and am using the Strava API to retrieve an athlete's activities. It is working successfully except for some reason it isn't returning Virtual Rides. I have been testing it by manually creating Virtual Rides on strava.com, but these rides are never being returned by the API call. The Virtual Rides I have been creating have their visibility set to "Everyone", so I don't believe it's a privacy issue. Again, the API call is returning normal Rides just fine; it's just not including Virtual Rides. Why not? Here's a code snippet: "return axios.get(`https://www.strava.com/api/v3/athlete/activities?access_token=${user.access_token}`, { headers: { Accept: "application/json", Authorization: "Bearer " + user.access_token, }, } );"
Is there any way to get to the full activity stream from specific friends, from an API perspective? It seems like API: https://www.strava.com/api/v3/activities/{id}/streams?keys=watts only works for your own activites.However, the full activity is available through the website (with cookie authentication):https://www.strava.com/activities/9297562809/streams?stream_types%5B%5D=latlng&stream_types%5B%5D=privacy&stream_types%5B%5D=time&stream_types%5B%5D=heartrate&stream_types%5B%5D=altitude&stream_types%5B%5D=distance&stream_types%5B%5D=moving&stream_types%5B%5D=velocity_smooth&stream_types%5B%5D=cadence&stream_types%5B%5D=watts&stream_types%5B%5D=watts_calcIf this is available on the website, why isn't on the API side?thanks,
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.