Curious about our API? Connect with our developers to share ideas, knowledge, and feedback
Recently active
Hello Strava Developer Community,I am developing RUNVERSE, a gamified running platform designed to encourage people to run and explore their cities.We would like to integrate with the Strava API so users can connect their Strava accounts through OAuth and import their own permitted activities into RUNVERSE. These activities would update their personal running history and contribute to progression within our platform, such as unlocking city landmarks, achievements, and visual map elements.Our goal is to complement the running experience, not to replicate Strava's core functionality.Before implementing this integration, we would like to clarify a few points: Is this type of gamified running platform compatible with the current Strava API Terms of Service and Developer Agreement? Are we allowed to use imported activities to unlock achievements, progress through a virtual city map, and reward users with in-app progression? Are there restrictions on displaying imported activity data on
Hello Strava Developer Team,I am the founder of ARVENTO, a cycling-inspired brand developing ARVENTO REVEAL, an interactive geographic visualization experience.Our vision is simple:Every ride lights up the world.We have recently launched our public product introduction and an interactive demonstration:Product Website:https://www.arventolife.com/pages/arvento-revealInteractive Demo:https://arvento-reveal-demo.pages.dev/Important: Our public demo uses synthetic data only. Real-athlete Group and Global data aggregation is not enabled.Before launching real Strava-connected functionality, we would like to clarify whether our proposed data processing complies with Strava's API Agreement and data-use policies.1. Personal — MY WORLDWith an athlete's explicit OAuth authorization, we would like to convert their GPS activity coordinates into H3 geographic cells and visualize their explored areas privately over a rolling 7-day period.Question: Is this type of private, athlete-specific derived visu
everyone,We submitted the Developer Program form on 14 October 2026 for RYDR Indoor Cycling (Client ID 153246) and have reached the 10-athlete limit on the Standard tier. New riders now hit the "connected athlete limit exceeded" error.About the app: RYDR is an indoor cycling game platform (web, iOS, Android, Windows, macOS) where a rider's trainer power drives the games and workouts. The Strava integration is write-only: with the rider's consent (read, activity:write), each finished ride is uploaded to their own account as a FIT file. We read only the athlete's own name, and their photo only if they explicitly opt in. No Strava data is shown to other users or used for AI. We use the official Connect with Strava button, Powered by Strava logo and "View on Strava" links. Privacy policy: https://rydr.gg/privacy.With the indoor season starting, we'd really appreciate it if someone from the Strava team could take a look, or tell us if anything is missing from our submission.Thanks!Benjamin
Hi Strava team,I submitted the Developer Program form for FlyHUD on October 3, 2026 and received the confirmation that it was under review. I have followed up by email and received automated acknowledgments, but have not yet received a review update.The app has now reached its athlete capacity of 10 out of 10, so new users are unable to connect their Strava accounts.Could you please advise whether there is a way to confirm that the submission is in the review queue, and whether any additional information is needed? I understand that approval and a fixed turnaround time are not guaranteed.Thank you.
None of our users can upload their activities to Strava. The API call returns error code 500 and this response body:{ "message": "error"}And this response header:Please advise. I’ve been trying to post this topic since yesterday and for some reason it’s not getting published.
Hello Strava team,I created an API application called “Maki Training Tracker” in my Strava account, but I cannot find my Client ID or Client Secret.On the “My API Application” page, I can only see “Update App Icon”, “My Account” and “Social Connections”. The API credentials and application details are missing.I need these credentials to connect my Strava account to Make.com for personal running activity tracking and weekly training analysis.Could you please help me access my Client ID and Client Secret?Thank you.
Hi @Emily_A,I submitted the Developer Program form for ATHLO+ (Client ID 265325) on 1 October 2026 and got the automatic confirmation the same day. I followed up by email to developers@strava.com today (15 October) but haven't heard anything yet.We're at 10/10 connected athletes, so new members who try to connect now get "Limit of connected athletes exceeded".ATHLO+ (athlo.sg) is a community platform for endurance athletes in Singapore. Members connect their own Strava account (read and activity:read only) to get verified personal bests on their own profile and a weekly Mon–Sun totals board. Showing anything publicly is opt-in and off by default, deauthorisations and deleted activities are handled by webhook, and no Strava data goes to any AI system. Since applying, the weekly board is built entirely from webhook data, so our nightly job makes no Strava API calls.Could you check that the application is in the review queue, and let me know if you need anything else? Happy to send scree
Dear Strava Developer Review Team,I am writing to request production access (Standard Tier) for my application, Westiti Memories (Client ID: 195833), to expand our user limit beyond the initial 10-athlete sandbox.Our application allows athletes to connect via Strava OAuth to generate and print a personalized "Year in Sport" physical booklet, featuring a month-by-month summary of their own training and races.To comply fully with the Strava API Agreement and Terms of Service, we guarantee the following:Strict Privacy & Data Security: Data is only fetched upon explicit user consent via OAuth. We do not store or persist users' activity data on our servers after their booklet is generated and processed. No Core Feature Replication: Our tool creates a unique physical print product and does not compete with or replicate the Strava app experience. Branding Guidelines: The application and the printed booklets clearly state they are powered by Strava, following all official design and brand
Follow-up — athlete capacity increase request, application 252280 Hello,I submitted an athlete capacity increase request for application 252280 (OhMyPerf) through the Developer Program form on 30 September 2026, after implementing the changes your previous review asked for.I am not resubmitting or adding information here — I would simply like to know whether the request has been received and is in the review queue. Thank you,
Hi,I'm building a free Android app that tracks bike component wear, and I'd like to import cycling activities from Strava to count kilometers per bike.The getting started page says a Strava subscription is a prerequisite for creating an app, and I have a few questions before I create mine:Does an account covered by a Strava Family plan, as the plan owner or as a member, meet the subscription requirement? Or must the account that owns the app hold its own individual subscription? Does the subscription need to stay active for the app to keep working once created? What happens to connected athletes if it lapses? Can the app be owned by a dedicated account for the project rather than my personal one, and can ownership be transferred later? For the review beyond 10 athletes, what capacity is granted and how long does it usually take?Thanks!
is there anyway to take a weight lifting tcx file from a third party source upload it to strava and have it show the exercises and the muscle group image without then having to manually add everything after it uploads?
Hi all,I'm building a personal website and would like it to show my own Strava activities (runs and walks: a route line plus distance and time). The app would stay in Single Player Mode, so only my own account would ever connect.The site is public, though, so visitors other than me would see the data. API Policy 2.3 says Strava data "may be displayed or disclosed in your Developer Application only to that user". Strava support pointed me to section 3.3, but that covers tiers and the subscription, not display.Two questions:Is showing my own data, through the API, to visitors of my own public website allowed under 2.3? If not, is it fine to export my own activities as GPX files from strava.com and show those on my site instead?Thanks!
You probably have received THE EMAIL. Little summary:Good news everyone: Strava just sent an official update and it looks like they were listening.Here's what's changing and what it means for those of us stuck on the athlete limit:The immediate fix: Standard Tier developers can now self-upgrade to 10 athletes directly from the API settings dashboard, no form, no queue, no waiting for a response from developers@strava.com, I have emailed them 10 times in the last 2 weeks, so they will be happy as well I think. Go do it now, I would.The new tier structure:Standard Tier: up to 10 athletes, self-managed, no formal review Extended Access Tier: higher rate limits, greater user capacity, prioritized developer support, access to Partner APIs, and no Strava subscription requiredGo to strava.com/settings/api to see what TIER you’re in.Key dates to have on your radar:June 1, 2026: changes are live. New tiers active, self-upgrade available now June 30, 2026: Standard Tier developers will need a St
Hello Strava Team & Riders,For several years I've run a small personal app on the Strava API. It syncs only my own activities to my own tools: it builds a statistics site, nothing else. It makes a few requests a week and has one user, me. This week it stopped working with "Application" / "Status" / "Inactive", and the API settings page now says API access is subscriber-only.I'd like to share why I think this change is a mistake, for developers and for Strava.1. It goes against what we were told in 2024. When the API agreement was updated in November 2024, Strava said users "will continue to have access to their personal Strava data across apps connected to the platform," and that fewer than 0.1% of applications would be affected. Personal, single-user apps were exactly the case we were told would keep working. A year later, they are the ones being cut off.2. It does nothing against AI scrapers. The 2024 rule that data may only be shown to the athlete it belongs to already makes the
Hi everyone,I'm the developer of WOLF, an iOS/Android training log app with around 560connected athletes.I'd like to add an opt-in leaderboard and want to make sure it complies withthe API Agreement before building it:- Users sign in to our app and explicitly opt in. It is off by default.- Only weekly / monthly / yearly totals per sport (distance, elevation gain, moving time) are used. No individual activities, routes, locations or timestamps are shared.- Users appear under a nickname only, and can opt out and delete their data at any time.- The screen shows the top 5 users and the viewer's own rank.Section 2.3 says Strava Data may be displayed only to the user it belongs to.But Section 6.1 starts with "Unless your Developer Application has an athletecapacity of 9,999 or less...", which reads as if smaller apps may displayother users' data.1. Does the 6.1 exception allow a leaderboard like this for apps with a capacity of 9,999 or less?2. If not, is it acceptable to show each user
I appreciate that you tested this the Strava MCP with Claude so I imagine it works, but they aren’t the only agent out there. I’m getting an immediate HTTP 403 with Copilot CLI, and when having it introspect why, it reports:Root cause: it’s not failing because your strava-mcp entry is missing or malformed; Copilot is rejecting Strava’s OAuth metadata as invalid.Your config is a normal remote MCP entry in ~/.copilot/mcp-config.json :"strava-mcp": { "type": "http", "url": "https://mcp.strava.com/mcp"}But the Copilot log shows the auth flow dies here: OAuth authentication failed for strava-mcp: MCPOAuthError: Incompatible authorization server: authorization server advertised an issuer that does not match the URL its metadata was discovered from (RFC 8414 §3.3); refusing to connect What’s happening is:1. strava-mcp challenges the client with an OAuth protected-resource URL on www.strava.com .2. That metadata points to https://www.strava.com/mcp-issuer as the authorization server.
Hi everyone,We are building VelUP, a bike-maintenance app for cyclists in Brazil. Athletes authorize their own Strava account (scope activity:read only). We receive activity webhooks (no polling) and, for each ride, read only the distance, the start time and the bike (gear id). We do not store routes, GPS, heart rate, titles or segments. The athlete links each Strava bike to a bike they registered in our app, and the distance is added to that bike’s odometer to drive maintenance reminders (chain, brake pads, tires...). The Strava-derived distance is shown only to that same athlete, never to workshops or other users.We are within the first 10 athletes and want to be sure we are compliant before asking for more capacity. Could anyone from the community, or from Strava, help clarify these points under the current API Agreement/Policy (June 2026)?7-day cache rule (Policy 6.2). We convert each ride into a per-bike odometer delta (a number of meters added to a running total). The activity id
Hello everyone,I'm developing a university project in Python using the Strava API directly through requests.For some activities, the request to GET /api/v3/activities/{activity_id}/streams returns HTTP 200, but the heartrate stream is missing.For one affected activity, the results are: has_heartrate: false average_heartrate: null Requested stream: heartrate Returned streams: distance The athlete has confirmed that they used a heart-rate monitor during the activity. Our OAuth authorization requests the activity:read_all scope, and token refresh works correctly.Other activities from other athletes do return heart-rate data through the same code.My questions are: Can the heart-rate stream be unavailable through the API even when an athlete used a heart-rate monitor? Does has_heartrate: false mean that Strava has no heart-rate data available for that activity, or could this indicate an API access issue? Are there any additional permissions or conditions that could explain this be
Hi, I submitted the Developer Program form for Cadevia (Client ID 208389) on October 1st, after a first request was declined on September 30. We changed the integration in response: Cadevia now only uploads workouts to Strava (activity:write) and reads nothing. We're at 10/10 athletes and new users can't connect. Is there anything else the review team needs from us? Ticket #18817.
Hi all,I'm building a running app and rethinking how it uses Strava. I'd like to check one design before building it, ideally with input from Strava staff.The design:Strava is used only as a read-only viewer: an athlete connects their own account and sees their own activities, in a separate screen. Strava Data is not used for AI/ML, analytics, training load, predictions or plan adjustment, and is not combined with any other source. Cache of at most 7 days (6.2), deletions reflected within 48 hours (6.3), deletion on revocation or request (7.4). Everything else in the app (analysis, coaching, AI) would run on other sources the athlete connects, such as Apple Health or their watch maker.Questions:Is an isolated viewer like this allowed when the same app uses AI on non-Strava data (5.3, "directly or indirectly")? Where is the line for deterministic, rule-based calculations on Strava Data under 5.4 ("analytics, analyses")? Is there a way to get a written answer on questions like this? Deve
Hi all,I'm building a read-only app that shows each athlete long-term trends in their own activity history. Each athlete only sees their own data, and nothing is shown to anyone else. We use webhooks for activity changes and deauthorisation, and delete an athlete's data when they disconnect.The feature only makes sense across years of activities, so the 7-day cache rule in API Policy 6.2 is a real problem for us. I've read the similar thread from September and I'm hoping to get a bit further on three points:1. Is there any approved way to retain an athlete's own activity data for as long as they're an active user, when the only purpose is showing their own history back to them?2. If not, does aggregated data derived from their activities still count as Strava Data under 6.2? I mean summary counts, with no individual activities, names or IDs kept.3. If an athlete downloads their own data with Strava's bulk export tool and uploads it to an app, is that covered by the API Agreement and th
Hi everyone,I’m an independent developer building Kadence, a weekly sports planner for Android (not yet published). It uses the Strava API to import a user’s activity history and mark their planned sessions as done. 1. Inactive status: Since the Standard Tier subscription change, my app (Client ID 258385) returns 403 {"resource":"Application","field":"Status","code":"Inactive"} on /athlete/activities. OAuth itself works. I understand the owning account needs a subscription. Is there any trial or voucher option for developers who are still building and testing before launch? 2. Data storage: Kadence has no backend. Imported activities (date, type, name, duration) are stored only on the user’s own phone and shown only to that user. Does the 7-day caching rule in the API Agreement apply to data kept locally on the athlete’s own device? Or should the app re-fetch from the API instead of keeping history?Thanks!
Hello Strava Developer Community,We are preparing an Android app for the Salem Randonneurs cycling club and would appreciate guidance on whether our proposed Strava integration complies with the API Agreement and API Policy effective June 1, 2026. We have not launched publicly or begun multi-rider testing.Riders authorize their own Strava accounts. The app imports outdoor rides during a monthly club challenge and calculates mileage and/or elevation standings. Our current implementation requests read and activity:read_all. It stores the Strava athlete ID and encrypted OAuth tokens, plus each imported ride’s ID, date, type, distance, elevation, and eligibility/review status. It does not intentionally store route/GPS, heart-rate, or power data. Club administrators can review ride records. Published results show participant names, totals, and rankings to app users.Could a Strava representative please clarify: Whether club administrators may review a rider’s activity-level data for challen
Hello Strava Developer Community,I’m exploring a fitness app concept and would appreciate clarification from the Strava team about whether it would be permitted under the current API Agreement and API Policy.The concept turns an athlete’s walking, running, cycling and hiking into progress through a persistent virtual world. Each athlete would authorize access to their own activities through OAuth. Supported activity distances would be converted into game movement points that advance a virtual traveler. The traveler’s virtual location would be independent of the athlete’s actual GPS location.Persistent personal worldThe athlete’s journey would continue across months and years, with visited destinations, passport stamps, levels and earned cosmetic rewards.May an application retain this derived game state beyond the seven-day activity cache period, while deleting the underlying activity records? Which parts would need to be removed or recalculated when an activity is deleted or the athlet
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.