Connect Oura
Connect Oura to Omnio to sync sleep, readiness, resilience, stress, heart rate, and recovery trends into one health dashboard.
What data syncs
Omnio pulls the following from the Oura API:
| Category | Metrics |
|---|---|
| Sleep | Total sleep, efficiency, deep/REM/light hours, latency, awake time, restless periods, respiratory rate, SpO2, temperature deviation, breathing disturbance index |
| Readiness | Readiness score, HRV balance, resting heart rate, recovery index |
| Activity | Steps, active calories, active minutes, activity score |
| Heart rate | Resting heart rate, HRV (RMSSD), overnight HRV trend |
On first connect, Omnio fetches 30 days of historical data so your baselines and trends are populated immediately.
How to connect
- Go to Sources → Accounts tab in your dashboard, or visit
/accounts. - Click Connect Oura.
- You’ll be redirected to Oura Cloud to authorise Omnio.
- Grant the requested permissions (daily data, heart rate, workout, session, SpO2, personal info).
- After authorising, you’re redirected back to Omnio. Your first sync begins automatically.
The initial sync takes 30–60 seconds. You’ll see tiles start populating on your dashboard once data arrives.
Sync frequency
After the initial backfill, new data syncs automatically. Oura also supports webhooks — if enabled, Omnio receives a push notification within minutes of your ring uploading data to Oura Cloud.
Without webhooks, Omnio polls for new data periodically (roughly every 2 hours).
Token refresh
Oura OAuth tokens expire periodically. Omnio automatically refreshes them using the stored refresh token. If a refresh fails (e.g. you revoked access in Oura), the account status changes to disconnected and you’ll see a banner prompting you to reconnect.
You can also force a manual token refresh from Sources → Accounts → click the ⟳ button on your Oura account.
Troubleshooting
- “OAuth state invalid” error — This happens if you waited too long on the Oura authorisation page. Go back to Sources and try connecting again.
- No data after connecting — Check that your Oura ring has synced recently in the Oura app. Omnio can only pull data that Oura Cloud has received.
- Scores show ”—” — Some composite scores need data from multiple inputs. If you’ve only just connected, give it a day for enough data points to meet the minimum confidence threshold.
- Disconnected status — Go to Sources → Accounts and click Reconnect. This starts a fresh OAuth flow.