Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
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,
My kids race mountain bikes and send me their strava beacon. I'm hoping to be able to pull their real time location data (and maybe their teammates) and put it on a map where the family members who are at the race can see where everyone is on the course. Picture beacon as it is now but with multiple riders on the screen at once. I might be missing this somewhere but I cant tell if the Get Activity Streams would be able to give me the strava location data in real time. I tried using the Swagger Playground (and the API via postman) but I cant figure out how to get the activity ID of an activity that is currently being recorded. Any suggestions? Thanks!
Hello EveryoneLastnight i successfully set up my app using the Getting Started Guide. I was able to setup Postman and connect. I used to OAuth and got the code and was able to view all my activities on Postman and on this Strava API tutorial. https://youtu.be/sgscChKfGygToday however nothing works. Im sure its bc my access token is expired but I cannot figure out how to refresh it. Ive tried the tokens from my Strava API page and the new tokens i got from the OAuth yesterday on Postman to no avail. I can re-run the OAuth url and get a new code but and it returns new tokens but they dont work.I appreciate any help.
I tried to use strava api with clubs, try to get events, and detailed information for club athletes, but is not possible, i was looking the endpoints that strava use in his page and i find some endpoints can fit this like https://www.strava.com/clubs/{id}/leaderboard This endpoint retrieve all the club members with the detailed information
I want to create a data visualization personal project for fun. I want to make an interactive map to display public segment data. To compare personal times with others. Also to possibly highlight locals who have great times throughout the city (Im from NYC and want to only use segment data from the city).While doing my initial research for this problem I see many posts and forums talking about how Strava doesn't let you get this data anymore even if you're a paid user(I am a paid user). Is this true? Or am I seeing info on something else and getting myself confused?I really just want data on times and perhaps usernames(or athlete ID if usernames aren't allowed).If anyone knows about this please let me know if this is possible.Thanks for your time while reading this and any help you could throw my way!!
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.