Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
Dear All,I am currently developing an application that integrates with the Strava API, and I am experiencing an issue when attempting to subscribe to the webhook endpoint using a custom domain.Here are the details of the issue:- ✅ The webhook works when tested through ngrok (e.g., https://xxxx.ngrok.io/webhook).- ❌ However, when I try to register the webhook subscription using my custom domain, I receive a `503 Service Temporarily Unavailable` error from the Strava API when hitting the endpoint `https://www.strava.com/api/v3/push_subscriptions`. using ngrok using our domain I have verified the following:- My server is accessible via HTTPS and has a valid SSL certificate (Let's Encrypt).- The endpoint `https://domain.com/webhook` is reachable and returns `EVENT_RECEIVED` for POST requests.- The webhook route is publicly accessible and correctly configured in my Laravel application.- Firewall rules and server logs do not show any issues or blocking behavior.I suspect the issue may be on
Strava recently made changes to the Android app, generally for the better.Unfortunately, the developers forgot to do proper testing, which I noticed today.I had completed a 3.5 mile jog and it being a beautiful day in Northern CA, I took an extended break, sitting on a bench. When I completed this segment, I took a screenshot of my Strava screen (File: Strava 1)About 25 mins later, when I decided to get my rear in gear and do the return 3.5 miles, I looked at my phone and noticed some weirdness on Strava.Even though I had been sitting still on the bench, I saw my SPEED was changing! Huh? I took some screenshots as evidence. I also noticed that I had GAINED .06 miles in distance during the time I had been sitting on the bench! Too funny. (Files: Strava 2, 3, 4)Can we get the Android app fixed Strava because now I have no confidence in anything I am tracking via Strava.Even funnier, I am on a free 30 day trials of enhanced Strava data. Given this screwed up data, there is zero chan
Hello everyone,I'm planning a charity marathon in Japan using Strava.I'm currently developing an API for this purpose, but as shown in the attached image, the "Sustainable Athletes" number is set to 1, which seems to limit Strava authentication to just one person.I would like to change this number to 100.Could you please let me know how I can do that?I would greatly appreciate your help.
Hello Strava API Support,We have an integration between Strava.com and our platform Train2Go.com, where coaches expect to see the activity data of their athletes. This process relies on Strava's webhook system: when an athlete completes an activity, we expect to receive a webhook notification so we can load the activity into Train2Go.We’re currently facing an issue where this process works for some athletes, but not for the majority. For many users, no webhook is triggered (or received), and therefore their activities are not uploaded to our platform.We suspect the issue might be related to the webhook system, but we’re not entirely sure — it could be caused by something else. We’d really appreciate your help in troubleshooting this. Has this behavior been observed before? Could there be another potential reason why some athlete activities sync correctly and others don’t?For additional context: about a week ago, we migrated our production environment to a new server with a new IP addre
Hello Strava Developer Team, I am developing a non-commercial web application to support a charity marathon event in Japan.The app connects with Strava to collect each participant’s running data and displays a leaderboard to motivate runners. The event is organized by a volunteer group, and we plan to limit participants to under 100 people.The app only uses the read and activity:read scopes to fetch participants' run distances during the event period. I kindly request an increase to the athlete authorization limit for my application so more runners can connect their Strava accounts. Thank you for your support and consideration. Best regards,
Starting this afternoon, Strava is not hitting our callback anymore after the authorization of a new athlete to our app.Steps:User clicks on authorize Strava in our Flutter app on iOS browser popup opens and user has to sign in User clicks on sign in with Apple User gets redirected to the Strava app From the Strava app, the user is not redirected back to our app anymore and no callback is triggeredThis worked in production this morning and stopped a few hours ago.Any known issues or updates happening right now?
I want to switch from dev to production API so that I can integrate in my live website. For dev, I can just get one login.
Hello,I know there are various third-party tools that use Strava API data for gathering information for crowns/CRs. However, I would like to gather information on a number of Local Legends for segments that are local to me. I have two questions:a) Are there any APIs available that include Local Legend data? I did a web search and found several references indicating that Local Legend data is not included in APIs, even though crown/CR data is in the APIs.b) If I use a web scraping tool to gather the Local Legend information from approximately 200 segments, would this violate any terms of my user agreement? Once again, I know that there are tools that exist to scrape this data for crowns/CRs, but I don't know if the same open policy applies to Local Legends data.Thank you!Dennis
Anyone else having this issue?Super simple:curl -k -X GET "https://www.strava.com/api/v3/activities/<ID>" \ -H "Authorization: Bearer ***" returns:{"message":"Resource Not Found","errors":[{"resource":"Activity","field":"","code":"not found"}]}The privacy controls are set to ‘Everyone’. I can’t return data for any activity.Clearly the token is fine, else its unauthorised. Thanks
Hi there, I build the Fitshot app, client id 130939. I submitted an limit increase 8 days ago now, and have sent countless emails since then. My app has not been accepting new reviews for days and is now getting negative reviews on the app store. I can’t possibly go into the weekend like this. How can I possibly accelerate the review process? (even for a small limit increase while the application gets reviewed?)
I am reaching out for assistance with verifying the webhook URL for my application. I have registered the following callback URL to receive Strava webhook events:https://pacerai.vnHowever, I am encountering an issue where the webhook subscription cannot be verified successfully. Despite ensuring that the URL is publicly accessible and SSL is correctly configured, I have received an error indicating that the URL is "not verifiable."Could you kindly assist me in troubleshooting this issue and help ensure that my webhook URL is properly verified? Below are some key details for your reference: Webhook URL: https://pacerai.vn Platform: Strava Webhooks Issue Encountered: Callback URL not verifiable Error Message: "not verifiable" I have already verified that the URL is accessible via a browser and curl, and SSL is working correctly. I have also ensured that the correct hub.challenge response is sent when the verification request is made. However, the verification step is still failing.
(I’ve read the relevant posts on here but did not find the answers I seek there)Hi all,New to oauth2, building an app that needs to read activity data from Strava. For this, I need activity:read in my permission scope. However, I can only get the “read” scope despite choosing scope arg as “activity:read” or “read, activity:read”. I can see that the token generated only has “read” permission on the API app dashboard on my profile, and I also see an authorization error when I invoke the read activities API. Here is my code: REDIRECT_URI = "https://localhost:8501"AUTHORIZE_URL = "https://www.strava.com/oauth/authorize"TOKEN_URL = "https://www.strava.com/api/v3/oauth/token"SCOPE = "activity:read"API_BASE = 'https://www.strava.com/api/v3' auth_url = f"{AUTHORIZE_URL}?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope={SCOPE}" I exclude the client id and secret of course, and the rest of the code that creates a link on my dashboard to auth_url. This genera
Hello all, In our cotacol (Belgian) app, we are leveraging Strava Segments so our members can "collect" different hills in Belgium. Those hills match one:one with a Strava Segment. Now, I am building a functionality, so that users can select one of their Routes and get to see which of the 1000 segments that would be conquored with that Route... However, just like the default behavior with an activity, it seems not all the routes are returned in the response for a Strava Route. And I am wondering if there is a similar query string parameter we can use, to indicate we need all segments in the response. (just like include_all_efforts with the GetActivity operation). What I am doing now: - GET /routes/{routeId} This only returns a subset of the segments in the payload.
why i have two api app with same clientId, and cant remove one of them, it confuse me bcs sometimes the app that shows in dashboard is the first one sometimes the other
Relatively new to this, so hopefully an easy mistake to fix: I am trying to set up an API connection so I can fetch my own data from Strava and import it to Excel. I am following the usual set-up as described here : https://developers.strava.com/docs/getting-started/#oauthAlthough I have tried the final authorization time and time again, it keeps saying my acces token is invalid. I have followed the steps multiple times. The token is not expired either, but it keeps giving me errors. I have checked step C4 and C5 in Postman. That does not give me errors. But when attempting D10/D11, I get either 404 errors (although im sure my website is correct) or 401 errors. I also notice that my acces token in step C4/C5 differs from the oneAny idea’s on how to solve this?
Since last week I noticed that the all_*_totals (eg. all_run_totals) have reset on the API to start counting from 0 even though the Strava Portal clearly indicates a much higher number. On Strava portal my all time running stats are 113However the API https://developers.strava.com/docs/reference/#api-Athletes-getStats no returns only my most recent run count"all_run_totals": { "count": 1, "distance": 5630.0, "moving_time": 2473, "elapsed_time": 2519, "elevation_gain": 86.63724517822266}, How do I get this corrected?
Hello,I’m trying to find an API endpoint to get my best effort times on different run distances (1K, 5K, HM etc.), but I can’t find a sensible way to do it. I understand that I could, in theory, go through each detailed activity, but that would be a hassle. There must be a more efficient way of doing this?
Can anyone help me understand why some segments appear to return segment efforts via API, and others do not? Using the same query, changing only the segment ID, one segment returns efforts and another does not. When I view in the web UI, e.g. https://www.strava.com/segments/1234, I can see a recent effort (definitely within the time range). Both activities are Followers Only, both are marked “downhill”, and I am properly authenticated. I cannot tell any other important differences. The only thing I can think of is that I have only done the segment that doesn’t work once, whereas the one that works I’ve done numerous times.What’s more, if I manually find the activity view the web UI, and query /api/v3/activities/4321, I am able to see the segment effort contained in that JSON response. Any help appreciated. Thanks in advance! curl "https://www.strava.com/api/v3/segment_efforts?segment_id=$SEGMENT_ID&per_page=1&page=1&start_date=2000-01-01T00:00:00&end_date=2025-06-
Hello there,I’m currently working on webhook integrationAn existing webhook subscription is still active under this application, but it points to an outdated callback URL which is no longer online. As a result, any attempt to delete the subscription via the DELETE /push_subscriptions endpoint returns a 404 error.Is there a way to force-remove or to override a no-longer used subscription? The server to which the url points is no longer running since a while.Thanks a lot in advance for your help
https://developers.strava.com/docs/reference/#api-models-DetailedActivity states that a `best_efforts` field should be returned. Presumably this would be a subset of the `segment_efforts` collection, but I am not seeing it returned in any queries in order to verify this assumption. What are the conditions that result in an activity returning the `best_efforts` field? Is it a subset of `segment_efforts`? Or is it something else? The docs should be updated with this information.
Why does this rogue app called “a” appear in My Apps? It leads to a website of script-kiddy programmers who dabble in various LLMs.Who owns this app “a”? When I revoke access, and change my password, it reappears anyway after up to one hour. See screenshot:The website this app links to is not a website I use, is not a professional website, and is six LLM programmers at university. I don’t understand what is going on. Surely Strava aren’t using these guys for LLM processing? My account is not compromised and password has not been given to anybody. I do not use these LLM services. Thanks.
Is this issue happening to everyone? Every request is returning a placeholder image.https://d3nn82uaxijpm6.cloudfront.net/assets/media/placeholder-photo@4x-6c5d2aaeadca1292be72943c04ea6defe7dcd610da7dc87a1ccaad30e134b2d6.png
I’m writing an app that uses the Strava API to show runs and whether they ran a segment or not. I don’t want to show data/details about the runs/athletes if the logged in user is not a “friend”.I cannot find anything in the documentation that shows an endpoint that would return a list of athletes that the logged in athlete follows, but I know I can GET an athlete and it will tell me if they are a friend or not, but I don’t want to spam that endpoint for every athlete/logged in athlete.If I ask AI it will talk about a `/athlete/friends` endpoint, but if I hit that I get a 401. I don’t know what scope I need for that (I have “read-all”).Can anyone 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.