Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
Hi All,I'm experiencing a maps problem: I can see my routes and those of the people I follow only in a "preview mode". When I click on the route Strava doesn't show anything and the app crash going back to the main page. What's going wrong? Please help me.Thanks!Patrizio
I am on the committe of a running club and we wanted to use the API to track our athletes and give recognition, awards etc. However, the API /clubs/{id}/activities returns a maximum of 200 activities for me - can this be changed?In addition, the activities have no date or activity ID, which meens I can't analyse (for example, most runs or highest distance in a period).I have the rights to see this detail - it's visible in the app or website - how can I get it through the API?ThanksPeter
Since the 27 of february mu Webhook stopped to work.I did not received any activities since that date.Strava even did not try to reach my Webhook ‘( i see it in my logs ).So i tried to delete the previous webhood subscription and re create IT, and it does not succeed.Anybody with same issue ?Any clues to help me ?Thank you
This is my local url: https://www.strava.com/oauth/authorize?client_id=146505&response_type=code&redirect_uri=http://127.0.0.1:8001/api/v1/user/strava-authorize/1/2020-06-20T23:16:53.000Z&approval_prompt=force&scope=read,activity:read_all But when I put the production URL I get this: https://www.strava.com/oauth/authorize?client_id=146505&response_type=code&redirect_uri=www.raiseday.run:8001/api/v1/user/strava-authorize/1/2020-06-20T23:16:53.000Z&approval_prompt=force&scope=read,activity:read_all And in the api section https://www.strava.com/settings/api I have the url configured, what will be the problem in production
For some reasons my Embed club on my website isn't showing anymore. Just shows it's a dead end.Other embed code works. Anyone has the same issue or an idea for a possible solution?Club is set to public.
I’m building a “low-budget” Strava integration for our company Ride to Work program, using Google Sheets & Apps Script. Once a user is authorized, my script has no problem retrieving activity data. However, I’m stuck on the authorization.Specifically, when a user follows my Apps Script deployment URL and clicks on the “Authorize with Strava” link, they’re prompted to log in, and then get the “We sent you a code” response. Except, no code is sent. I’ve tried multiple users, and confirmed that in a neighboring tab they can log into Strava without issue. I can also take the https://www.strava.com/oauth/authorize?... link with the proper arguments and manually produce an oauth code after logging into Strava.So the jist of it is, there seems to be no way to actually log in from the context of a Google Apps Script web deployment. Any ideas?
I would sometimes get an error when calling the token exchange API: POST https://www.strava.com/oauth/token, but it would work if I make the exact same call for a second attempt. Anyone know why this is happening? In the “authenticaion” documentation on Strava Developers, one statement says the URL should be https://www.strava.com/oauth/token, while an example shows the URL as https://www.strava.com/api/v3/oauth/token (I pasted below) Is this why my call to the API returns an error sometimes? Thanks.===================================================Token ExchangeStrava will respond to the authorization request by redirecting the user agent to the redirect_uri provided.If access is denied, error=access_denied will be included in the query string.If access is accepted, code and scope parameters will be included in the query string. The code parameter contains the authorization code required to complete the authentication process. code is short lived and can only be used once. The applic
Hi guys! I could use some help here. I’m trying to implement concurrency with my Strava API calls such that I can acquire activities on various athletes concurrently instead of one by one. However, despite my best efforts, I think there may be a limitation with the Strava API which does not support asynchronous operations. I tried wrapping the read requests within async.to_thread() but that didn’t seem to work. Have any of you guys bypassed this Strava limitation to get concurrency working? Thanks.
Hello,I'm having an issue with the Strava API that I hope someone can help me resolve. I'm able to successfully make API requests through Postman, but when I implement the same code on my server, I get a 403 error.What works (in Postman):I'm trying to access activity data with this endpoint: GET www.strava.com/api/v3/activities/[activity_id]With the authorization header: Authorization: Bearer [my_token] The error I'm getting on my server:I'm using PHP with cURL for my implementation. Here's the error I receive:403 ERROR The request could not be satisfied. Request blocked. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Generated by cloudfront (CloudFront This implementation has been working perfectly for months, but suddenly stopped working this weekend. Nothing changed on my end.
Hi all,i try to get the annual kilometers of a club via API. In the dashboard i only see some weekly kilometers. is there any chance to get annual kilometers? thanks for helping
I really wanted to create a little app that would update all of my commute activities to be private via the API.I keep getting successful call backs and it looks like I can modify activities in other ways, but can’t seem to change the visibility of an activity no matter how hard I try… Of course I can do it manually in the app, but I want this little application to work. Any thoughts?
How do I get active calories from Garmin Connect when syncing rides to Strava? I’m getting total calories from GC which is active plus basal calories. Other apps report/use active calories, not total. I did some searching having found this being resolved. Has it been?
I’ve noticed that my application will sometimes stop receiving webhook events from some athletes. These athletes have not deauthorized my application, so I should still be receiving events for them. I have checked with these athletes and they have confirmed that my application is still authorized. I’m wondering, does Strava stop sending webhooks events for an athlete if the athlete’s access token needs to be refreshed? Currently, if I get a notification from an athlete that has an expired access token, this triggers a refresh call. But do I need to be actively refreshing tokens right as they expire to make sure that I don’t miss webhook events? This is not mentioned in the documentation afaik.
I use an R script to retrieve my personal activity data from Strava using the API. I use the following code, that, in the past, always gave me data on average and max heart rates, but now these have disappeared for some reason: while (TRUE) { req <- httr::GET( url = "https://www.strava.com/api/v3/athlete/activities", config = token, query = list(per_page = 200, page = page) ) # Convert JSON to dataframe activity_data <- fromJSON(content(req, as = "text"), flatten = TRUE) # Stop if no data found if (length(activity_data) == 0) {break} # Append data to dataframe if (nrow(df) == 0) {df <- activity_data} else { common_cols <- intersect(names(df), names(activity_data)) df <- rbind(df[, common_cols, drop = FALSE], activity_data[, common_cols, drop = FALSE])} # Turn to next page page <- page + 1}Anyone has an idea why the heart rate data is missing?
This model won't include any athlete identifier, which makes the information a bit useless in the end. Since APIs are made for machines, and machines identify entities differences between IDs, not having them on the returned models make them invaluable.It would be nice if ClubAthlete had the athlete ID included within its definition. This way, apps for clubs, built on top of the Strava API, can easily map and identify the athletes. Otherwise this is impossible, as there's no other way of identifying athletes related somehow to another one who granted access to the app.
Hello,Recently, I built an app using the Strava API to automatically retrieve my activity data and store them in a database. I noticed that, using the “https://www.strava.com/api/v3/athlete/activities” API endpoint retrieves the calories as kilojoules, for example “"kilojoules": 637.0”. The calories shown in my Strava account are shown in calories units. Based on the same activity of the above example, I see in my account the value of 427 Cal. However, 637.0 kilojoules are 152.2 calories - that is, a very different number from 427 Cal shown in my account.I wanted to ask if I am missing any other conversion steps or how exactly are Calories calculated in the application but are different from the API? How can I transform the 637 kilojoules to the number that I am seeing in my account? Thank you very much for your help in advance.Best,Panos
Hi,I'm running the command:swagger-codegen generate -i https://developers.strava.com/swagger/swagger.json -l swift5The DetailedActivity does not contain any of the SummaryActivity as described by the allOf section in https://developers.strava.com/swagger/activity.json#/DetailedActivity.I've tried using version 3.0.41 and 2.4.30A quick search indicated that it is a swagger bug?Am I missing something here?Thanks Antz
https://developers.strava.com/docs/ specifies how to generate client code.I got the model generated java -jar C:\swagger-codegen-cli.jar generate --lang java --output C:\SwaggerCodeGen\strava-models --input-spec https://developers.strava.com/swagger/swagger.json --config C:\config.jsonThis is 1 of the config settings I used{ "groupId": "com.vschouppe.strava", "artifactId": "strava-api-client", "apiPackage": "com.vschouppe.strava.api", "modelPackage": "com.vschouppe.strava.model", "invokerPackage": "com.vschouppe.strava.invoker", "generateApis": true, "generateModels": true, "library": "resttemplate", "dateLibrary": "java8", "serializationLibrary": "jackson", "hideGenerationTimestamp": true}Why are my clients and api’s not generated?i.e.https://developers.strava.com/docs/reference/ import com.strava.api.v3.auth.*;import com.strava.api.v3.model.*;import com.strava.api.v3.api.ActivitiesApi; ApiClient client = new ApiClient(...); ActivitiesApi api = client.createService(Activit
Anyone know if it’s possible to directly add an image from the edit activity API?
Hallo, leider wird bei den Aktivitäten die Karte nicht mehr richtig angezeigt, man sieht nur die Tour mit blauem Hintergrund. Aber kein Satellitenbild mehr. Was kann man hier machen?
Hello!I am looking for a way to retrieve TCX file of activities with the API. I can get TCX for routes but can’t find a way to get the file for activities.I can get it easily using this way : https://support.strava.com/hc/en-us/articles/216918437-Exporting-your-Data-and-Bulk-Export#h_01GDP2C5E3278KM8MPK5X49ED3 “This is a little-known trick, however, it's simple to use. Simply add "/export_tcx" - without quotes - to the end of your activity page URL. For example, if your activity page is www.strava.com/activities/2865391236 - just add the text to give you www.strava.com/activities/2865391236/export_tcx and hit enter. This will download a TCX version of your file to the location specified by your browser's preferences” But no luck with API.Can anyone help?Thanks!
Our bicycle club has authored a command line tool that connects to the Strava API to download an athletes ride data so we can establish metrics for ride difficulty in our region. However we just realized it won’t work because the number of athletes allowed to connect is only 1. To increase the limit we have to submit an application review form. However we just noticed the Strava API Agreement demands the app have some sort of GUI (Graphical User Interface) so that logos can be displayed. But a command line tool can’t display logos. Does that mean command line tools are prohibited from using the API? How do we get around this problem?
I’m exporting my Strava activities to a CSV with a Python script and for some reason, everything shows up perfectly except for the calories burnt. My weight is entered on Strava and I have tried a few different scripts but to no avail. Calories just don’t show up on my CSV no matter how I write, even though they do appear on my profile. Has anyone else encountered this? I looked up online but couldn't find anything, I don’t know if it’s a Strava issue or I just can’t seem to find the right script to write. Thanks!
I'm trying to authorize myself to use the strava API. I managed to get an access token and specifying the scopes. In order to be able to write data to one of my activities I need to pass in an authorization code (with the great help of @Jan_Mantau). On the internet I found examples of getting the url that would display the code. static async Task Main(string[] args){ // Step 1: Send user to authorization page var queryParams = new Dictionary<string, string> { { "client_id", clientId }, { "response_type", "code" }, { "redirect_uri", redirectUri }, { "scope", scope } }; var authorizeUri = $"{authorizeUrl}?{string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={Uri.EscapeDataString(kvp.Value)}"))}"; Console.WriteLine($"Open the authorization url: {authorizeUri}"); // Step 2: User authorizes on page and get redirected to the redirect)uri with a code ...} https://www.strava.com/oauth/authorize?client_id=99999999&respo
Hello everyone,I'm currently working on a project that involves analyzing activity patterns on outdoor recreational paths. I'm seeking to access anonymized, aggregated geospatial data that could provide insights into usage patterns, such as peak times, flow of movement, and user demographics.I'm interested in exploring whether the Strava API could support this type of analysis, specifically looking into the volume of trail usage and general movement trends. If anyone has experience with the Strava API or a similar data source for these purposes, I'd appreciate your insights on the feasibility and any best practices you might recommend.Additionally, if there are suggestions for other APIs or open data sources that could serve this use case, please do share.
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.