Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
The auth request stopped working. I used to work fine for our app. We didn't change anything in the app config or strava config.This is our url call to start the access request:strava://oauth/mobile/authorize?redirect_uri=ourAppName://stravaAuth&approval_prompt=auto&client_id=the-client-id&state=ios413&scope=activity:write&response_type=code It opens the Strava app but brings a white screen with the error • Invalid redirect URIIs there anything new we missed on the Strava API?
Curious if I had a list of key segments in a trail network if you could use the API to give the number of riders on the segments “today” and possibly the average speed?My idea is to know what winter fat bike trails are running well and have been packed down already. If no one has been on the trail it probably means you should bring snow shoes instead.I can get this data by digging around on the web version but it would be nice not to have to go segment by segment, and possibly have a nice way to present it to the community.
Hi, I’m trying to get access to my activities with GetActivityById, but it doesn’t work anymore with the Swagger Playground. I tried it with scope read or readall and I tried different ids. It worked last week but doesn’t work now and I don’t know what's the problem. { "message": "Resource Not Found", "errors": [ { "resource": "Activity", "field": "", "code": "not found" } ]}But I know there are Activities and the Ids are right.Can someone help?
This afternoon I uploaded a beautiful family ride on my new bike! After a few hours i noticed that I still hadn’t received any kudo’s, where normally I get between 40 to 60 depending on the ride. I asked my friends, but they couldn’t find my ride on their feed. When they search for my profile they see it and can give kudos. But on the feed it won’t show. I’ve tried deleting and re-uploading the ride, didn’t work. Activity is on view for everyone and hide in feed is not checked on. Who knows what’s going on and how i can solve this? Never have had this problem, and now it happens on my new bike day 😭
Hi,I'm trying to upload activities to Strava. I've made sure the user I'm doing it with has the right permissions (`activity:write`). When I perform the uploaded, using a gzipped tcx file as content, I get a 500 Internal Server from the Strava API.The body just contains:500 Internal Server ErrorIf you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong.Has anybody seen this before (and been able to fix it)?Cheers,Ilja
If I tap to Routes or paid sub it's display an error. My acount (google)was a Russian before, but right now it's Serbian. But Steava doesn't work properly. May be it's the reason?
I’m calling get_logged_in_athlete in Python using an access token that has the following scope.scope=read,activity:read,profile:read_all,read_allThe response only returns all the data on the following:‘bikes’ ‘clubs’ 'follower_count': 174, 'friend_count': 183, 'ftp': 250, 'measurement_preference': 'meters', 'shoes': [], 'weight': 73.0If I use the same access token in Postman and hit https://www.strava.com/api/v3/athlete then I get all the profile data I would expect, including the data above.I’ve seen one similar post on this subject with no real resolution and i’m a bit at a loss on what to do next.
To provide some background context, I am currently running a sports challenge that utilizes Strava Clubs to track participant's activities. For a particular club, it has accumulated a total of 1032 activities, and right now I am only able to extract 200 of these activities by using page=1 and per_page=200, however when I move over to page = 2 and per_page = 200, it gives me a random number of workouts (in this case 5 activities) and when I move on to page = 3 and per_page = 200, there are no more records. The pagination parameters appear to not work as intended.My concern here is that the activity data are missing and it impedes me from tabulating scores to then show the participants who contributed the most to their clubs.Here are some images provided to help fellow developers and gurus understand the code. I am using Postman to extract the data and a visualizer code that converts the JSON data into a table. Upon the third image, it is observed that the GET request isn't returning a
Any help greatly appreciated, first attempt at using the Strava API. I’m sure this is staring me in the face but i’ve run out of ideas.So I can successfully use Postman to GET https://www.strava.com/api/v3/athlete with an Authorization header of {Bearer nnxxnnnxxnnxx….}. Returns my athlete details So far so good 😍 However when I try and run the simple Python script in the Strava Developer Docs (below) I replace ‘YOUR_ACCESS_TOKEN’ with any of these variations then I get a 401 Unathorised and an Invalid Access Token error 😥 swagger_client.configuration.access_token = 'Authorization: Bearer nnxxnnnxxnnxx….'orswagger_client.configuration.access_token = 'Bearer nnxxnnnxxnnxx….'orswagger_client.configuration.access_token = 'nnxxnnnxxnnxx….' HTTP response body: {"message":"Authorization Error","errors":[{"resource":"Athlete","field":"access_token","code":"invalid"}]}import timeimport swagger_clientfrom swagger_client.rest import ApiExceptionfrom pprint import pprint# Configure OAuth2 acces
Strava is recoding my rides as e-bike rides automatically? I don't own an e-bike…. They say it's an automatic assumption and can’t be fixed? Really?
As title states - im curious if there is a server to server pattern available for the strava api? I am using only my own feed and will be including it on a blog site i run. Webhook patterns, oauth2, etc.. all fine and well but id like to eschew the need to regularly click through the login process.Any options here (did I miss a page of the docs?) or am i going to build a headless browser task that just chews 1.5s of lambda cpu every few hours/days to walk through the UI pattern and update my token/keys in a dynamo table?
I am in the process of integrating Strava into my application and have encountered an issue where manually added activities are successfully synced via the webhook, but GPS recorded activities are not syncing.
I try use api “strava://oauth/mobile/authorize” on iOS app but Strava can’t navigate back to my app.My deeplink is : “myapp://strava-login”, what should i put in setting Authorization Callback Domain on Strava.
When a GPS activity is sync’d from Withings app there is no “device_name” in the strava api response to GET Activity. I recorded a Cycle in withings app and then sync’d it to Strava - and inspected it via the API playground. What i noticed there was “device_name” in the get activity response… however when i download the GPX file i do see: <metadata> <link href="https://www.withings.com"> <text>Withings</text> </link> <time>2024-11-24T17:51:10+00:00</time> </metadata> <trk> <src>Withings</src> Why would “device_name” be missing in the api response?
Hello, I would like to know if it is possible to get time data but like every 15 second of the activity instead of each second ? Thanks in advance,Pierre
Dear Strava Developer Team, I hope this message finds you well.I am writing to seek your assistance regarding an issue we have encountered with the Avinox App. Our users occasionally experience failures when attempting to upload cycling track files (GPX) to Strava after authorization. We would greatly appreciate your technical support to help troubleshoot and resolve this problem.We have recently released the functionality for users to upload cycling track files (GPX) to Strava. However, we have observed that some users are facing issues with file uploads failing. Despite implementing a retry mechanism on the Avinox server to handle failed uploads, the issue persists even after multiple retries. Below is the API endpoint we are calling: https://developers.strava.com/docs/reference/#api-UploadsHere is the failure response we receive from the Strava server when the upload API is called: syncRidingDataToStrava uid: xxx recID: xxx check again strava uploadResult: &{ID:13839110104 IDStr
In the response to API get activity - it would be good to know if the GPX/FIT file was:uploaded via web interface uploaded via API itself uploaded via an integrationthis will allow other apps to distinguish activities the user has uploaded via the web interface from other sources.many thanks
Has strava implemented a well-known for oauth2?
Andrew Neal Hello all , I'm unable to get a list of my activities via the API, due (I think) to not having read_all scope. Using HTTPie http get "https://www.strava.com/api/v3/athlete/activities?access_token=&page=1&per_page=50" I get the following error "code": "missing", "field": "activity:read_permission", "resource": "AccessToken" After reading the permissions documentation, I requested read_all with the following.... https://www.strava.com/oauth/authorize?client_id=<client_id>&response_type=code&redirect_uri=https://localhost&scope=activity:write&state=mystate&approval_prompt=force@scope="read_all,activity:read_all,activity:write" But this doesn't seem to return the requested permissions, as seen in the URL returned.. https://localhost/?state=mystate&code=<snip-code>&scope=read,activity:write I’m able to upload activities, and display my basic athlete details, but cannot get activity details. I’ve
i'm trying to do some analysis, and i'm working with the raw activities.csv, but the field "Activity ID" do not match any of the raw activity files that come with the bulk download (e.g. 3517781504.fit.gz, this number 3517781504 doesn't match any id in the .csv) . this make matching impossible. how do you match raw .fit files to the activity ids??
I would like to be able to get the zones of an activity in the activity detail. If I retrieve 100 activities of an athlete and I want to know their heart rate zones, I have to make 1 request for each of the activities, so in total there are 101 requests, 1 for the 100 activities and 100 for each heart rate zone of each activity. Would it be possible to have an endpoint to get the activities in more detail (such as the zones of the activity) and thus optimize the number of calls?
Hello! Is there an API endpoint to get all the athletes that have connected the app?
Dear Strava Team, I will like to bring one issue to your kind notice. Earlier when we used to upload a .fit file to Strava, that .fit file use to get process and an activity gets added in Strava platform. However, since last few weeks this is not working. Just wanted to understand from you, that whether it’s an issue from your end, or is there any change in .fit file supported formate. Please let us know. Application Name: Frontier X Category: Mobile App Client ID: 100134
I’m curious what the normal lead time is for developer program applications. I filled out the form on October 13th and have not heard anything.Does everyone wait this long or might something be wrong with my submission?
Hello!I'm writing an application that requires storing information about new activities in realtime as they come in from athletes. I have been successful in getting the creation of new activities sent to my server through the web hook. New Activities do not include any metadata about the new activity, so I have to follow up with additional calls to fetch the data.I've explored the following 2 approaches but both have their problems:Fetch By Activity Id: the most straight forward, I could hit `/activities/{{ id }}` for every activity that comes from the web hook. This would be the most expensive against my daily rate limit, though.Fetch By Activity Date Range: in order to avoid hitting rate limits, I could hit `/athlete/activities` and run against a date range to fetch multiple activities at once. This is great cause it allows me to "batch" requests, although the `event_time` that comes back from the web hook does not accurately reflect the activity event time (this is es
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.