Strava
This page guides you through the process of setting up the Strava source connector.
Prerequisites
Scopes:
activity:read_all
The authorized athlete must grant this scope during authorization. Refreshing a token does not add missing permissions. If you receive an activity:read_permission error, reauthorize the application with activity:read_all and update the source credentials. The connection check validates access to both athlete stats and activities.
Strava access tokens expire after six hours. Airbyte automatically refreshes them and saves the latest refresh token. If you exchange tokens outside Airbyte, use the latest refresh token when updating the source because Strava invalidates older refresh tokens when it rotates them.
If Strava returns Application / Status / Inactive, the developer application is inactive. Restore its access with Strava before retrying; changing the athlete ID or start date will not resolve this error.
Setup guide
Step 1: Set up Strava
For Airbyte Open Source:
Follow these steps to get the required credentials and inputs:
client_idandclient_secret- Create a Strava account
- Continue to follow the instructions from the doc above to obtain
client_idandclient_secret
refresh_token- Enter this URL into your browser (make sure to add your
client_idfrom previous step:https://www.strava.com/oauth/authorize?client_id=[REPLACE_WITH_YOUR_CLIENT_ID]&response_type=code&redirect_uri=https://localhost/exchange_token&approval_prompt=force&scope=activity:read_all
- Authorize through the UI
- Browser will redirect you to an empty page with a URL similar to
https://localhost/exchange_token?state=&code=b55003496d87a9f0b694ca1680cd5690d27d9d28&scope=activity:read_all - Copy the authorization code above (in this example it would be
b55003496d87a9f0b694ca1680cd5690d27d9d28) - Make a cURL request to exchange the authorization code and scope for a refresh token:
-
curl -X POST https://www.strava.com/oauth/token \-F client_id=YOUR_CLIENT_ID \-F client_secret=YOUR_CLIENT_SECRET \-F code=AUTHORIZATION_CODE \-F grant_type=authorization_code
- The resulting json will contain the
refresh_token - Example Result:
-
{"token_type": "Bearer","expires_at": 1562908002,"expires_in": 21600,"refresh_token": "REFRESHTOKEN","access_token": "ACCESSTOKEN","athlete": {"id": 123456,"username": "MeowTheCat","resource_state": 2,"firstname": "Meow","lastname": "TheCat","city": "","state": "","country": null,...}}
- Refer to Strava's Getting Started - Oauth or Authentication documents for more information
- Enter this URL into your browser (make sure to add your
athlete_id- Go to your athlete page by clicking your name on the Strava dashboard or click on "My Profile" on the drop down after hovering on your top bar icon
- The number at the end of the url will be your
athlete_id. For example17831421would be theathlete_idfor https://www.strava.com/athletes/17831421
For Airbyte Cloud:
athlete_id- Go to your athlete page by clicking your name on the Strava dashboard or click on "My Profile" on the drop down after hovering on your top bar icon
- The number at the end of the url will be your
athlete_id. For example17831421would be theathlete_idfor https://www.strava.com/athletes/17831421
Step 2: Set up the source connector in Airbyte
For Airbyte Cloud:
- Log into your Airbyte Cloud account.
- In the left navigation bar, click Sources. In the top-right corner, click + new source.
- On the source setup page, select Strava from the Source type dropdown and enter a name for this connector.
- lick
Authenticate your account. - Log in and Authorize to the Strava account
- Set required Athlete ID and Start Date
- click
Set up source.
For Airbyte Open Source:
- Go to local Airbyte page.
- In the left navigation bar, click Sources. In the top-right corner, click + new source.
- On the source setup page, select Strava from the Source type dropdown and enter a name for this connector.
- Add Client ID, Client Secret and Refresh Token
- Set required Athlete ID and Start Date
- Click
Set up source.
Supported sync modes
The Strava source connector supports the following sync modes:
- Full Refresh - Overwrite
- Full Refresh - Append
- Incremental Sync - Append
- Incremental Sync - Append + Deduped
Supported streams
- Athlete Stats
- Activities (Incremental)
Performance considerations
Strava API has limitations to 100 requests every 15 minutes, 1000 daily. More information about Strava rate limits and adjustments to those limits can be found here.
IP allow list
If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.
Reference
Config fields reference
Changelog
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.4.1 | 2026-10-15 | 88994 | Show a re-authenticate error when Strava rejects the refresh token or app credentials, and stop sending an unused scopes parameter on token refresh. |
| 0.4.0 | 2026-10-07 | 88212 | Fix OAuth token expiry and refresh-token rotation; validate activity permissions during setup. See the migration guide. |
| 0.3.52 | 2026-06-30 | 81265 | Update dependencies |
| 0.3.51 | 2026-06-23 | 80672 | Update dependencies |
| 0.3.50 | 2026-06-16 | 80056 | Update dependencies |
| 0.3.49 | 2026-06-09 | 79524 | Update dependencies |
| 0.3.48 | 2026-06-02 | 78990 | Update dependencies |
| 0.3.47 | 2026-04-28 | 77413 | Update dependencies |
| 0.3.46 | 2026-04-21 | 76782 | Update dependencies |
| 0.3.45 | 2026-03-31 | 75863 | Update dependencies |
| 0.3.44 | 2026-03-17 | 75088 | Update dependencies |
| 0.3.43 | 2026-03-10 | 74577 | Update dependencies |
| 0.3.42 | 2026-03-03 | 73975 | Update dependencies |
| 0.3.41 | 2026-02-03 | 72765 | Update dependencies |
| 0.3.40 | 2026-01-20 | 72132 | Update dependencies |
| 0.3.39 | 2026-01-14 | 71619 | Update dependencies |
| 0.3.38 | 2025-12-18 | 70608 | Update dependencies |
| 0.3.37 | 2025-11-25 | 70057 | Update dependencies |
| 0.3.36 | 2025-11-18 | 69586 | Update dependencies |
| 0.3.35 | 2025-10-29 | 68991 | Update dependencies |
| 0.3.34 | 2025-10-21 | 68515 | Update dependencies |
| 0.3.33 | 2025-10-14 | 67918 | Update dependencies |
| 0.3.32 | 2025-10-07 | 67456 | Update dependencies |
| 0.3.31 | 2025-09-30 | 66893 | Update dependencies |
| 0.3.30 | 2025-09-23 | 66371 | Update dependencies |
| 0.3.29 | 2025-09-09 | 65664 | Update dependencies |
| 0.3.28 | 2025-08-24 | 65412 | Update dependencies |
| 0.3.27 | 2025-08-16 | 65038 | Update dependencies |
| 0.3.26 | 2025-08-02 | 64020 | Update dependencies |
| 0.3.25 | 2025-07-12 | 63084 | Update dependencies |
| 0.3.24 | 2025-07-05 | 62682 | Update dependencies |
| 0.3.23 | 2025-06-28 | 62278 | Update dependencies |
| 0.3.22 | 2025-06-14 | 61608 | Update dependencies |
| 0.3.21 | 2025-05-25 | 60208 | Update dependencies |
| 0.3.20 | 2025-05-04 | 59581 | Update dependencies |
| 0.3.19 | 2025-04-27 | 59034 | Update dependencies |
| 0.3.18 | 2025-04-19 | 58385 | Update dependencies |
| 0.3.17 | 2025-04-12 | 57939 | Update dependencies |
| 0.3.16 | 2025-04-05 | 57411 | Update dependencies |
| 0.3.15 | 2025-03-29 | 56879 | Update dependencies |
| 0.3.14 | 2025-03-22 | 56280 | Update dependencies |
| 0.3.13 | 2025-03-08 | 55588 | Update dependencies |
| 0.3.12 | 2025-03-01 | 55095 | Update dependencies |
| 0.3.11 | 2025-02-22 | 54482 | Update dependencies |
| 0.3.10 | 2025-02-15 | 54087 | Update dependencies |
| 0.3.9 | 2025-02-08 | 53562 | Update dependencies |
| 0.3.8 | 2025-02-01 | 53075 | Update dependencies |
| 0.3.7 | 2025-01-25 | 52019 | Update dependencies |
| 0.3.6 | 2025-01-11 | 51460 | Update dependencies |
| 0.3.5 | 2024-12-28 | 50764 | Update dependencies |
| 0.3.4 | 2024-12-21 | 50337 | Update dependencies |
| 0.3.3 | 2024-12-14 | 49777 | Update dependencies |
| 0.3.2 | 2024-12-12 | 49432 | Update dependencies |
| 0.3.1 | 2024-10-28 | 47601 | Update dependencies |
| 0.3.0 | 2024-08-27 | 44820 | Refactor connector to manifest-only format |
| 0.2.17 | 2024-08-24 | 44667 | Update dependencies |
| 0.2.16 | 2024-08-17 | 44354 | Update dependencies |
| 0.2.15 | 2024-08-10 | 43588 | Update dependencies |
| 0.2.14 | 2024-08-03 | 43283 | Update dependencies |
| 0.2.13 | 2024-07-20 | 42131 | Fix bug in start date format in manifest |
| 0.2.12 | 2024-07-20 | 42353 | Update dependencies |
| 0.2.11 | 2024-07-13 | 41933 | Update dependencies |
| 0.2.10 | 2024-07-10 | 41499 | Update dependencies |
| 0.2.9 | 2024-07-09 | 41201 | Update dependencies |
| 0.2.8 | 2024-07-06 | 40970 | Update dependencies |
| 0.2.7 | 2024-06-25 | 40393 | Update dependencies |
| 0.2.6 | 2024-06-21 | 39941 | Update dependencies |
| 0.2.5 | 2024-06-06 | 39221 | [autopull] Upgrade base image to v1.2.2 |
| 0.2.4 | 2024-04-19 | 37266 | Updating to 0.80.0 CDK |
| 0.2.3 | 2024-04-18 | 37266 | Manage dependencies with Poetry. |
| 0.2.2 | 2024-04-15 | 37266 | Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.2.1 | 2024-04-12 | 37266 | schema descriptions |
| 0.2.0 | 2023-10-24 | 31007 | Migrate to low-code framework |
| 0.1.4 | 2023-03-23 | 24368 | Add date-time format for input |
| 0.1.3 | 2023-03-15 | 24101 | certified to beta, fixed spec, fixed SAT, added unit tests |
| 0.1.2 | 2021-12-15 | 8799 | Implement OAuth 2.0 support |
| 0.1.1 | 2021-12-06 | 8425 | Update title, description fields in spec |
| 0.1.0 | 2021-10-18 | 7151 | Initial release supporting Strava API |