What skin_temperature_sleep measures
skin_temperature_sleep is the average wrist skin temperature during the night, in degrees Celsius, as measured by a wearable while the user sleeps.
| Field | skin_temperature_sleep |
|---|---|
| Unit | Celsius |
| Reported | Daily average, one value per night |
| Window | Midnight to midnight, profile local time |
| Wearable required | Yes |
| API | GET /api/v1/profile/biomarker/{externalId}?categories=vitals&types=skin_temperature_sleep plus a date range |
| Webhook | BiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id. |
Data sources
| Platform | Record | Notes |
|---|---|---|
| iOS, HealthKit | appleSleepingWristTemperature | Apple Watch Series 8, Ultra, and later, worn during sleep with Sleep Focus on. Apple needs about five nights before it starts writing values. |
| Android, Health Connect | Not read | |
| Direct integrations | Provider-dependent | Oura and WHOOP report a nightly deviation from baseline rather than an absolute temperature |
| Phone only | None |
How Sahha calculates skin_temperature_sleep
- Pick one source for the day within the temperature category, which also covers basal body temperature. One source wins per day.
- Average that source’s readings with an end time inside the local day. Apple writes one value per night, dated by the morning.
Absence means no reading that night.
Interpreting the value
Baseline deviation is the whole product. A rise of a few tenths of a degree against the user’s own 14-night average is how vendors flag oncoming illness [1], and the same shift tracks the menstrual cycle [2]. The absolute value should not be shown as a body temperature.
It is not a fever detector. Skin temperature responds to the room and the bedding as much as to the body. A sustained rise across several nights is a prompt, not a reading.
Related scores and insights
Sleeping skin temperature is not a score factor and has no trend or comparison insight.
Use cases
A deviation chart. Keep a 14-night rolling average and plot each night as the difference from it, in tenths of a degree, with the absolute value hidden. This is the presentation every ring and watch app has converged on.
GET /api/v1/profile/biomarker/{externalId}?categories=vitals&types=skin_temperature_sleep&startDateTime=2026-08-19&endDateTime=2026-09-02A cycle overlay. For users who track cycles, the nightly deviation shows the same post-ovulation rise as basal body temperature, without the morning measurement.
Limitations
- Apple Watch only in practice.
- A night that spans midnight is dated by its morning for Apple’s single nightly value.
- Room and bedding move it. Do not alert on one night.
- Absence is not zero.
Related guides
- Basal body temperature for the measured core reading
- Sleep duration for the nights this is measured over
- Data dictionary in the developer docs
References
- Smarr BL, Aschbacher K, Fisher SM, et al. Feasibility of continuous fever monitoring using wearable devices. Scientific Reports. 2020;10:21640. https://doi.org/10.1038/s41598-020-78355-6
- Maijala A, Kinnunen H, Koskimäki H, Jämsä T, Kangas M. Nocturnal finger skin temperature in menstrual cycle tracking: ambulatory pilot study using a wearable Oura ring. BMC Women’s Health. 2019;19:150. https://doi.org/10.1186/s12905-019-0844-9