Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
So after following 70 people by accident back to back strava won't let me follow anyone anymore everytime I tap follow it says an error encounterd with the strava servers. And the weird thing it i only had a total of 123 following people. Can you please respond and tell me how to fix this it's been going on for nearly 2 days were I corn follow and one please and thank you.
I’m building a personal comment automation tool using the Strava API.The app is for personal use only, designed to automatically post my own annual mileage data as a comment on my activities. I have confirmed that my access token includes “ [scope] => read,activity:write,activity:read_all,profile:write,profile:read_all,read_all”, and I am attempting to post a short comment to my own activity using the endpoint:`POST /api/v3/activities/{activity_id}/comments` However, I consistently receive a `401 Authorization Error`, and the response does not include any explanation or error details. Could anyone confirm whether comment posting via API is allowed for my app, or if there are any restrictions I should be aware of?
Hi,I´m using `${STRAVA_API_URL}/clubs/${clubId}/group_events` where const STRAVA_API_URL = "https://www.strava.com/api/v3";It seems that the id of some of the club events is obfuscated and the last digits are replaced with zeroes, so that e.g. 3393591506183906380 becomes 3393591506183906300 in the result JSON.Why is this error introduced?
I am trying to make a personal widget that shows my latest activity in the way that strava does in the feed. I am almost there now but I just can’t get the map to show the route line and I believe this is an issue with the polyline summary. Below is the code that I an using in scriptable, any ideas where I am going wrong? // -------------------------// CONFIGURATION// -------------------------const clientId = “My Client ID";const clientSecret = “My Client Secret";const refreshToken = “My Refresh Token";const googleApiKey = “My Google API"; // <-- paste your key hereconst athleteName = "Jess Langdon";const profilePicUrl = “My Profile Pic URL";const typeIcons = { Run: "https://img.icons8.com/ios-filled/50/808080/running.png", Ride: "https://img.icons8.com/ios-filled/50/808080/cycling-road.png", Swim: "https://img.icons8.com/ios-filled/50/808080/swimming.png", Hike: "https://img.icons8.com/ios-filled/50/808080/trekking.png", Workout: "https://img.icons8.com/ios-filled/50/808080/
We have reached the 999 Athlete limit and have tried contacting support, resubmitting the app for verification, and we have not heard back on how to increase these limits.Is there a separate contact form or method to get this number increased? I have sent mail and filled forms still no response from Strava
HiI'm building a system for myself and a group of users. I'm trying to get the info from Strava and send it to Health Connect (Google) and HealthKit (Apple Health), lets call them HealthApps refering to both of them. All activities are Public. But I'm having some problems: 1. Rouvy and many others didn't send data to Health Connect. So I plan to send example from Rouvy to Strava, then from Strava to Google Fit, then Google Fit to Health Connect. But from Strava it breaks and didn't get sended to Google Fit (which is active as "Other Services").First I suspect it was because it was created by a 3th party app. Then I create an activity direcrly from Strava and again it never gets to Google Fit.As a proof other direct activities from Garmin went out to Google Health and to Google Fit correct. So problem is not in Google Fit.I need to solve it. Please help me, I need to send ALL activities that start or not in Strava... 2. I could not use Strava API for this project, but for other project
I don’t see any endpoint, but it can’t hurt to ask: is there an API method to add a comment (not changing the description) to an activity?
When my app attempts to update an athlete’s activity (title, description), the API is returning an HTML page saying that Strava is temporarily unavailable. This is accompanied with a 503 error. Two things worth noting are:The activity is actually updated, so that seems to rule out any authentication/authorization issues. As of now, the status page at strava.status.com shows all systems are online. Is anyone else experiencing this? And is this really a Strava issue or might there be something I need to change on my end?Here’s the response text I’ve been receiving:<!DOCTYPE html><html><head> <title>Strava is temporarily unavailable</title> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> <meta name='viewport' content='width=device-width, initial-scale=1' /> <meta name='robots' content='noindex' /> <link href='http://strava.static.s3.amazonaws.com/images/favicon.ico' rel='icon' type='image/x-icon'> <style>
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.
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.