Strava
This page guides you through the process of setting up the Strava source connector.
Prerequisites
Scopes:
activity:read_all
Setup guide
Step 1: Set up Strava
For Airbyte Open Source:
Follow these steps to get the required credentials and inputs:
client_id
andclient_secret
- Create a Strava account
- Continue to follow the instructions from the doc above to obtain
client_id
andclient_secret
refresh_token
- Enter this URL into your browser (make sure to add your
client_id
from 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 example17831421
would be theathlete_id
for 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 example17831421
would be theathlete_id
for 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.
Changelog
Version | Date | Pull Request | Subject |
---|---|---|---|
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 |