Features Integrations AI & API Pricing Blog Docs
Overview WHOOP Oura Withings Apple Health Hevy REST API AI & Claude MCP Server

Connect Withings

Link your Withings account to pull weight and body composition measurements directly into VitalTrends. Every weigh-in syncs automatically.

What syncs: Weight, BMI, body fat percentage, fat mass, muscle mass, bone mass, hydration, and pulse wave velocity (if available on your device). Historical data goes back up to 1 year.

Steps

1
Subscribe to VitalTrends

An active subscription is required to connect integrations. Go to Pricing to get started.

2
Open the Connections page

Go to Settings → Connections. You will see a Withings card showing "Not connected".

3
Click "Connect Withings"

You will be redirected to Withings's OAuth authorization page. Log in with your Withings account credentials if prompted.

4
Authorize access

Review the permissions and click Allow this app. VitalTrends requests read-only access to your measurements.

5
Initial sync runs automatically

A background job imports up to 12 months of weight and body composition history. The dashboard will populate once the sync completes.


How data stays fresh

Webhooks (real-time)

Withings sends a push notification each time you weigh yourself. VitalTrends processes body composition (appli=1) and vitals (appli=4) events immediately after your scale uploads the measurement.

Catch-up sync (background)

An hourly job checks whether your Withings data is stale (no new data in 24 hours). Stale accounts trigger a catch-up sync to fetch any missed measurements.


Understanding Withings measurements

Withings sends measurements as a group from a single weigh-in or vitals reading. VitalTrends stores that group as one row and keeps the original measurement time from Withings.

Field Meaning
measured_atThe time Withings recorded the measurement.
weight_kgBody weight in kilograms. The dashboard converts it to your profile unit preference when needed.
fat_ratio_pctBody fat percentage from the Withings measurement.
fat_mass_kgEstimated fat mass in kilograms.
fat_free_mass_kgEstimated non-fat mass in kilograms.
muscle_mass_kgEstimated muscle mass in kilograms, when your device provides it.
bone_mass_kgEstimated bone mass in kilograms, when your device provides it.
hydration_kgEstimated body water mass in kilograms, when your device provides it.
heart_pulsePulse from the Withings reading, when available.
systolic_bp / diastolic_bpBlood pressure values from Withings devices that support blood pressure.

Some fields may be empty because not every Withings device measures every body-composition or vitals metric. Empty fields mean Withings did not provide that value for that measurement; they do not mean VitalTrends rejected it.


Disconnecting Withings

Go to Settings → Connections and click Disconnect next to Withings. This stops all future syncs. Your historical measurement data stays in VitalTrends.


Troubleshooting

No data after connecting

The initial import is still running. Wait a minute and refresh. If measurements still do not appear, try disconnecting and reconnecting.

Connection shows "Reconnection needed"

Withings OAuth tokens expire or can be revoked. Click Reconnect on the Connections page to re-authorize. This happens automatically if you revoke access in the Withings app.

Weight appears in wrong unit

VitalTrends stores weight in kilograms (as provided by the Withings API) and converts to your preferred unit based on your profile settings. Check Settings → Profile to update your unit preference.

Some body composition fields are blank

Withings only sends fields your device measured for that weigh-in. For example, a basic scale may send weight_kg without muscle_mass_kg, bone_mass_kg, or hydration_kg.