For Agents
Read sleep, activity, readiness, SpO2, workout, and tag data from a user's Oura Ring account through scoped OAuth or personal access tokens.
Use for: I need to pull last night's sleep score for a user, Get the daily readiness scores for the past 30 days, List all workouts logged this week, Retrieve the average SpO2 during sleep last night
Not supported: Does not handle device firmware updates, ring purchasing, or non-Oura wearables - use for reading Oura Ring health data only.
The Oura Ring API v2 returns personal health data captured by the Oura Ring, including daily activity, sleep, readiness, and SpO2 summaries, as well as detailed sleep, workout, session, and tag records. Calls return time-series records keyed by the wearer's account, so applications can build longitudinal views of recovery, training load, and sleep quality. Authentication supports both personal access tokens for single-user scripts and OAuth 2.0 for consumer-grade apps with scoped permissions per data type.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Oura Ring API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fcloud.ouraring.com%2Foura" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fcloud.ouraring.com%2Foura" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Oura Ring API.
Pull daily activity summaries with calorie burn, steps, and inactivity alerts
Read nightly sleep records including stages, latency, and sleep efficiency
Retrieve daily readiness scores and the contributing recovery signals
Fetch SpO2 averages captured during sleep on supported ring generations
List workouts and sessions logged by the wearer with start time, duration, and intensity
Read tags and enhanced_tags so apps can correlate self-reported events with biometrics
Fetch personal_info such as account email, age, biological sex, and weight
Patterns agents use Oura Ring API for, with concrete tasks.
★ Recovery and Training Load Apps
Build a coaching app that pairs Oura readiness scores with workout data to recommend whether the user should train hard, train light, or rest. /v2/usercollection/daily_readiness gives the recovery score and contributing signals, /v2/usercollection/workout provides logged sessions, and /v2/usercollection/daily_activity supplies the activity load. Combining these three endpoints is enough to drive a daily recommendation loop.
Fetch the last 7 days of /v2/usercollection/daily_readiness and /v2/usercollection/workout for a user and return a single train/rest recommendation
Sleep Quality Dashboards
Display nightly sleep stages, sleep efficiency, latency, and total sleep time for users in a sleep-tracking dashboard. /v2/usercollection/sleep returns detailed per-night records, /v2/usercollection/daily_sleep returns the rolled-up score, and /v2/usercollection/sleep_time returns recommended sleep timing. The combination supports both consumer-facing graphs and clinical research tooling.
Pull /v2/usercollection/sleep for the last 30 nights and return the median sleep efficiency and average REM minutes
Health Research Cohorts
Enrol Oura wearers in a research study and continuously pull their daily summaries plus SpO2, readiness, and tag events into a research data lake. /v2/usercollection/daily_spo2, /v2/usercollection/enhanced_tag, and the daily summaries form the core export, and OAuth scopes let participants opt in per data type instead of granting blanket access.
For each consented participant, fetch /v2/usercollection/daily_spo2 and /v2/usercollection/daily_readiness for the prior 24 hours and append to the study database
Self-Tracking Automations
Trigger lifestyle automations from Oura signals - for example, dim smart lights when the user logs a 'bedtime' tag, or block calendar events on days where readiness drops below a threshold. /v2/usercollection/tag and /v2/usercollection/enhanced_tag expose self-reported events, while /v2/usercollection/daily_readiness drives threshold-based triggers.
Poll /v2/usercollection/daily_readiness once per morning and, if score < 65, mark the user's calendar as focus-only for the day
Agent-Driven Health Summaries via Jentic
AI assistants pull a one-shot daily summary from Oura for the user - sleep score, readiness, workouts, and tags - by calling Jentic with an intent like 'get my oura sleep last night'. Jentic holds the user's bearer token in the vault and issues a scoped credential per call, which keeps the personal access token out of the agent's logs. Users get conversational health summaries without writing OAuth code.
Search Jentic for 'get latest oura sleep summary', load /v2/usercollection/daily_sleep, and return last night's score plus contributing factors
11 endpoints — the oura ring api v2 returns personal health data captured by the oura ring, including daily activity, sleep, readiness, and spo2 summaries, as well as detailed sleep, workout, session, and tag records.
METHOD
PATH
DESCRIPTION
/v2/usercollection/personal_info
Get personal account info
/v2/usercollection/daily_sleep
List daily sleep summaries
/v2/usercollection/daily_readiness
List daily readiness scores
/v2/usercollection/daily_activity
List daily activity summaries
/v2/usercollection/sleep
List detailed sleep records
/v2/usercollection/workout
List workouts
/v2/usercollection/daily_spo2
List daily SpO2 averages
/v2/usercollection/enhanced_tag
List enhanced tags
/v2/usercollection/personal_info
Get personal account info
/v2/usercollection/daily_sleep
List daily sleep summaries
/v2/usercollection/daily_readiness
List daily readiness scores
/v2/usercollection/daily_activity
List daily activity summaries
/v2/usercollection/sleep
List detailed sleep records
/v2/usercollection/workout
List workouts
/v2/usercollection/daily_spo2
List daily SpO2 averages
/v2/usercollection/enhanced_tag
List enhanced tags
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Oura Ring API by hand means managing either a personal access token or the OAuth 2.0 flow, mapping its v2 user-collection endpoints, and handling retries yourself against api.ouraring.com. Through Jentic you install once, import the Oura Ring API from the API Directory, store the token once, and your agent calls it.
Permission scoping
The Oura Ring API exposes read-only user-collection endpoints, so scope the agent to the operations it needs, such as reading daily sleep or workouts. You choose which collections are in that set, so it stays limited to the read operations you allow.
Credential isolation
Your Oura personal access token or OAuth refresh token is stored once, encrypted, by your own Jentic One instance, which injects a scoped bearer token per call. The long-lived Oura credential never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'get sleep score' or 'list workouts', and Jentic returns the matching Oura collection endpoint with its query parameter schema, so the agent calls the right endpoint without browsing Oura's API reference.
Alternatives and complements available in the Jentic catalogue.
Specific to using Oura Ring API through Jentic.
What authentication does the Oura Ring API use?
The Oura Ring API supports a personal access token (bearer) for single-user scripts and OAuth 2.0 authorization-code flow for consumer apps. OAuth scopes are granular - daily, heartrate, workout, tag, session, spo2, personal, and email - so users can grant only the data types your app needs. Through Jentic, the token is held in the vault and a scoped credential is issued per call.
Can I read detailed sleep stage data with this API?
Yes. GET /v2/usercollection/sleep returns per-night records with sleep stages (deep, REM, light, awake), latency, efficiency, and timing, while GET /v2/usercollection/daily_sleep returns the rolled-up daily sleep score and contributors.
What are the rate limits for the Oura Ring API?
Oura applies a rolling rate limit of 5,000 requests per 5 minutes per access token. Apps that need more should batch requests by date range using the start_date and end_date query parameters rather than polling per day.
How do I fetch a user's last night sleep score through Jentic?
Run pip install jentic, search for 'get latest oura sleep summary', load the daily_sleep operation, then execute with the user's date range. The call hits GET /v2/usercollection/daily_sleep and returns the score plus contributors.
Does this API expose heart rate or only the daily summaries?
The v2 collection endpoints listed in the spec cover daily summaries, sleep, workouts, sessions, SpO2, tags, and personal info. Continuous heart-rate streams are not part of the documented v2 collection endpoints in this spec - use the daily and sleep summaries for HR-derived metrics like resting heart rate.
Can I retrieve self-reported tags users add in the Oura app?
Yes. GET /v2/usercollection/tag and GET /v2/usercollection/enhanced_tag return user tags such as 'caffeine', 'alcohol', or custom events with their timestamps, so an app can correlate self-reported behaviour with biometric outcomes.
Can I limit what my agent is allowed to do with the Oura Ring API?
Yes. Because you run Jentic One yourself, your own rules decide which Oura Ring operations and credentials the agent may use. Since the API exposes only read-only user-collection endpoints, you can restrict the agent to just the reads it needs, such as GET /v2/usercollection/daily_sleep or GET /v2/usercollection/workout, and leave every other collection out of reach. The stored Oura token stays under your control and is injected per call, so the agent only ever touches the operations you allow.
GET STARTED