Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
Since today, most of my POST requests to the /uploads API are failing with HTTP 413 (Payload Too Large).I did some additional tests and it seems that files bigger than 1MB are being rejected - unfortunately most of my (TCX) files are larger than that.This issue started to occur today (28.08.2025) after 13:15 UTC. All uploads before were successfull. All uploads afterwards are failing
I know scraping is frowned upon but is it fair game to source the public athletes endpoint (e.g. https://www.strava.com/athletes/{id}) which is reachable without a login and is not explicitly forbidden by the robots.txt for athlete image links and other stuff to use in a Strava API application? Sorry if this happens to be a duplicate question. Have a nice day!
Hi I was just wondering if there was an endpoint(s) to access data behind the public global heat map?
I’m looking to incorporate the Global Heatmap data into recreation and conservation planning efforts in USA. Is this possible? Is there someone I could speak with to discuss it?
We successfully created a webhook subscription using our development site (dev.xxxx.com), but we have been unsuccessful subscribing using our production site after we switched the app’s Authorization Callback Domain to production (xxxx.com).When we view the app’s subscriptions, it returns empty.Attempting to create a new subscription from production returns “GET to callback URL does not return 200” which many people have reported here.However, even though we have not changed our Authorization Callback Domain back to dev.xxxx.com, we can still create a subscription from development even though the app settings on the Strava website shows the production url as the callback domain.It seems like the initial URL we created a subscription with is still the one being used for some reason even though the production $callback_url is what we send to Strava..Has anyone else had this issue before? Perhaps there is another place where the URL needs to be updated that I am overlooking?
Hello,I've been developing the website www.sherpa-map.com which uses Leaflet to display various map types and allows for routing using a self-hosted Graphhopper service. I would like to incorporate Strava's global heatmap but have been unable to find any documentation or recent examples, I can't even get a simple curl request to go through with a variety of different URL attempts.Is there any documentation? Are there any examples? Any help would be appreciated.Thanks!
I'm creating a mobile app that uses Strava authentication.Because there's a link to create an account below the authentication screen, the app is being asked to include a function to delete the account.Looking at the API documentation, there's no function to create or delete an account, and there's no explanation about this, so I'm thinking it's not possible, but does anyone know anything about it?Apple has asked me to let them know if it's not possible due to the API specifications.https://developers.strava.com/docs/reference/
May I kindly ask if there is a mechanism to request permission for connecting more than 1,000 athletes? Previously, I submitted a request and was approved for a connection limit of 999 athletes. However, this number is still insufficient for our upcoming event.Thank you very much for your consideration and support.
My feed is limited. It runs out. I do not see everyone’s runs, when selecting LATEST ACTIVITIES, and PERSONALISED is no better
One app I developed has been approved and is currently live. I now wish to develop another app. In doing so, would it be possible to request an additional client ID? This is because the callback domain is different. https://share.hsforms.com/1VXSwPUYqSH6IxK0y51FjHwcnkd8Upon reviewing the application form at the above URL, I noticed the “Additional Apps” section mentions “staging, development, etc.” Does this mean a single Strava account can hold multiple client IDs? If so, please advise how to request the addition of a client ID.
Hi all,We’re encountering an issue with the Strava API where webhook events are not being triggered consistently when a user changes the activity type to “Surfing.”Here are some test cases we’ve observed: No webhook triggered: StandUpPaddling → Surfing ❌ Kayak → Surfing ❌ Canoe → Surfing ❌ Webhook triggered as expected: Swim → Surfing ✅ Kitesurf → Surfing ✅ Sail → Surfing ✅ Windsurf → Surfing ✅ These are the scenarios I’ve tested so far, but there may be others.One detail I’ve noticed is that when receiving webhook updates, the activity type for `Surfing` actually comes through as `WaterSport`. This may be related to the inconsistent behavior.Question:Would someone be able to clarify why webhook events aren’t triggered for some activity-type changes involving Surfing, and whether this is expected behavior? More importantly, is there a recommended way for us to ensure we can reliably process all Surfing activities, including when a user changes an ex
First of all, I want to appreciate you for making the API publicly accessible. But day to day I face issues, or lack of features, that make integrating with Strava harder. I hope this one is not another thread unanswered (or poorly answered) as with most of the threads I opened so far. Otherwise I'm afraid I'll be forced to just stop contributing. I strongly hope that's not the case.This time is about the webhook events: they do not include the sport type. IMO, this is a key field, mostly for create aspect type.As ourselves, I'm sure there are a lot of people that will need this because their App is just related to a single (or subset of) sport: cycling, running... Not having this field implies a call to the API per event to check whether if the event should be processed or not. This makes the event almost unusable.Hoping for an answer,Thanks.
I’ve been using the api/v3/activities/{id}/streams?keys=time,watts in a web application for roughly 3 years with no problems. This last week, suddenly, the exact same API call seems to be returning data with gaps: not starting with the same timestamp as the .fit file (ie, missing the first 200 or so values) and skipping one or two seconds of power data throughout the stream (ie, like Swiss cheese, full of holes)Is this my problem or Strava??
Hi,I got the following error when trying to fetch from activities/xxx/streams:Access to fetch at 'https://www.strava.com/api/v3/activities/15565079206/streams?keys=latlng&key_by_type=true' from origin 'https://strava-mapy.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.When debugging in chrome, I can see on “Network tab” no Access-Control-Allow-Origin response header for activities/xxx/streams request:It seems like a bug. It must have disappeared recently because I remember two weeks ago it worked fine.I also noticed that other methods work fine - let’s see for example response headers for /activities method:Could you check it, please? Can you add Access-Control-Allow-Origin back to activities/xxx/streams method?Thanks a lot,Jan
Is it possible to connect the bike to work mobile app to Strava? The idea would be, that participants to the bike to work Challenge in May and June could transfer their Strava data to the bike to work mobile app to avoid having to enter routes manually on the bike to work mobile app. This would involve only rides marked as ‘commute’. If so, how should the developers of the bike to work mobile app proceed?
The majority of my create activity API requests succeed, except for one user who continues to see empty body responses. API: POST /api/v3/activitiesRequest body:{external_id: 'blurwsuuid:398B5EDB-A11F-41D9-86A7-D67AF5973642',type: 'Run',trainer: 1,workout_type: 3,name: 'App Name: Afternoon Treadmill Run',description: 'Full Potential Unlock — 30 min https://www.appwebsite.com',start_date: '2024-09-04T18:03:25.945Z',elapsed_time: 1868.2,distance: 3865.9493681170975,calories: 248.20267505699672,has_heartrate: true,average_heartrate: 148.09549154564937,max_heartrate: 173}Expected response body:{id: ...}Actual response body:(none)
I recently needed to create a second strava api application because I need API access on two different subdomains, but it's incredibly limited with the Number of athletes allowed to connect being capped at 1. As far as I can tell, nowhere on the 'My API Application' page is there a link to apply for actual API access, which is incredibly frustrating from a developer experience standpoint. Still, I filled out the Strava’s Developer Program form that I received in my email. This was almost a month ago, and I haven't received a response of any kind yet. If I've been denied, that's again frustrating from a DX standpoint--I'm only looking to use a different subdomain on an app that's already been verified. It's also obviously pretty disrespectful to not have an email sent letting me know that I've been denied. In general, information about this stuff seems hard to come by, and I don't think it should be that way.
I've seen that you're unable to have multiple sub-domains authorized for a callback URL on the application, but what about for testing locally?I'd love to test version my application on localhost but unfortunately it looks like I have to have an entirely separate application for it and wondering if that is anyway by-passable for local testing. Thank you!
I had a webhook that was working for a few years and stopped working on April 12. I thought perhaps deleting and resubscribing might do something. I was able to delete the old subscription. If I try to subscribe using the same process that has worked in the past, I get a "not verifiable" response back. The strange thing is that my server logs don't show any traffic from the Strava server, so it seems like Strava can't contact my server.Anyone have any ideas?
I have a running blog and a separate riding blog on two different domains.I set up the API for my earlier site and it’s working fine.But I cannot set it up to also run on the newer riding website: {"message":"Bad Request","errors":[{"resource":"Application","field":"redirect_uri","code":"invalid"}]}Any ideas/workarounds?Both sites are running WordPress.
I created a Discord bot using the Strava API. Our club has around 600 members, and we plan to organize team competitions on our Discord server. However, the "Number of athletes allowed to connect" is limited to 1, so I'm unable to fully utilize the API. I have filled out the form and submitted it. How long does it take for approval?
Hi,I applied for the API a few weeks ago and received an email approving it, in which it says that I have up to 999 athletes limit.However, when I go to https://www.strava.com/settings/api I still see the limit of only 1 athlete. How is this possible? Do I have to do anything else?Thank you.
Hi, I’m building an application and I need high resolution gps data. The best way would of course be to download the gpx, however, I saw it’s not possible for activities. I’ve read that it’s possible to reconstruct the gpx from streams. There are even libraries that do it for you (strava2gpx), but unfortunately not enough data points are provided.Does anyone know if downloading the .gpx will be supported by the API any time soon? If not, does anyone know any workaround/hack?Thank you.
I ran over the course of 3 days, pausing the activity while I slept and resuming it in the morning. I pressed finish and then save activity on the final day and it took me to the home page where it said processing activity and nothing happened. The activity never uploaded and there is no evidence of this. I really hope to get this resolved as this was a monumental task for me, running over 150km
I have developed an activity tracker app for my running group. The problem that I am facing is hitting rate limit quite often and major API calls are related to refresh access token.I just want to get suggesion and best practices from fellow devs here, so I can optimize API calls and avoid hitting rate limit and can also provide my running fellows real time activity data :)Thanks in advance for your help.
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.