Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
HiLooking at my app today the matches ride analysis is missing, and the segment analysis is missing most rides. Is this a global issue or someone can resolve through the app? Mark
I submitted two requests one week ago but have not received any response from the Strava team. My project is very urgent, so what can I do to get approval or who can I contact for support on this issue?
We encountered a 401 - Unauthorized Access error while attempting to retrieve the last six months of activity data for an authenticated rider using the Strava API Method: List Athlete Activities (getLoggedInAthleteActivities).We would appreciate any insights from the community regarding the potential reasons for this error.Thanks in advance,Saji
HiyaWe have noticed users creating strava accounts with temporary email address providersAnd then coming to our appWe cannot detect this behaviour in our app - so would kindly ask Strava to enhance its security on the use of temporary email addresses to create accountsIt would be good in the Athlete API response we could get the users email address also so we can check its domainThanks
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?
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.