Import Strava Data to Google Sheets
In this guide, we’ll walk through how to pull Strava data data directly into Google Sheets, using the API Connector add-on for Sheets. Strava is, of course, a well-known fitness tracker website and app. The Strava API only supports authentication via OAuth2, so we’ll be connecting using API Connector’s built-in OAuth2 integration for Strava.
CONTENTS
- Before You Begin
- Part 1: Connect to the Strava API
- Part 2: Create your Strava API Request URL
- Part 3: Pull Strava API Data into Sheets
- Part 4: More Example API URLs
- Part 5: Handle Pagination
BEFORE YOU BEGIN
Click here to install the API Connector add-on from the Google Marketplace.
PART 1: CONNECT TO THE STRAVA API
If you haven’t connected API Connector to Strava before, you’ll first need to initiate the connection as follows:
- Open up Google Sheets and click Add-ons > API Connector > Manage Connections.
- In the list of available connections, find Strava and click Connect.
- You will be directed to strava.com and asked to sign in, if you haven’t already. You’ll also be asked to authorize the connection.
- You’ll then be returned to your Google Sheet, and can verify that your Strava connection is active in the Connections screen.
PART 2: CREATE YOUR STRAVA API REQUEST URL
For our first request, we’ll get some basic information about your Strava account.
- API root: https://www.strava.com/api
- Endpoint: /v3/athlete
Putting it all together, we get the full API Request URL.
https://www.strava.com/api/v3/athlete
PART 3: PULL STRAVA API DATA INTO SHEETS
Now let’s enter our URL into API Connector and import Strava data into Google Sheets!
- In API Connector, click Create, and paste in the Request URL we created above.
- We don’t need any headers so just leave that section as is.
- Under Authentication, choose Strava from the dropdown menu.
- Create a new tab and click ‘Set current’ to use that tab as your data destination.
- Name your request and click Run. A moment later you’ll see some information about yourself populate your sheet.
PART 4: MORE EXAMPLE API URLS
To get more information about your Strava activities, try the following URLs (one at a time).
- Get your own starred segments
https://www.strava.com/api/v3/segments/starred
- Get a public list of running races
https://www.strava.com/api/v3/running_races
- Get your own activities
https://www.strava.com/api/v3/athlete/activities
To see more API endpoints and example responses, I suggest checking out out the Strava API playground located at https://developers.strava.com/playground/.
PART 5: HANDLE PAGINATION
Note Strava’s limits on the number of records returned on a response. By default, only 30 records will be returned unless you use pagination handling as described in their documentation.
This means that to get 200 records, you’d use the ‘per_page’ parameter, and to return more than 200 you’d then make subsequent requests using the ‘page’ parameter.
With API Connector you can loop through these automatically with pagination handling, like this:
- API URL: enter your request URL as usual, making sure to include ?per_page=200
- Pagination type:
page parameter
- Page parameter:
page
- Number of pages: enter the number of pages you’d like to fetch
Hi, I tried using this with the endpoint https://www.strava.com/api/v3/athlete/activities but it only returned 30 activities. The cutoff point seemed random, it only went back to May 2020.
Is this a problem with Strava’s OAuth? Should this API connection work in 2021 still?
Thanks
Good question, I just checked Strava’s API docs and by default they only send 30 records at a time. To get more, you can add
?per_page=200
to the end of your URL. If you have more than 200 records, you would paginate through using “page parameter” pagination. I’ll update the article to include this info.