Body Temperature API
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 event types
Canonical unit
degrees Celsius; deviations in degrees relative to a personal baseline
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
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.
Webhook events for body & skin temperature
Summary: 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
The full catalogue is in the event catalogue.
FAQ
Body & Skin Temperature — frequently asked questions
Does Oura report absolute temperature?
Can I detect illness onset from this data?
Which devices report temperature through WearLink?
Get body & skin temperature from every device your users own
Free for up to 3 connected users. No credit card. Your first API key is issued the moment you sign up.