oura-ring (Python)
Python · PyPI: oura-ring · latest 1.0.1 (2026-06-22) · registry read 2026-10-03
What it wraps
The Oura API v2. The README's contents cover personal info, daily sleep, SpO2, stress, activity, readiness, resilience, cardiovascular age, VO2 max, heart rate, ring battery and configuration, sessions, tags and workouts.
“Python client for the Oura API v2 with OAuth2 support.”
Source: README
Named in the registry description: Oura API.
Install
Registry and repository facts
Read from PyPI and the repository by a script, not typed by hand. Where the metadata does not state something, the row says so. Dates are shown as dates, with the gap to our read, rather than as a verdict on whether the project is alive.
- Registry
- PyPI: oura-ring
- Latest version
- 1.0.1, published 2026-06-22103 days before our 2026-10-03 read
- First published
- 2022-09-02 · 5 versions published
- Licence
- MITPyPI license field
- Platforms
- not stated in registry metadata
- Requires
- python >=3.12PyPI requires_python
- Status classifier
- Development Status :: 5 - Production/Stable
- Repository
- hedgertronic/oura-ring
- Last commit, default branch
- 2026-07-0788 days before our 2026-10-03 read · read by git on 2026-10-03
- GitHub signals
- 92 stars · 2 open issues and PRs · not archived · last push to any branch 2026-07-07GitHub API, read 2026-10-03
Registry description: “Python client for the Oura API v2 with OAuth2 support.”
What the README warns about
Each item is the project’s own statement, checked on 2026-10-03, quoted where the wording matters.
The token change, in the README's words.
“Personal access tokens were deprecated by Oura in December 2025 — new ones can no longer be created, though previously-issued tokens may still work. New integrations must use OAuth2.”
Source: README
The OAuth2 flow it wraps:
OuraAuth(client_id, client_secret), thenauthorize_url(redirect_uri=…, state=…),exchange_code(code, redirect_uri=…)andrefresh_token(…), with the access token passed toOuraClient.Source: README
The API underneath
A wrapper inherits every rule of the API it calls. These pages cover that layer directly.
Other Python packages on this list
Python libraries for fitness APIs: every package side by side, and how to choose →
- garminconnect0.3.17 · 2026-09-29Garmin Connect's web services, signed in as the user with their own credentials.
- garth0.8.0 · 2026-03-28Garmin's SSO login and the Garmin Connect API, through the mobile auth approach the README says Garmin's change broke.
- stravalib2.6.0 · 2026-08-27The Strava V3 REST API, through a
stravalib.client.Clientclass, per the README. - oura1.3.0 · 2024-04-23The Oura API, with v2 clients under
oura.v2(OuraClientV2,OuraClientDataFrameV2) whose methods are named after the URL paths, per the README. - fitbit0.3.1 · 2019-05-24The legacy Fitbit Web API, using requests-oauthlib and python-dateutil according to the README's requirements.
- withings-api2.4.0 · 2022-02-08The Withings Health API over OAuth 2.0, through
WithingsAuthandWithingsApi, per the README.
Questions
- Does oura-ring still work with an Oura personal access token?
- Only one that was already issued. The README says Oura deprecated personal access tokens in December 2025 so new ones cannot be created, that previously issued tokens may still work, and that OuraClient accepts either an OAuth2 access token or a legacy token. New integrations must use OAuth2.
- How do I get an OAuth2 token with oura-ring?
- Create an application in Oura's developer portal for a client ID and secret, then follow the README: build OuraAuth, send the user to authorize_url with your redirect URI and a state value, exchange the returned code with exchange_code, and pass the access token to OuraClient. refresh_token renews it.
Registry facts read by scripts/fetch-libraries.mjs on 2026-10-03 and refreshed weekly; the latest release was published 103 days before our 2026-10-03 read. README quotes identify the project’s own statements; the selection, grouping and comparisons are AIFitnessAPI’s. For tagged releases of the main bridges, see the SDK release tracker.