Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
Receiving upload failed today for a workout data upload to strava app I'm developing, but the maximum requests I have made were 15 in 15 minutes, and 63 in a 24 hour period. But yet every time I try to upload an entry I’m getting the 429 status and upload fails. Why is this?
Now that Strava’s new Developer Program has introduced a limit on the number of athletes who can register with an app, we can see the number of "athletes currently connected" in our API settings.I can see that the number in the API settings (Strava side) is higher than the number of athletes using my app. I seem to remember (maybe incorrectly) that there was a time when apps did not have access to the deauthorization endpoint, so I (and maybe others) would simply delete the athlete account on the app side and ignore the incoming webhooks for those athletes.The net result is that some devs will now want to deauthorize 'stale' athletes, but they no longer have the access tokens required by the endpoint.Now that a limit is being put on the number of connected athletes per app, will there be an opportunity for devs to deauthorize athletes without access token? Otherwise some apps will be hitting their athlete limit much sooner than they should...
I’m looking to update the PowerShell module started here: https://github.com/adamdriscoll/stravapwsh. However, the challenge I’m having are the requirements put on me with regard to creating a new application. I’m just interested in getting a Token to utilize the module and update it, not create an application.For example, I’d like to be able to perform all the various available API calls, but from the terminal. Any help in acquiring a Token without creating an app is appreciated.
I've noticed that links with certain domain names, such as.xyz or.com, are supported (meaning they're recognized and clickable), but.app domains are not. Is there a list of domains that are supported? Unfortunately, my Strava app currently uses a.app domain. Is there a plan to provide more support?
How to report security issues? I tried contacting security@strava.com but got no reply...
Hello Strava Developer Support,I'm experiencing an issue with my Strava API application's OAuth authentication flow. My application details:Application Name: SPK Pace Maker Client ID: 160282 Authorization Callback Domain: 3e3a9aaf-439b-439f-a4f2-7a7eb41f362d-00-178qxgw1h4xux.worf.replit.devIssue Description:When users try to authenticate with my application, the OAuth flow gets stuck at the email input stage and loops back to asking for email repeatedly, never progressing to the password input or authorization screen.What I've tried:Verified Client ID and Client Secret are correct Confirmed Authorization Callback Domain matches exactly Tested with different scope combinations (read, activity:read) Used approval_prompt=auto as documented Followed the exact OAuth URL format from your documentationCurrent OAuth URL being used: https://www.strava.com/oauth/authorize?client_id=160282&redirect_uri=https%3A%2F%2F3e3a9aaf-439b-439f-a4f2-7a7eb41f362d-00-178qxgw1h4xux.worf.replit.dev%2Fapi%2
Hey there! I’ve noticed something a bit odd with the update activity webhook. It seems to be reporting the wrong sport type when updating it. Let me give you a few examples: If I try to update the sport type from “Run” to “Mountain Bike Ride,” the webhook just reports “Ride” instead of “Mountain Bike Ride.” Similarly, if I try to update the sport type from “Alpine Ski” to “Trail Run,” the webhook just reports “Run” instead of “Trail Run.” It seems like for variations of the same sport type (like “Run” and “Trail Run” or “Ride” and “Mountain Bike Ride”), the webhook always ends up reporting the base sport type. Is this a known issue? I’d love to know if there’s a fix for this.
I’m using the API to update some fields: name, description, commute… this seems to be working well. I wanted to do a quick validation though so I take the response detailed activity data returned and validate that what I was expecting to have updated actual is updated. For name and description this works well… and for setting commute to TRUE this also works well… however, when setting commute to FALSE… the response data responds with TRUE… that said, when I actually go to the activity online I can tell that commute has been set to FALSE. Happy to provide more details to troubleshoot. And to clarify I’m talking about using an UpdatableActivity: https://developers.strava.com/docs/reference/#api-models-UpdatableActivity
I am working on a statistics project and would like to pull the leaderboard data for a recent challenge, like the ‘May 5K x Brooks Challenge’ Challenge. I also want to pull the gear used by the top # participants in the challenge. I did not see how to accomplish this with the AI and was wondering if it’s even a possibility. Thank you!
Planning on creating a Club for a work event and want to be able to download the members’ data in order to easily see who has been participating frequently, and how far we collectively have moved. How can I download this data? Thanks!
Export: comments.csv missing comment ID and associated activity/post/flag/… IDWhen I export my Strava data, one of the files is `comments.csv`. However, there are only two columns in that CSV: `Comment Date` and `Comment`. No `Comment ID`, `Associated Entity Type` and `Associated Entity ID`. So basically, just a wall of dated text. Almost perfectly useless.How can I get the comments in their original context?
Hello,We're seeing a change in behavior since yesterday, where uploading a TCX file to the /uploads endpoint with an activity_type="rowing", no longer sets the Sport correctly on the activity in Strava. It is set to 'Workout' instead of 'Rowing'.Did anything change on the Strava side related to activity_type?Thanks for the help.
How to use api to count miles or kilometers of every user in given club? Thank you in advance.
I'm developing a Web site. The site offers users to connect to Strava. It works well. However, many of my users use the Strava app and don't even remember their credentials. I would like the oauth2 flow to use the Strava app, not the Strava site for approval. Is there a way to do it?
Hi everyone, I’m reaching out for help regarding an issue we’re facing when syncing activities to Strava using FIT files.Our app is currently using Strava’s public API (https://developers.strava.com/docs/reference/#api-Uploads-createUpload) to upload user activities in the FIT file format (https://developer.garmin.com/fit/overview/). The upload works fine — GPS tracks and total distance are correctly recorded on Strava. However, we’ve noticed that some of the statistics displayed on Strava differ significantly from those calculated by our own app.We suspect this may be due to differences in how these metrics are calculated or interpreted between our app and Strava. To avoid confusing users, we would like to specify these statistics ourselves when uploading the activity, rather than relying on Strava to calculate them automatically.The statistics we’d like to control include:Total elapsed time Average speed Maximum speed Maximum power Average power Total elevation gain Total elevation l
I am an Android developer and I use webviwe redirect. Most of the time I cannot log in and authorize, but sometimes I can log in and authorize normally. How can I log in and authorize stably and successfully or troubleshoot the cause of the exception?my email: zdt_gz@outlook.comScreenshot of the problem:For business reasons I cannot post the login link I generatedI have contacted support@strava.zendesk.com but they said I need to ask questions in the community.I can log in normally on the Strava app
Hi, I'm trying to build a small app for my company's Strava club to track weekly "winners" similar to how the club page shows "Distance / Total Running Time / Climbing" leaderboard entries and ran into a few issues in the process that I'd like to raise as well as a suggestion on how to mitigate why I think you built the API the way you did.My goal is to track the 1st/2nd/3rd place for each week and accumulate "medals" for people over the course of the year. Additionally, I'd like to store and keep certain things updated such as "Longest Run This Year" or "Most Elevation In A Run This Year" and post when someone sets a new record. However, I ran into a few issues with the Clubs API and would like to see if there's a different way to accomplish this OR if I can make suggestions instead:Club API doesn't return a timestamp for activities when you call getClubActivitiesById. That's fine, I can work around that by just calling via cron job every 15 minutes and can roughly figure out whe
Hello,For my personal educational reasons I am using your public API fetching activities from the group I am member of.I am using exactly this request:https://www.strava.com/api/v3/clubs/" + clubId + "/activities?per_page=100&page=1 I have only problem that I am not getting activity date in the response.This is sample JSON of the respone:```{"resource_state":2,"athlete":{"resource_state":2,"firstname":"Adam","lastname":"S."},"name":"Evening Run","distance":8751.0,"moving_time":2998,"elapsed_time":2998,"total_elevation_gain":38.7,"type":"Run","sport_type":"Run","workout_type":0}```Could you help me with the case or delegate my request to the team which can assist ?
Morning All,Does anyone know if there is existing API that allows you to retrieve list of upcoming club events along with athletes that have joined.Thanks in advanceKudos ✌️
We are seeing an empty payload being returned from the clubs endpoint for most users since this AM:https://www.strava.com/api/v3/clubs/nnnn/activities&per_page=100No errors, just a 200 and an empty array. No changes on our end, no changes to the API that I can see?I don't see anything in the API status: https://status.strava.com/
We are an application development team that uses the Strava API to access services. Our client ID is 116488.We are currently experiencing an access restriction issue: our application has reached the upper limit of the maximum number of athletes allowed to connect to the Strava API (i.e., the number of user authorizations is 9999). In order to continue to provide high-quality services to more users, we have submitted an application form at https://share.hsforms.com/1VXSwPUYqSH6IxK0y51FjHwcnkd8 to request an increase in the limit.We submitted this form 10 working days ago, but have not received any further feedback or processing notifications so far.If you need to provide more materials or information to cooperate with the review, please let us know at any time and we will actively cooperate.Thank you for your attention and support to our request!Best wishes!
I'm trying https://tailscale.com/kb/1353/share-web-server so I can show case the web app I'm working but after Strava authorisation it sends back to localhost.
Hello everyone, I'm working on a project using the Strava API with a React + Vite frontend and NodeJS + Express backend.I’m facing an issue with the OAuth flow, specifically at the final step of getting the JWT token back to the frontend. Here’s my flowUser accesses `exemple.app` Clicks “Connect with Strava” → redirects to `api.exemple.app/auth/strava/login` The backend redirects to Strava’s OAuth URL with the proper `redirect_uri` (api.exemple.app/auth/strava/callback) After user authorizes, Strava redirects to `api.exemple.app/auth/strava/callback` Backend exchanges the code for tokens, creates a JWT, stores it in Redis, and tries to send it to the frontend via a cookie using `res.cookie(...).redirect(...)`IssueEven though I’m setting a `Secure`, `SameSite=None`, `HttpOnly` cookie, the frontend doesn’t receive it. I suspect it’s due to browser behavior around `Set-Cookie` on cross-site redirects.What’s the best way for the frontend to retrieve the JWT?Should I use a temporary one-tim
Can anyone help me fix this? This request does not comply with Google’s ”Use secure browsers” policy. If Strava has a website, you can open a web browser and try signing in from there. If you are attempting to access a wireless network, please follow these instructions.If you’re seeing this error message in Strava’s app, you can contact the developer to let them know their app must comply with Google’s ”Use secure browsers” policy.Learn more about this errorIf you are a developer of Strava, see error details.Error 403: disallowed_useragent
It looks like Strava's GPX importer completly ignores "trkseg" XML tag. In attached file there are two segments.GPX file contains one track (trk XML tag). This track can have one or more segments (trkseg XML tag). Segment have points (trkpt XML tag). Distance should be counted as distance between all points inside one (and every) segment but not between segments.Example:Let's have one track with two segments.First segment: point A, point B, point CSecond segment: point D, point EDistance should be counted as:track_distance = distance(A, B) + distance(B, C) + distance(D, E)You count it as:track_distance = distance(A, B) + distance(B, C) + distance(C, D) + distance(D, E)(which is wrong, distance between C and D must not be in total distance)Distance between last segment point and first point of next segment must not be counted in whole distance.According to GPX specification:https://www.topografix.com/GPX/1/1/#type_trksegTypeA Track Segment holds a list of Track Points which are logicall
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.