Connect Withings
Link your Withings account to Omnio via OAuth to sync body composition, blood pressure, SpO2, and sleep data from Withings scales, BPMs, and sleep mats.
What data syncs
Omnio pulls the following from the Withings API:
| Category | Metrics |
|---|---|
| Body composition | Weight, body fat %, fat mass, fat-free mass, muscle mass, bone mass, hydration %, pulse wave velocity |
| Blood pressure | Systolic, diastolic, pulse, SpO2 |
| Sleep | Total sleep, deep/REM/light hours, sleep efficiency, onset latency, wakeup latency, wakeup count |
On first connect, Omnio fetches recent historical data so your baselines and trends are populated immediately.
Supported devices
Any Withings device that syncs to the Withings Health Mate app will work, including:
Scales — Body, Body+, Body Cardio, Body Comp, Body Scan Blood pressure monitors — BPM, BPM+, BPM Core, BPM Pro Sleep trackers — Sleep Analyzer, Sleep+ Watches — ScanWatch, ScanWatch Light, ScanWatch Nova (sleep + SpO2)
You don’t connect individual devices to Omnio — you connect your Withings account, and all device data flows through automatically.
How to connect
- Go to Sources → Accounts tab in your dashboard, or visit
/accounts. - Click Connect Withings.
- You’ll be redirected to Withings to authorise Omnio.
- Grant the requested permissions (body metrics and activity data).
- After authorising, you’re redirected back to Omnio. Your first sync begins automatically.
Behind the scenes, Omnio subscribes to Withings webhooks so new data arrives within minutes of your device syncing to the Withings cloud.
Sync frequency
Withings uses webhooks for real-time data delivery. When you step on your scale or take a blood pressure reading, Withings pushes a notification to Omnio as soon as the data reaches Withings Cloud. Omnio then fetches the new data immediately.
There are three webhook categories:
| Category | Triggered by |
|---|---|
| Body metrics | Scale measurements (weight, body composition) |
| Blood pressure | BPM readings (systolic, diastolic, pulse, SpO2) |
| Sleep | Sleep mat or watch sleep sessions |
You don’t need to configure anything — webhook subscriptions are set up automatically when you connect your account.
Token refresh
Withings OAuth tokens expire periodically. Omnio automatically refreshes them using the stored refresh token. If a refresh fails (e.g. you revoked access in Withings), the account status changes to disconnected and you’ll see a banner prompting you to reconnect.
How the data is used
- Body composition metrics feed into composite scores and the body composition dashboard. Weight and body fat % are key inputs for BMR calculation and caloric balance tracking.
- Blood pressure data appears alongside Omron and Garmin readings (differentiated by source). Trends, 7-day and 30-day averages are computed automatically.
- Sleep data from Withings sleep mats and watches contributes to your Sleep score. If you also have an Oura Ring, Omnio keeps both sleep sources separate so you can compare them.
Troubleshooting
- “OAuth state invalid” error — This happens if you waited too long on the Withings authorisation page. Go back to Sources and try connecting again.
- No data after connecting — Check that your Withings device has synced recently in the Health Mate app. Omnio can only pull data that the Withings cloud has received.
- Missing body composition metrics — Not all Withings scales measure every metric. Basic scales only report weight. Body Comp and Body Scan include the full breakdown (fat %, muscle mass, etc.).
- Sleep data not appearing — Sleep tracking requires a Sleep Analyzer mat, Sleep+, or a ScanWatch. Basic scales don’t track sleep.
- Disconnected status — Go to Sources → Accounts and click Reconnect. This starts a fresh OAuth flow and re-subscribes to webhooks.