Need help with your Strava integration? Pop into our Discord if you have questions or want to discover how Open Wearables can solve your problems.
Overview
Strava provides access to activity/workout data through their API. The integration supports real-time webhook notifications for new activities as well as historical activity data via polling.Supported data types
| Data Type | Support |
|---|---|
| Workouts / Activities | Yes |
| Sleep | No |
| Daily summaries (247 data) | No |
| Body composition | No |
Data delivery
| Method | Description |
|---|---|
| Webhooks (push) | Strava sends real-time notifications when activities are created or updated |
| Polling (pull) | Historical activity data can be fetched via the API |
What you need by the end
- App credentials: Client ID + Client Secret
- OAuth scopes configured
- Webhook verify token set (a secret string you choose)
- Webhook subscription created (so Strava sends activity events to your server)
Prerequisites
- A Strava account
Application walkthrough
Create a Strava API Application
Log in to your Strava account and go to:Fill in the application form:
- Application Name: Your app name
- Category: Choose the category that best describes your app
- Website: Your app’s website URL
- Authorization Callback Domain:
localhostfor local development, or your production domain (e.g.yourdomain.com)
- Client ID
- Client Secret
Configure credentials in Open Wearables
Add the following to your Configuration details:
.env file:| Variable | Description |
|---|---|
STRAVA_CLIENT_ID | Client ID from the Strava API settings page |
STRAVA_CLIENT_SECRET | Client Secret from the Strava API settings page |
STRAVA_REDIRECT_URI | Must match the callback domain you set in Strava. For local dev: http://localhost:8000/api/v1/oauth/strava/callback |
STRAVA_DEFAULT_SCOPE | OAuth scopes requested during authorization. Default activity:read_all,profile:read_all covers all activity data and athlete profile |
STRAVA_WEBHOOK_VERIFY_TOKEN | A secret string you choose. Strava will send this back during webhook subscription verification to confirm ownership. Pick something unique and hard to guess |
Create a webhook subscription
To receive real-time activity notifications, you need to create a webhook subscription with the Strava API. Your server must be publicly accessible for Strava to reach the webhook endpoint.Create the subscription using the Strava API:When Strava receives this request, it will send a GET request to your
callback_url with a hub.verify_token parameter. Open Wearables will validate the token against your STRAVA_WEBHOOK_VERIFY_TOKEN and echo back the challenge to confirm the subscription.Strava allows only one webhook subscription per application. If you need to change the callback URL, delete the existing subscription first:
Verify the integration
Once everything is configured:
- Start your Open Wearables instance
- Connect a Strava account through the OAuth flow
- Create or record an activity on Strava
- The webhook should deliver the event and Open Wearables will fetch and store the full activity data
OAuth Scopes Reference
| Scope | Description |
|---|---|
activity:read | Read public activities |
activity:read_all | Read all activities (including private) |
profile:read_all | Read athlete profile |
activity:read_all,profile:read_all is recommended for full activity data access.
Next Steps
API Reference
Explore the Open Wearables API endpoints.
Architecture
Understand the overall system architecture.
Support
Need Help?
- Join our Discord and ask a question.
- Check GitHub Discussions.
- Check the Strava API Documentation.
- Check the Strava Webhook Documentation.

