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.

ProviderCategoryStatus
OuraCloud OAuthLive
WHOOPCloud OAuthLive
UltrahumanCloud OAuthOnboarding
Eight SleepCloud OAuthOnboarding
Apple HealthMobile SDKMobile SDK
Samsung HealthMobile SDKMobile 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.created

Frequently 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.