Withings API integration
LiveYour end users can connect this provider today.
Withings is the connected-scale and blood-pressure provider, which makes it the one that matters most for clinical-adjacent products — weight management, hypertension programmes, GLP-1 follow-up and remote patient monitoring. Its data is measurement-shaped rather than continuous: discrete readings taken when a user steps on a scale or straps on a cuff.
That measurement model interacts badly with naive daily-summary logic. A user might weigh themselves three times in a morning or skip four days. WearLink normalises each reading as a discrete timestamped record rather than forcing it into a daily bucket, so you can apply your own smoothing.
Withings also distinguishes between developer sandbox and production tiers. Sandbox works for building; you need the production tier before real users can connect, and promotion is a manual review on Withings' side.
How the Withings integration works
- Authentication
- OAuth 2.0 authorisation code
- Sync model
- Pull, with notify-only callbacks on measurement events.
- API base
- https://wbsapi.withings.net
- Integration type
- Cloud OAuth
Withings data available through WearLink
Everything below arrives in the shared normalised schema. The same field names and units apply whether the record came from Withings or from any other provider, so your scoring, charting and storage code is written once.
- Weight & body composition
- Blood pressure
- Sleep
- Heart rate
- Body temperature
Webhook events you can subscribe to
body_composition.createdblood_pressure.createdsleep.createdConnect a Withings user
Two calls: create a connect session for your end user, then read their normalised data. You never handle Withings OAuth credentials, token refresh or webhook registration.
# 1. Create a connect session for your end-user
curl -X POST https://wearlink.io/api/v1/connections/session \
-H "Authorization: Bearer $WEARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id": "'"$USER_ID"'", "provider": "withings"}'
# → { "connect_url": "https://wearlink.io/widget/connect?token=..." }
# Redirect the user there; they authorise withings and land back on your redirect_uri.
# 2. Pull normalised data whenever you want
curl -H "Authorization: Bearer $WEARLINK_API_KEY" \
"https://wearlink.io/api/v1/users/$USER_ID/summaries?provider=withings&days=7"What makes the Withings API hard to integrate directly
These are the things that turn an estimated one-week integration into a one-month one. They are worth knowing whether you use WearLink or build it yourself.
Sandbox and production are different worlds
An integration that works perfectly against sandbox credentials will not serve real users until Withings promotes your application. Plan for that review in your launch timeline.
Multi-user scales attribute by guesswork
A shared household scale assigns readings to whichever profile the weight most closely matches. Misattributed readings are a real data-quality problem, not an edge case.
The API is measurement-typed, not metric-typed
Withings returns a measurement group containing typed values. Mapping those type codes to meaningful fields is a lookup table you have to maintain — WearLink maintains it for you.
Withings API — frequently asked questions
- Does Withings give continuous heart rate?
- Not in the way a wrist wearable does. Withings heart rate comes from discrete measurements taken by its devices, plus sleep-tracking hardware where the user owns it.
- Is Withings suitable for remote patient monitoring?
- It is one of the more common choices, because connected scales and blood-pressure cuffs are the two device categories clinical programmes most often need. Your own regulatory obligations still apply.
- How do I handle duplicate weigh-ins?
- WearLink stores every reading as its own record with a timestamp. Deduplication and smoothing are left to you, since the correct policy differs between a weight-loss product and a clinical trial.
Other integrations
Start with Withings — free for up to 3 users
No credit card. Create an account, add your provider credentials once, and your users connect through a hosted widget or our mobile SDK.