Devices Updated April 3, 2026
Connect Whoop
Link your Whoop account to Omnio via OAuth to sync recovery, sleep, strain, and workout data.
What data syncs
Omnio pulls the following from the Whoop API:
| Category | Metrics |
|---|---|
| Sleep | Total sleep, deep/REM/light hours, efficiency, respiratory rate, SpO2, sleep score |
| Recovery | Recovery score, HRV (RMSSD), resting heart rate, skin temperature |
| Strain | Daily strain, active calories, max HR |
| Workouts | Duration, type, average/max HR, calories, strain |
| Body | Height, weight, body measurements |
On first connect, Omnio fetches 30 days of historical data.
How to connect
- Go to Sources → Accounts tab.
- Click Connect Whoop.
- You’ll be redirected to Whoop’s authorisation page.
- Sign in to your Whoop account and grant the requested permissions (recovery, cycles, workout, sleep, profile, body measurement).
- After authorising, you’re redirected back to Omnio. Your first sync begins automatically.
Sync frequency
After the initial backfill, Whoop data syncs periodically (roughly every 2 hours).
Token refresh
Whoop OAuth tokens are automatically refreshed by Omnio. If a refresh fails (e.g. you revoked access in the Whoop app), the account status changes to disconnected and you’ll see a prompt to reconnect.
Troubleshooting
- “OAuth state invalid” error — The authorisation page timed out. Go back to Sources and try again.
- No data after connecting — Ensure your Whoop strap has synced recently in the Whoop app. Omnio pulls data from Whoop’s cloud, not directly from the device.
- Recovery score shows ”—” — Whoop sometimes delays recovery score calculation. If it’s not yet available in the Whoop app, it won’t appear in Omnio either.
- Disconnected status — Go to Sources → Accounts → Reconnect to start a fresh OAuth flow.