Body composition

One scan with its regions

get/body-composition/scans/{id}

Request

  • Base URL: https://bodylab.lol/api/v1
  • URL: https://bodylab.lol/api/v1/body-composition/scans/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

Opaque identifier.

Headers

X-Client-Platformstring

The native client's platform, e.g. ios. Server-side and non-native callers omit it.

X-Client-Versionstring

The native client's own semver version. With X-Client-Platform, a version below that platform's minimum is refused with CLIENT_UPGRADE_REQUIRED (426).

Response

OK

idstring required

Opaque identifier.

localDatestring date required

The day of the scan on the athlete's calendar.

scannedAtstring date-time nullable required

An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.

sourcestring required

How the scan was entered. Known values: manual, withings. Treat unknown values as "other".

providerstring nullable required

The company or facility as the report prints it, e.g. BodySpec.

scannerModelstring nullable required

The scanner as the report prints it, e.g. "GE Lunar iDXA".

totalMassKgnumber nullable required

Total mass, kilograms. Also recorded as a weigh-in, where it's given.

fatMassKgnumber nullable required

Fat mass, kilograms.

leanMassKgnumber nullable required

Lean (non-bone, non-fat) mass, kilograms.

boneMassKgnumber nullable required

Bone mineral mass, kilograms.

tissueFatPctnumber nullable required

Body fat percent of tissue, which excludes bone — the figure most reports headline.

regionFatPctnumber nullable required

Body fat percent including bone.

androidGynoidRationumber nullable required

Android fat over gynoid fat, where the report gives it.

vatMassKgnumber nullable required

Visceral adipose tissue mass, kilograms.

vatVolumeCm3number nullable required

Visceral adipose tissue volume, cm³.

bmdGCm2number nullable required

Whole-body bone mineral density, g/cm². A measurement from a whole-body scan, not a diagnostic bone density test, and not a T- or Z-score.

bmcGnumber nullable required

Bone mineral content, grams.

boneAreaCm2number nullable required

The bone area the density was measured over, cm².

bmdAgeSexPercentileinteger nullable required

The report's own comparison of the whole-body bone density with people of the same age and sex, 1-99, as printed. A comparison with a reference group, not a diagnosis.

bmdPeakSexPercentileinteger nullable required

The report's own comparison with 30-year-olds of the same sex, 1-99, as printed. A comparison with a reference group, not a diagnosis.

comparableToPreviousboolean nullable required

Whether the previous scan was done by the same company on the same scanner model, so the two read as one line. Null for the first scan.

differencesstring[] required

Why this scan isn't comparable with the previous one. Empty when it is, or when there's no previous scan.

createdAtstring date-time required

An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.

Changes

No recorded changes to this operation across all 1 revision of this API.