The Google Health API provides data types that track a user's wrist skin
temperature: continuous raw multi-sensor telemetry
(skin-temperature-sensors) and daily baseline variation rollups
(daily-sleep-temperature-derivations).
Wrist skin temperature measures peripheral thermal dynamics at the skin surface, capturing circadian rhythm patterns, sleep stage transitions, and recovery trends.
Understand the differences between these data types to determine which metrics suit your application.
Supported data types
The API supports the following data types for measuring skin temperature:
| Data type | Available operations |
Scope |
|---|---|---|
|
Skin Temperature Sensors
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
Record type: Sample
Compatible devices |
list | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
For clinical or diagnostic internal organ temperature (such as thermometer
measurements), use
core-body-temperature.
Read-only requirements
Physiological skin temperature records are populated exclusively by device synchronization and are read-only through the REST API.
The following sections provide technical details and REST representation formats for skin temperature data.
Sensor hardware architectures
Understanding wearable sensor hardware is essential for interpreting temperature data in the Google Health API.
Internal device temperature
Single-sensor devices (such as Pixel Watch 3 and Fitbit Air) feature a single internal temperature sensor positioned near the top of the device casing. This sensor measures Internal Device Temperature (IDT).
Key characteristics of single-sensor devices:
- Measure internal hardware and ambient temperature conditions rather than direct skin contact.
- Produce uncompensated raw readings reflecting internal device conditions.
- Don't support the
skin-temperature-sensorsendpoint. - Support
daily-sleep-temperature-derivationsusing device-level thermal modeling algorithms.
Ambient Compensated Skin Temperature
Dual-sensor devices (Pixel Watch 4 and Pixel Watch 5) feature two temperature sensors:
- Top sensor (IDT): Measures internal device and ambient temperature.
- Bottom sensor (Skin contact): Positions directly against the user's wrist skin.
On dual-sensor devices, the bottom sensor measures skin contact temperature
to provide Ambient Compensated Skin Temperature (ACST). Only Pixel Watch 4 and
Pixel Watch 5 feature this dual-sensor architecture and support the
skin-temperature-sensors endpoint. No other devices are supported.
Device compatibility
The availability of skin temperature data types depends on the device's sensor hardware:
skin-temperature-sensors: v4beta Continuous minutely sensor readings capturing paired internal device temperature and on-skin contact temperature from dual-sensor devices. Supported only on dual-sensor devices (Pixel Watch 4 and Pixel Watch 5). Not supported on single-sensor or legacy hardware.daily-sleep-temperature-derivations: Daily rollups representing nocturnal temperature variations relative to the user's personal baseline. This data type replaces the legacy Fitbit Web API skin temperature endpoint, which reported nightly sleep summaries rather than continuous sensor telemetry. Supported across all Pixel Watch and Fitbit devices equipped with temperature sensors (including Pixel Watch 2 and newer, Fitbit Sense series, Versa series, Charge 4 and newer, Inspire series, Luxe, and Fitbit Air).
For the complete list of supported data types by device, see the Device compatibility guide.
Interpreting temperature values and deltas
Wrist skin temperature measurements reflect peripheral surface dynamics rather than core body temperature. Because skin temperature varies based on environmental conditions and individual baseline physiology, don't evaluate raw Celsius values against clinical thresholds or use them for fever detection.
Working with deltas
Calculate and display relative deltas against baseline rather than raw absolute values.
For daily sleep derivations, calculate the nightly deviation from baseline:
delta = nightlyTemperatureCelsius - baselineTemperatureCelsius
Relative deltas provide consistent, physiologically meaningful insights across sleep sessions. For example, a user whose nightly temperature is 34.07°C with a baseline of 33.95°C has a delta of +0.12°C relative to baseline.
Skin Temperature Sensors
v4beta
The skin-temperature-sensors data type provides continuous minutely raw
sensor readings from dual-sensor hardware (Pixel Watch 4 and Pixel Watch 5).
Each minute contains paired measurements distinguishing
SKIN_TEMPERATURE_SENSOR readings from INTERNAL_DEVICE_TEMPERATURE_SENSOR
readings. When working with granular sensor telemetry from
skin-temperature-sensors, developers must apply their own algorithms to filter
noise, compensate for ambient conditions, and derive actionable metrics.
REST representation example
To query raw sensor telemetry, send a GET request to the dataPoints
endpoint:
Request
GET https://health.googleapis.com/v4beta/users/me/dataTypes/skin-temperature-sensors/dataPoints?startTime=2026-07-20T00:00:00Z&endTime=2026-07-20T00:02:00Z Authorization: Bearer access-token Accept: application/json
Response
{
"dataPoints": [
{
"dataSource": {
"recordingMethod": "PASSIVELY_MEASURED",
"device": {
"displayName": "Google Pixel Watch 4 (45mm)"
},
"platform": "FITBIT"
},
"skinTemperatureSensors": {
"sampleTime": {
"physicalTime": "2026-07-20T00:00:00Z",
"utcOffset": "3600s",
"civilTime": {
"date": {
"year": 2026,
"month": 7,
"day": 20
},
"time": {
"hours": 1,
"minutes": 0
}
}
},
"temperatureCelsius": 34.95,
"metadata": {
"measurementLocation": "WRIST",
"sensorType": "SKIN_TEMPERATURE_SENSOR"
}
}
},
{
"dataSource": {
"recordingMethod": "PASSIVELY_MEASURED",
"device": {
"displayName": "Google Pixel Watch 4 (45mm)"
},
"platform": "FITBIT"
},
"skinTemperatureSensors": {
"sampleTime": {
"physicalTime": "2026-07-20T00:00:00Z",
"utcOffset": "3600s",
"civilTime": {
"date": {
"year": 2026,
"month": 7,
"day": 20
},
"time": {
"hours": 1,
"minutes": 0
}
}
},
"temperatureCelsius": 31.8,
"metadata": {
"measurementLocation": "WRIST",
"sensorType": "INTERNAL_DEVICE_TEMPERATURE_SENSOR"
}
}
}
]
}Daily Sleep Temperature Derivations
The daily-sleep-temperature-derivations data type reports nightly summary
statistics, including the user's average nightly temperature and their personal
baseline calculated across previous sleep sessions. This data type replaces the
legacy Fitbit Web API skin temperature endpoint, returning daily summary
variations rather than continuous intraday telemetry.
Daily sleep temperature derivations are calculated using specialized thermal algorithms and sleep session segmentation, and are not arithmetic averages of raw sensor readings.
REST representation example
To query daily sleep temperature derivations, send a GET request to the
dataPoints endpoint:
Request
GET https://health.googleapis.com/v4/users/me/dataTypes/daily-sleep-temperature-derivations/dataPoints?startTime=2026-07-20T00:00:00Z&endTime=2026-07-21T00:00:00Z Authorization: Bearer access-token Accept: application/json
Response
{
"dataPoints": [
{
"dataSource": {
"recordingMethod": "DERIVED",
"device": {
"displayName": "Google Pixel Watch 4 (45mm)"
},
"platform": "FITBIT"
},
"dailySleepTemperatureDerivations": {
"date": {
"year": 2026,
"month": 7,
"day": 20
},
"nightlyTemperatureCelsius": 34.12,
"baselineTemperatureCelsius": 33.95,
"relativeNightlyStddev30dCelsius": 0.23
}
}
]
}Guidelines
When integrating skin temperature data into your application, use these guidelines:
- Visualize user temperature changes as relative deviations from personal baseline rather than raw Celsius values.
- Verify that the user is recording with a supported dual-sensor device (Pixel
Watch 4 or Pixel Watch 5) when querying
skin-temperature-sensors, or handle empty data responses gracefully. To check a user's paired device model, see the Find device information example in the Endpoints guide. - Combine nightly temperature variations with
sleepsession data to provide contextual recovery insights. - Apply custom analytical algorithms when working with granular
skin-temperature-sensorstelemetry, and avoid calculating averages to reproduce nightly baselines because daily derivations rely on specialized thermal models and sleep tracking. - Clearly explain why temperature metrics are collected and why the
health_metrics_and_measurementsscope is required before prompting users for authorization.