Body & Skin Temperature data from every wearable, in one schema
Absolute and deviation-based temperature streams — kept separate, because they are not the same signal.
4 / 6
Providers connectable today
6
Webhook events in this family
degrees Celsius; deviations in degrees relative to a personal baseline
Canonical units
What body & skin temperature looks like through one API
Temperature is the metric where the difference between an absolute reading and a deviation matters most, and where providers are least clear about which one they are giving you. Oura reports a deviation from the user's own overnight baseline. Others report an absolute skin temperature. A value of "0.3" and a value of "34.8" are both temperature, and code that treats them as one field produces nonsense.
WearLink keeps them as distinct streams — series.skin_temperature.created for absolute, series.skin_temperature_deviation.created and series.skin_temperature_trend_deviation.created for baseline-relative — and does not attempt to convert between them, because converting requires the baseline, which is provider-internal.
Skin temperature is not core body temperature. It is measured at the wrist or finger, tracks ambient conditions, and is useful primarily as a night-over-night deviation signal for illness onset and cycle tracking rather than as a clinical thermometer.
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.
Deviation and absolute are different fields, not different units
A deviation is meaningless without the baseline that produced it, and the baseline is not exposed by any provider. You cannot reconstruct an absolute temperature from a deviation, and you should not try.
Skin temperature is not core temperature
Wrist and finger measurements are influenced by ambient temperature, bedding and circulation. They are a legitimate trend signal and not a substitute for a thermometer. Products that present them as fever readings invite both user harm and regulatory attention.
Cycle-tracking use is regulated in some jurisdictions
Temperature-based cycle and fertility inference moves a product into a regulated category in several markets. The data is available; the claims you attach to it are what determine your obligations.
A baseline takes days to establish, and nothing says so
Deviation-based temperature is meaningless until the provider has collected enough nights to build a personal baseline, typically one to two weeks. During that window some providers return null and others return a deviation computed against a partial baseline that will shift underneath you as more nights land. Early readings for a new user are therefore not just noisy but systematically unstable, and retrospective values can change. If your product does illness detection, suppress it until the user has enough history rather than firing alerts on a baseline that has not settled.
Providers that supply body & skin temperature
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 |
|---|---|---|
| Oura | Cloud OAuth | Live |
| WHOOP | Cloud OAuth | Live |
| Ultrahuman | Cloud OAuth | Onboarding |
| Eight Sleep | Cloud OAuth | Onboarding |
| Apple Health | Mobile SDK | Mobile SDK |
| Samsung Health | Mobile SDK | Mobile SDK |
Webhook events for body & skin temperature
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_temperature.created
Series streams
series.body_temperature.createdseries.skin_temperature.createdseries.skin_temperature_deviation.createdseries.skin_temperature_trend_deviation.createdseries.garmin_skin_temperature.createdFrequently asked questions
- Does Oura report absolute temperature?
- Oura reports a deviation from the user's own baseline, not an absolute value. WearLink delivers it on the deviation stream so it is never mistaken for a thermometer reading.
- Can I detect illness onset from this data?
- Sustained positive deviation over consecutive nights is the signal most products use, and it does correlate with illness onset. It is a trend indicator, not a diagnosis, and should be presented as one.
- Which devices report temperature through WearLink?
- Oura, WHOOP, Ultrahuman and Eight Sleep on the cloud side, plus Apple Health and Samsung Health via SDK. Coverage depends on hardware generation.
Related data types
15 normalised data families in total — see them all or browse integrations by provider.