Strava

Demo to preview the settings

Introduction

Sign up and log in users with their Strava credentials and retrieve athletes' route & activity data.

Prerequisites

  1. You must have the Strava account.

How to set up

Register your App

Follow this link to create an API application with your Strava account.
When asked for the app's Authorization Callback Domain, this is the root domain of your application without slashes or https. For example:
  • For apps not yet on a custom domain, this will be app-id.bubbleapps.io
  • For apps on a custom domain, this will be the domain itself like "myapp.com"
Image without caption

Gather your Client ID and Secret

Looking at the screenshot below, copy your Client ID and reveal the Client Secret. These two values will be placed into your plugin settings.
Image without caption
Client ID from Strave goes into the App ID/API Key input
Client Secret from Strava goes into the App Secret input
Image without caption
That's it! You're now ready to use the plugin.

Authenticate User

Signup/login with Strava

In order for the plugin to retrieve data from the user's Strava account, they'll need to authenticate that access. The user should trigger a workflow that runs the action: signup/login with a social network:
Image without caption
That workflow will temporarily redirect the user to a Strava login screen. Once the user has logged into their Strava account, they'll see a permission screen like this with your app information configured in the developer account:
Image without caption
Once they authorize, Strava will redirect the user back to your app and you'll be able to trigger the rest of the data calls to access their information.

Get Current User's Stats

Set up the datasource

We're using a group in our example. Make sure whatever element you use has the correct type of content set (Get Totals & Stat (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display Data action to send the results of this API call to the group we've set up.
Image without caption
Image without caption

Available Path (* indicates a required value)

athelete_id* - The ID of the athlete you're looking up.

Get Current Athlete

Set up the datasource

We're using a group in our example. Make sure whatever element you use has the correct type of content set (Get Current Athlete (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display Data action to send the results of this API call to the group we've set up.
Select "Get data from external API" from the list of data sources, then find Strava - Get Current Athlete from the list of API providers
Select "Get data from external API" from the list of data sources, then find Strava - Get Current Athlete from the list of API providers
That's it! Refer to the documentation link above for a detailed list of additional attributes you can display.

List Routes

Set up the datasource

We're using a repeating group in our example. Make sure whatever element you use has the correct type of content set (List Route (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display List action to send the results of this API call to the repeating group we've set up.
Select "Get data from external API" from the list of data sources, then find Strava - List Routes from the list of API providers
Select "Get data from external API" from the list of data sources, then find Strava - List Routes from the list of API providers
Since this call requires the ID of the Athlete to return routes for, we'll supply this from an input on the page, but you can also use Strava ID from the "Get Current Athlete" call. You'll also be presented with the option to add page and per_page parameters to your call as well.
Image without caption
That's it! Refer to the documentation link above for a detailed list of additional attributes you can display.

Available Path (* indicates a required value)

athlete_id* - The ID of the athlete you're looking up.

Available Parameters (* indicates a required value)

page - The number of pages to return from the API call.
per_page - The number of results to return from each page from the API call.

Retrieve Route

Set up the datasource

We're using a group in our example. Make sure whatever element you use has the correct type of content set (Retrieve Route (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display Data action to send the results of this API call to the group we've set up.
Select "Get data from external API" from the list of data sources, then find Strava - Retrieve Route from the list of API providers
Select "Get data from external API" from the list of data sources, then find Strava - Retrieve Route from the list of API providers
Since this call requires the ID of the Route we'll supply this from an input on the page, but you can also reference the "List Routes" call to find IDs.
Image without caption
That's it! Refer to the documentation link above for a detailed list of additional attributes you can display.

Available Path (* indicates a required value)

route_id* - The ID of the route you're looking up.

Retrieve Activity

Set up the datasource

We're using a group in our example. Make sure whatever element you use has the correct type of content set (Retrieve Activity (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display Data action to send the results of this API call to the group we've set up.
Select "Get data from external API" from the list of data sources, then find Strava - Retrieve Activity from the list of API providers
Select "Get data from external API" from the list of data sources, then find Strava - Retrieve Activity from the list of API providers
Since this call requires the ID of the Route we'll supply this from an input on the page, but you can also reference the "List Activities" call to find IDs.
Image without caption
That's it! Refer to the documentation link above for a detailed list of additional attributes you can display.

Available Path (* indicates a required value)

activity_id* - The ID of the activity you're looking up.

List of Activities

Set up the datasource

We're using a repeating group in our example. Make sure whatever element you use has the correct type of content set (List of Activities (Strava)):
Image without caption

Set up the API call

Using the blue button from the screenshot above, we'll use a Display List action to send the results of this API call to the repeating group we've set up.
Select "Get data from external API" from the list of data sources, then find Strava - List of Activities from the list of API providers
Select "Get data from external API" from the list of data sources, then find Strava - List of Activities from the list of API providers
You'll also be presented with several parameters to fill in:
  • before: this filters for activities that happened before a date/time. The format is UNIX, which is a number of milliseconds. Strava needs the UNIX in seconds though, so extract the UNIX value from a date/time and divide by 1000.
  • after: this filters for activities that happened after a date/time. The format is UNIX, which is a number of milliseconds. Strava needs the UNIX in seconds though, so extract the UNIX value from a date/time and divide by 1000.
  • page: this is a number and, by default, Strava returns 30 activities per page. Use this to change pages and move to the next set of activities. It's recommended to start with page 1.
  • per_page: this is a number to change how many items are returned per page. The default is 30.
☝
Note: It's best if you always have values for these parameters to avoid errors.
Image without caption
That's it! Unlike the List Routes call, this one does not require the ID of an Athlete and will return the activities of the currently authenticated User.
Refer to the documentation link above for a detailed list of additional attributes you can display.

Available Parameters (* indicates a required value)

page - The number of pages to return from the API call. Defaults to 1.
per_page - The number of results to return from each page from the API call. Defaults to 30.
before - Only show activities before this UNIX-formatted date converted to seconds.
after - Only show activities after this UNIX-formatted date converted to seconds.

Changelogs

Update 21.11.16 - Version 1.0.0

  • First Publish

Update 14.01.17 - Version 1.1.0

  • Retrieve list of routes and individual route data.

Update 14.01.17 - Version 1.2.0

  • Updated user & route data

Update 25.01.17 - Version 1.3.0

  • Retrieve an activity stream

Update 25.01.17 - Version 1.4.0

  • Retrieve list of activities

Update 31.01.17 - Version 1.5.0

  • Changed athlete id to text

Update 04.12.17 - Version 1.6.0

  • Added 2 calls: Retrieve another athlete and Retrieve current user's stats

Update 06.01.20 - Version 2.0.0

  • Authentication scope updated according to Strava's latest API version - you should be on this version!

Update 28.03.20 - Version 2.1.0

  • Update to plugin description

Update 23.01.23 - Version 3.0.0

  • Removed the call to retrieve another athlete as it's no longer offered by Strava API.

Update 12.04.23 - Version 3.1.0

  • Updated Documentation

Update 22.04.23 - Version 4.0.0

  • Updated scope permissions to "read all" activities for authenticated users

Update 16.06.23 - Version 4.1.0

  • Added pagination parameters to list activities and list routes calls.

Update 21.06.23 - Version 4.1.1

  • Fixed date fields from an error in version 4.1.0 that changed them to text. Updated all date fields for all calls.

Update 20.11.23 - Version 4.8.0

  • Updated API calls "List Routes", "List of Activities”

Powered by Notaku