Integrations (Device Sync)
Connect Strava, Garmin, Wahoo, WHOOP, and more platforms.
On this page
ENDURE connects to the platforms where your training data lives. Manage integrations at Settings > Integrations.
Supported Platforms
Platforms are organized into three categories:
Activity Sources — Import completed workouts:
| Platform | What It Syncs | Auth Type | Status |
|---|---|---|---|
| Strava | Activities (rides, runs, swims, etc.) | OAuth | Full sync |
| Garmin Connect | Activities, daily health (HRV, resting HR, sleep, steps, stress) | OAuth (PKCE) | Full sync |
| Wahoo | Activities | OAuth | Full sync |
| Intervals.icu | Activities, streams, power curves, athlete profile (FTP, LTHR, max HR, weight) | API Key | Full sync |
| TrainingPeaks | Activities | OAuth | Full sync |
Workout Push — Send scheduled workouts to devices:
| Platform | Push Support | Status |
|---|---|---|
| Garmin | Push workouts to device | Framework only — requires Garmin partnership. Use FIT file export. |
| Wahoo | Push workouts to device | Framework only — requires API partnership. Use FIT file export. |
Health and Recovery — Import wellness data:
| Platform | What It Syncs | Auth Type | Status |
|---|---|---|---|
| WHOOP | Recovery scores, HRV, sleep, strain | OAuth | Full sync |
| Oura | Sleep, HRV, readiness, activity | OAuth | Full sync |
| Polar | Activities, health data | OAuth | Sync available |
| Suunto | Activities | OAuth | Auth connected |
Note: Hammerhead Karoo has OAuth connection support but no direct activity sync (no public API). Karoo activities come to ENDURE via Strava.
Connecting a Platform
- Go to Settings > Integrations.
- Click Connect on the platform card.
- You'll be redirected to the platform's authorization page (e.g., Strava's "Authorize ENDURE" screen).
- Grant access and you'll be redirected back to ENDURE.
- ENDURE immediately syncs the last 14 days of data.
For Intervals.icu, you enter your API key directly (no OAuth redirect).
Sync Behavior
- Automatic daily sync — ENDURE runs a cron job every day at 6:00 AM UTC. All connected platforms are synced in parallel with a 7-day lookback window.
- Manual sync — Click the sync button on any integration card to trigger an immediate sync.
- On-demand sync — When you open the app, a sync can be triggered for connected platforms.
What Gets Synced
From Strava: Activity name, type, duration, distance, power (if available), heart rate, cadence, elevation, GPS route, speed, temperature.
From Garmin: All activity data plus daily wellness summaries (resting HR, HRV, stress level, steps, sleep duration, sleep stages, sleep score).
From WHOOP: Recovery score, HRV, resting HR, sleep duration, sleep stages, strain score.
From Intervals.icu: Activities, streams (power, HR, cadence), power curves, athlete profile (FTP, LTHR, max HR, weight).
Deduplication
If you save the same activity on multiple platforms (e.g., your ride goes to both Strava and Garmin), ENDURE deduplicates using the source ID. The same activity won't appear twice.
Token Refresh
OAuth tokens expire. ENDURE automatically refreshes tokens when they expire. If a refresh fails (e.g., you revoked access on the platform), the integration status changes to Needs Reauth and you'll see a prompt to reconnect.
Connection Settings
For each connected platform, you can configure:
- Auto-sync — On/off
- Sync activities — Import completed activities
- Sync health data — Import HRV, sleep, recovery
Sync Status
Each integration card shows:
- Current status: Connected, Disconnected, Error, or Needs Reauth
- Last sync time
- Error message (if applicable)