---
title: "SpO2 test result data"
method: GET
path: "/v3/users/biosensing/spo2"
tags: ["Elixir&trade; Biosensing"]
---

# SpO2 test result data

`GET /v3/users/biosensing/spo2`

## Request

- Base URL: `https://www.polaraccesslink.com`
- URL: `https://www.polaraccesslink.com/v3/users/biosensing/spo2`
- Auth: OAuth 2
  - Authorization code: `https://flow.polar.com/oauth2/authorization`
  - Token URL: `https://polarremote.com/v2/oauth2/token` scopes: `accesslink.read_all`
- TypeScript: <https://skmtc.dev/polar-com/apis/polar-accesslink-api/docs/v3/users/biosensing/spo2/get.ts> (a function with typed inputs; its response is checked against the schema)

Get user's SpO2 test result data for last 28 days or for given date range. Maximum date range between from and to cannot be more than 28 days.

## Query parameters

- `from` string, date
- `to` string, date

## Response `200`

Request was successful.

- Spo2TestResult[]
  - `source_device_id` string
  - `test_time` integer
  - `time_zone_offset` integer
  - `test_status` 'SPO2_TEST_PASSED' | 'SPO2_TEST_INCONCLUSIVE_TOO_LOW_QUALITY_IN_SAMPLES' | 'SPO2_TEST_INCONCLUSIVE_TOO_LOW_OVERALL_QUALITY' | 'SPO2_TEST_INCONCLUSIVE_TOO_MANY_MISSING_SAMPLES'
  - `blood_oxygen_percent` integer
  - `spo2_class` 'SPO2_CLASS_UNKNOWN' | 'SPO2_CLASS_VERY_LOW' | 'SPO2_CLASS_LOW' | 'SPO2_CLASS_NORMAL'
  - `spo2_value_deviation_from_baseline` 'DEVIATION_NO_BASELINE' | 'DEVIATION_BELOW_USUAL' | 'DEVIATION_USUAL' | 'DEVIATION_ABOVE_USUAL'
  - `spo2_quality_average_percent` number, float
  - `average_heart_rate_bpm` integer
  - `heart_rate_variability_ms` number, float
  - `spo2_hrv_deviation_from_baseline` 'DEVIATION_NO_BASELINE' | 'DEVIATION_BELOW_USUAL' | 'DEVIATION_USUAL' | 'DEVIATION_ABOVE_USUAL'
  - `altitude_meters` number, float

## Other responses

- `204`: No data found.
- `400`: Invalid request.
- `401`: Unauthorized.
- `403`: User has not accepted all mandatory consents.

## Changes

- **2026-11-06** `18ce96365320`: 1 breaking
  - the `items/average_heart_rate_bpm` response's property format changed from `uint32` to `int32` for status `200`
- **2026-02-07** `f197848bba31`: 2 info
  - api tag `Elixir&trade; Biosensing` added
  - api tag `Elixir&trade; Biosensing (Beta)` removed
- **2025-06-04** `5ef2cea678a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/polar-com/apis/polar-accesslink-api/changes/v3/users/biosensing/spo2/get.md)

---

[API](https://skmtc.dev/polar-com/apis/polar-accesslink-api.md) - [All operations](https://skmtc.dev/polar-com/apis/polar-accesslink-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polar-com/apis/polar-accesslink-api/revisions/18ce96365320?raw)
