Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
hi , I am developing a SAAS platform for fitness community and as a part of that I want give a way for coaches to read strava activities of their athletes. I am still developing this app so it seems I can connect with only 1 athlete .May I request you to increase this quota to minimum 20 so I can do proper testing before I roll this out for wider audience ? RegardsSandeep
Hi everyone!I built a small app for my running club called Club Runners (club-runners.vercel.app) — it shows personalized stats, training insights, a world map of runs, club events, and an AI assistant that answers questions about your running history, all powered by Strava.I submitted the API access request to allow my club members to log in, followed up multiple times via email, but haven't heard back from the Strava developer team.Has anyone gone through this process and found a way to get a response? Any tips would be greatly appreciated!Thanks in advance
https://developers.strava.com/docs/webhooks/#signature-verificationWhat is Strava using for the shared signing secret ?I had assumed my client secret, but I can’t get the hashes to match for love nor money.I am getting t and v1, no worries (well at least v1 looks right)!Here’s my PHP (gasp!) <?php$timestamp = 1777657039;$rawBody = '{"aspect_type":"update","event_time":1777657039,"object_id":123123123,"object_type":"activity","owner_id":123123123,"subscription_id":123123,"updates":{"title":"Please work"}}';$clientSecret = 'myDirtyLittleSecret';$providedSignature = 'theV1HashProvided';$signedPayload = $timestamp . '.' . $rawBody;$expectedSignature = hash_hmac('sha256', $signedPayload, $clientSecret);var_dump(hash_equals($expectedSignature, $providedSignature));I’ve tried all the available HMAC algorithms, concatenating the $timestamp and $rawBody with a ‘,’ instead of a ‘.’, variations of with/without { and } braces.Heck, I’ve even spent an hour talking to ChatGPT.Exhausting my option
Hey everyone,Quick question - I submitted an API quota increase request for my app Nice to Beat You around 2–3 weeks ago, and I haven’t heard anything back yetI know these things probably take some time, so no pressure - I’m just wondering how this usually works.For anyone who’s been through this before:did you just wait until someone got back to you? is there any good way to follow up? should I add more context somewhere, or would that just create noise?The app is still in development/testing, but the current quota is starting to be a bit limiting, so I’d love to understand what the normal process looks like.And hey, if anyone from the API team happens to see this - any hint on the best way to follow up would be super helpful :)
Everyone here carefully asking what’s going on when they had their API requests waiting for weeks if not months (me included). This is ridiculous to be honest, there is no other way to put this. Not only the absurd waiting times but also the no communication at all. Like if I went quiet in my job for weeks what do you think would happen? Would I get a promotion, a cautionary “what is going on I hope you are ok” from my boss, or be fired? This is unacceptable 🤔
Hi all,Posting here per Q11 of the FAQ, after going through the relevant community resources first — the API FAQ, Denzel-Warren's November 2024 policy posts on AI and data display, and several recent threads from developers in similar situations (the Athlete Limit Increase megathread, ProPace, AthletIQ AI, Rule9, and the Kukiman0/dlandre thread on AI inference). Status below, AI specifics framed against the November 20 clarification, and a clear ask at the end.— Submission status- Client ID: 225209 (Zenith)- Submitted: 16 April 2026 (31 days ago)- Follow-ups to developers@strava.com: 4, 5, and 10 May — no reply on any- App page updated today (17 May): Terms of Service URL added, website moved to HTTPS, description rewritten to detail the AI use case— Use casePersonalized coaching for serious amateur endurance athletes (running, cycling, triathlon). Athletes record short voice notes after each session capturing how the workout felt. Strava activity data is paired with these qualitative
I put in a request to up my api access from 1 so I can have users beta test my new app. This was 3 weeks ago. How long does it usually take to get a response and the increase?
Joining the thread as we are facing the exact same endless radio silence. It has been over 2 weeks since we requested an athlete limit increase, and not even a single automated acknowledgment has been received.Because of this complete lack of response from the Strava team, our active users are suddenly getting blocked from syncing their runs, which is directly destroying our app's user experience and triggering negative reviews.Can anyone from the Strava Dev Team actually look into this thread and escalate live production apps? This is severely hurting small developers. Client ID: 229659
Hi All, I’d like to use the /activities/{activity id} endpoint to update my users’ activity descriptions with emoji and a link. Other posts indicate that UTF8 is supported, so that’s good for emoji. How should links be formatted? Just standard “<a href=’https://example.com’>My Site</a>”? Is there any additional documentation about what is allowed and/or supported in these descriptions? The link below simply indicates the description should be a string. Thanks
I did an outdoor walk with peloton app and then a workout on my peloton bike and both workouts did not share to strava. They have always worked before today. What can I do to fix this?
Hi Strava developer community,I've built a running coaching app called VITE that uses the Strava API to automatically sync users' activities and match them to their training plan sessions.My app is fully set up: ✅ Public website with valid URL ✅ Public Privacy Policy page ✅ App icon uploaded ✅ Authorization Callback Domain correctly set to my production domain ✅ Scope: activity:read_all ✅ OAuth flow working correctly (web + mobile via deep link) The issue is that my app is stuck at a limit of 1 authorized athlete. I've submitted the access extension request multiple times over the past weeks but have received no response and the limit hasn't been updated.I currently have 1 athlete connected (myself) and cannot onboard any other user — which completely blocks my ability to beta test with real users.Has anyone managed to get this limit lifted? Is there a specific process or contact I'm missing? Any advice from developers who went through this would be really appreciated.Thanks
So, that means even if two months pass, we won't get back to you.
strava saat di buka loading terus, sudah di uninstall tetap saja loading terus
Hi Strava team, I'd like to request an athlete limit increase for my application. Application name: 100dola sport Client ID: 237730 Linked club: Open Miles Clinic (https://www.strava.com/clubs/2070600) Website: https://www.100dola.com Owner: Jan Piecha (piecha.jan@gmail.com) Company: FUTUNATU s.r.o. Use case: Our public website 100dola.com displays the cycling community's upcoming group rides and recently completed rides on the /community page. The app reads activity and group event data from our community organizers' Strava accounts (typically 5–10 organizers per season). The current default limit (1 athlete) is too restrictive — we'd like to
Bit Run is a Wellness app (Client ID 213257) that rewards runners with Satoshi (fraction of Bitcoin) lightning network payments for verified Strava activities. We're starting a closed beta and need to connect ~999 athletes initially, scaling toward a few thousands. Requesting an increase to the connected-athlete limit accordingly.url: bitrun.vercel.appfeel free to email me at hwikyeongkim@gmail.com if you have questions
Hello! I’m a Strava subscriber who organizes a local cycling club. I’ve created a club for it within Strava, but I want to push each week’s ride activity into Strava via the API. Is it possible to add write methods to the club activities API so each week I can have another system push that data to Strava? Thanks!
Hi Strava team,I've been trying to get our connected athletes quota increased for over 3 weeks now, with no response via email (developers@strava.com and support).App: ErgManiac (ergmaniac.com)Client ID: 77641Use case: Concept2 indoor rowing tracker with AI coaching. Users connect Strava to push their erg workouts as rowing activities.We've hit the connected athletes limit and new users are now getting 403 errors when trying to authorize. We have users actively complaining that they can't connect their accounts or sync workouts.We sent our initial request on April 29th, followed up on May 10th and May 18th - all with no reply.Could someone please review our quota increase request or let us know if there's anything else needed from our side?Thanks,Dominik
API Access Extension for App ID 221739 (RunCoach) I'm the developer of RunCoach (https://runcoach-app.vercel.app), a personalized running coaching platform. Athletes connect their Strava account to automatically sync running activities with their training plans.I've reached the sandbox athlete limit (Error 403) and need production access. App ID: 221739. Please let me know what information is needed to proceed.
Been working on a project for a while that I think might be interesting to people here from a technical standpoint.The core idea is simple. Strava's relative effort metric is a really underused data point. Most apps just display it. I wanted to use it as the input for something more actionable, specifically adjusting daily nutrition targets based on what you actually did rather than a static guess.So I built Velorific. It connects to Strava via the API, pulls the relative effort score after each activity, buckets the session into easy, moderate, hard or very hard using thresholds calibrated against real ride data, then sets macro targets accordingly. Carbohydrate targets follow the Burke et al ranges from the Journal of Sports Science. Protein sits at 1.6 to 1.8g per kg. The day after a very hard session the deficit gets waived entirely based on the IOC RED-S consensus guidelines.From a technical perspective the most interesting challenge was calibrating the relative effort thresholds
Hi Strava developersI applied for my API quota increase on 28th April and have still no response. So far 21 days waiting, despite the email stating 7-10 working days. My client ID is 203103 Can someone help? Ironically, I also reported a vulnerability with their OAuth and also had no reply. How rude
Hi,I'm just hoping someone could help me check the status of an athlete capacity increase request for my app (Client ID: 140214), as I haven't heard back through the usual channels and wanted to make sure nothing is missing on my side. Quick timeline:- April 1: submitted the request via the official form- April 4: sent the additional screenshots and details requested by the team- April 18: wrote a polite follow-up to developers@strava.com- April 30: no reply yet, dashboard status unchanged No rush at all, I just want to confirm the submission is in the queue and that I don't need to provide anything else. Happy to share more details privately if useful. Thanks
Pardon the newbie Q but I’ve applied formally online various times requesting access to the developer API for more than 1 user (increase athlete limits), furnished all the info requested, but haven’t received any follow up confirmation and approval. Is there someone on these forums who can offer guidance and assistance so that I can expedite the process please? Appreciate the help. Br, P
Hello Strava Developers Team,Requesting an athlete cap increase for Decode Strength (Client ID: 197044).What it does: Every athlete gets a public performance profile at their own URL — name.decodestrength.com — showing fitness trajectory, race history, personal bests, readiness trends, and a running archetype built from their Strava data. A live portfolio page a runner would actually put in their bio. See it: decodestrength.com/demoAPI usage:Scope: activity:read_all only. No write scopes. Initial backfill via /athlete/activities, then fully webhook-driven — no polling. Stored fields: activity_id, sport_type, date, distance, duration, pace, hr_avg/max, elevation. No GPS, no social data.Compliance:Tokens refreshed only within 60s of expiry; latest refresh_token always persisted. In-app disconnect immediately wipes all tokens and connection records. Strava branding guidelines followed throughout. Athlete data used solely to power their own dashboard — never shared or sold.Scale: Targeting
Building a public performance identity for every runner — powered by StravaI am building something we haven't seen done before: a live, public dashboard for runners that goes beyond mileage logs.Every athlete gets their own URL - a permanent page that tells the real story of who they are as a runner. Not just how many km they ran, but their fitness trajectory, performance benchmarks, race history, readiness trends, and a running archetype derived from their actual data.Think of it as an athlete's public portfolio - shareable, always live, always current. The kind of page a runner would be proud to put in their bio.I have applied for API extensions (via form) to unlock the data depth this vision needs. it's been sometime and I am still waiting see it live here. decodestrength.com/demo website: Decode Strength — Your permanent athlete page.
Hello Strava team,Requesting an athlete cap increase for CoachCian (Client ID: 215634).What it does: iOS running app — pace coaching, planned workouts, Claude-powered training-plan generator, and a watchOS companion that records runs natively. When a run finishes, the app uploads the activity (full GPS track, heart-rate stream, per-lap stats, step results) to the user's own Strava so it sits alongside their other activities. Strava is the share endpoint, not a data source we read from for analytics.How we use the Strava APIScope: activity:write,read,read_all. We write the user's own completed runs and read so they can pick one of their own saved Strava routes as a route option for the next run. Upload endpoint: POST /uploads with a TCX built from the run, then PATCH /activities/{id} to enrich with description, gear and lap data. One upload per finished run, fired locally on the user's device. Read endpoint: GET /athlete/routes on demand only — when the user opens the route picker and t
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.