Devices Updated April 8, 2026

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:

CategoryMetrics
SleepTotal sleep, efficiency, deep/REM/light hours, latency, awake time, restless periods, respiratory rate, SpO2, temperature deviation, breathing disturbance index
ReadinessReadiness score, HRV balance, resting heart rate, recovery index
ActivitySteps, active calories, active minutes, activity score
Heart rateResting 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

  1. Go to SourcesAccounts tab in your dashboard, or visit /accounts.
  2. Click Connect Oura.
  3. You’ll be redirected to Oura Cloud to authorise Omnio.
  4. Grant the requested permissions (daily data, heart rate, workout, session, SpO2, personal info).
  5. 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 SourcesAccounts → 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.