You have a season of running sitting in Strava and you'd like a second opinion on it. ChatGPT is right there. Connecting the two feels like it should be a solved problem by now.
It mostly was, until June 1st. Strava rewrote its developer program and API policy this month, and the changes are aimed squarely at AI tools. If the tutorial you're reading was written before June 2026, parts of it are out of date and parts of it are now against Strava's terms. We build a training platform that lives in this ecosystem, so we've been following the change closely. Here is the current state of things, method by method.
What Strava changed on June 1, 2026
Three things matter for anyone trying to wire up ChatGPT.
First, API apps now require a Strava subscription. Creating an API application used to be free and took five minutes at strava.com/settings/api. Under the new Standard Tier you need a paid Strava subscription to keep one, and existing developers have until June 30, 2026 to subscribe. A freshly created app can access exactly one athlete (you); the Standard Tier raises that to ten, and anything beyond goes through app review.
Second, the API policy now bans AI use outright. The previous agreement, from November 2024, prohibited using Strava data to train AI models, and developers spent over a year asking whether that covered inference too. Strava never answered. The new policy answers it: Section 5.3 says developers may not use Strava data "directly or indirectly, in connection with the development, training, evaluation, or operation of any AI Application," and its list of restricted activities explicitly includes "retrieval-augmented generation, ingestion into a context window or working memory." That last phrase is a precise description of feeding API responses to ChatGPT.
Third, Strava shipped its own MCP connector, which the policy names as the one sanctioned way to put your Strava data in front of an AI assistant. More on that below, including the catch.
Strava's stated reasoning is worth reading in full: developer applications up 448% year to date, 241,000 registered API developers, and AI companies that "aggressively attempt to scrape platforms... abuse APIs through intermediary layers, and provide zero-code AI tools." Whatever you think of the response, the pressure was real.
With that table set, here are your actual options.
Method 1: Export your data and paste it
The new policy governs Strava's API. Your own exported files are yours, so the oldest method is also the one method with no terms-of-service question attached.
For a single activity, the three-dot menu offers Export GPX or Export Original. For your whole history, go to Settings, then My Account, then "Download or Delete Your Account," and request your archive. A ZIP arrives by email, usually within a few hours. The useful file inside is activities.csv: one row per activity with date, type, distance, moving time, elevation, and heart rate.
Paste rows from that CSV, not GPX files. A GPX file is per-second latitude and longitude; one hour of running is thousands of trackpoints, and you'll exhaust the model's context window on coordinates before it reads a single heart rate. Fifty rows of summary CSV plus a pointed question works far better:
"Here are my last 8 weeks of runs. I'm marathon training, goal 3:30. Where is my easy volume actually easy, and where am I overcooking it?"
The ceiling is obvious after a week of use. You are the sync engine. Every updated read means another export and another paste, and the model only ever sees what you curated for it. For a one-off review of a training block, though, this is underrated.
Method 2: A custom GPT calling the Strava API
Until this month, this was the standard tutorial: create a Strava API app, build a custom GPT, paste in an OpenAPI schema for GET /athlete/activities, point the Action's OAuth at Strava's authorize and token endpoints, and ask your questions in plain English. Since every other guide still describes it, here is what they tend to leave out, followed by the new problem.
The mechanical traps are real even when everything is permitted. Strava access tokens expire after six hours, and refresh tokens rotate: each refresh can return a new refresh token, and the old one stops working. A GPT Action that doesn't persist the newest token dies quietly a few hours after it first works, which is the single most common failure in OpenAI's developer forum threads on this. Strava also wants scopes comma-separated rather than space-separated (activity:read_all and friends), which breaks naive OAuth configs. And the rate limits are tighter than people expect: 200 requests per 15 minutes overall, but only 100 of those can be reads, with windows resetting on the quarter hour.
Now the new problem. As of June 1, you need a paid Strava subscription just to keep the API app, and Section 5.3 makes wiring its output into an LLM context window a restricted activity by name. Will Strava chase down a single-athlete hobby GPT? Nobody knows, and we won't pretend to. What we can tell you is that the policy text is no longer ambiguous, and access revocation is entirely Strava's call. If you build this today, you're building on terms that say you shouldn't.
Method 3: MCP
The Model Context Protocol is how AI assistants talk to external tools, and it's where Strava decided the sanctioned path lives. The official Strava MCP connector launched June 1: read-only, OAuth-based, revocable from your settings, available to Strava subscribers. The API policy carves it out as "the sole authorized first-party agent-mediated interface" for your own data.
The catch, if ChatGPT is your assistant of choice: the official connector launched with Claude as its first client, with other assistants promised "in the future." ChatGPT itself can connect to MCP servers now (developer mode lives under Settings, then Apps, then Advanced settings, on the web app for Plus, Pro, and Business plans), but pointing it at a community server like r-huijts/strava-mcp, a well-built TypeScript project with 25 tools and around 430 stars, puts you back on the regular API and back under Section 5.3.
So the MCP situation in June 2026 is genuinely awkward: the connector that's allowed doesn't support ChatGPT yet, and the connectors that support ChatGPT aren't allowed.
The ceiling all three methods share
Say access were free, legal, and instant tomorrow. You'd still hit the wall we started this company over.
A language model reasons over what fits in its context, which for training data means summaries. The per-second streams that hold the interesting signal (heart rate drift on easy runs, the shape of your intervals) run to tens of thousands of values per activity; Strava's own API has been known to return 500 errors on stream requests for very long activities simply because of payload size. So the model reads your week the way a coach would read a postcard about your week.
And nothing persists. Each conversation starts from approximately zero, the plan it gave you last Tuesday doesn't adjust when you sleep badly on Thursday, and no workout it writes can land on your watch as a structured session. We went deeper on those failure modes, with the research on each, in ChatGPT as a running coach.
Getting the data in front of the model was always the easy half. The hard half is a system that holds your whole season, watches every run as it lands, adapts before you ask, and writes the next session to your wrist. That's the half we work on.