Body Composition data from every wearable, in one schema
Weight, BMI, body fat, lean mass and skeletal muscle mass from connected scales and platforms.
5 / 6
Providers connectable today
9
Webhook events in this family
kilograms, metres, percentage
Canonical units
What body composition looks like through one API
Body composition comes almost entirely from connected scales, and it carries a structural problem the other metrics do not: a household scale is used by more than one person. Providers attempt to attribute readings to a profile using weight proximity and impedance signatures, and they get it wrong often enough that products need an explicit policy for outliers.
WearLink normalises to kilograms, metres and percentages, and emits each component as its own series so a product that only needs weight is not forced to parse an eleven-field composition object. Waist circumference and skeletal muscle mass are carried where the platform supplies them, typically from manual entry or a smart scale rather than a wearable.
Because these readings are episodic rather than continuous — a user steps on a scale some mornings and not others — the API returns what exists rather than interpolating a daily series. Building a trend line is your decision, and it should be, since the right smoothing depends on what you are showing.
Where providers disagree
The part that costs you weeks if you build this yourself. None of the following is a WearLink limitation — it is how the underlying providers actually behave.
Impedance-based body fat is an estimate, and a variable one
Bioelectrical impedance readings shift with hydration, recent food, recent exercise and even foot moisture. Day-to-day changes in body-fat percentage frequently reflect fluid, not fat. Present trends over weeks; a daily body-fat chart will look alarming and mean nothing.
Multi-user scales misattribute readings
A shared household scale will occasionally assign one person's weight to another's profile. If your product does anything consequential with weight, filter physiologically implausible jumps rather than trusting attribution.
Manual entries mix with device readings
Apple Health and Health Connect return both device-measured and hand-typed values in the same stream. Manual entries are frequently stale or estimated. The source attribution on each sample lets you separate them; the raw stream does not.
Stale height silently corrupts BMI and lean mass
BMI and several derived composition figures depend on height, which a user enters once during setup and effectively never updates. For adults the error is usually small; for adolescent users, or for anyone who mistyped units at signup, it is not, and it propagates into every derived value without ever looking wrong. Some platforms also carry height as its own series with its own timestamp, so a device-reported weight can be combined with a height entered years earlier. Check the age of the height sample before trusting anything derived from it.
Providers that supply body composition
Status is read from the same provider table the rest of the site uses, so nothing here can claim a provider is connectable when it is not. Coverage also varies by hardware generation within a brand.
| Provider | Category | Status |
|---|---|---|
| Withings | Cloud OAuth | Live |
| Fitbit | Cloud OAuth | Live |
| Garmin | Cloud OAuth | Onboarding |
| Apple Health | Mobile SDK | Mobile SDK |
| Google Health Connect | Mobile SDK | Mobile SDK |
| Samsung Health | Mobile SDK | Mobile SDK |
Webhook events for body composition
Subscribe to the summary event for settled records, and to the series streams when you need the underlying samples. Event names below are generated from the backend enum, so they cannot drift out of date relative to the API.
Summary object
body_composition.created
Series streams
series.weight.createdseries.height.createdseries.body_mass_index.createdseries.body_fat_percentage.createdseries.body_fat_mass.createdseries.lean_body_mass.createdseries.skeletal_muscle_mass.createdseries.waist_circumference.createdFrequently asked questions
- Which connected scales work with WearLink?
- Withings on the cloud side, plus anything writing into Apple Health, Health Connect or Samsung Health — which covers most consumer smart scales indirectly. Fitbit and Garmin also report composition from their own scale hardware.
- Can I tell a manual weight entry from a scale reading?
- Yes — source attribution is preserved on each sample, so hand-typed values can be filtered or flagged rather than silently treated as measurements.
- Why does body fat percentage jump between days?
- Impedance measurement is sensitive to hydration and recent activity. The physiological change is real but it is fluid, not fat mass. Smooth over weeks.
Related data types
15 normalised data families in total — see them all or browse integrations by provider.