canonical: https://jentic.com/apis/ouraring.com/oura

# Oura Ring API

The Oura Ring API (V2) provides programmatic access to health and wellness data collected by the Oura Ring wearable device. The API exposes detailed biometric data including sleep tracking, readiness scores, activity metrics, heart rate variability (HRV), body temperature, stress levels, and daily movement. Oura users and partner applications can access this data through OAuth2 authentication with user consent. The API is designed for health apps, research studies, wellness platforms, and personal data integrations with a strong focus on webhook-based data delivery for real-time updates.

## For AI agents

Access Oura Ring health and wellness data: retrieve sleep metrics, readiness scores, activity data, heart rate, HRV, temperature, stress levels, and configure webhooks for real-time updates.

## Scope

Does not control the Oura Ring hardware, manage subscriptions, or create health records - use only for retrieving and analyzing biometric data collected by the Oura Ring with user consent.

## Capabilities

- Retrieve comprehensive sleep data including stages, efficiency, latency, and sleep score
- Access readiness scores based on sleep quality, recovery, and previous activity
- Get daily activity metrics including steps, calories, active time, and movement
- Monitor heart rate variability (HRV) and resting heart rate trends
- Track body temperature deviations and trends for illness detection
- Measure stress and resilience scores based on physiological data
- Access workout and exercise sessions with heart rate zones and intensity
- Configure webhooks for real-time data updates as users sync their ring
- Retrieve user profile information including age, weight, and biological sex

## Use cases

### Personalized Health and Wellness Apps

Health apps can integrate Oura data to provide personalized recommendations based on sleep quality, readiness, and activity. GET `/v2/usercollection/daily_sleep` retrieves sleep metrics, GET `/v2/usercollection/daily_readiness` provides readiness scores, and GET `/v2/usercollection/daily_activity` returns activity summaries. Apps can correlate this data with nutrition, meditation, or fitness plans to optimize user health outcomes.

Example prompt: GET `/v2/usercollection/daily_sleep` for the date range, GET `/v2/usercollection/daily_readiness` for recovery status, then combine data to generate personalized wellness recommendations.

### Clinical Research and Health Studies

Researchers can collect longitudinal health data from study participants wearing Oura Rings. Webhook subscriptions configured with POST `/v2/webhook/subscription` provide real-time data as participants sync, and historical data retrieval covers the full study period. The API supports sleep studies, stress research, temperature monitoring for illness prediction, and recovery optimization studies with detailed biometric data.

Example prompt: POST `/v2/webhook/subscription` to receive real-time participant data, then GET `/v2/usercollection/daily_sleep` and GET `/v2/usercollection/heartrate` for historical baseline data when participants enroll.

### Fitness and Training Optimization

Fitness platforms can optimize training loads based on readiness and recovery metrics. GET `/v2/usercollection/daily_readiness` indicates whether users should push hard or recover, GET `/v2/usercollection/workout_session` provides exercise heart rate zones, and GET `/v2/usercollection/daily_activity` tracks daily movement. Coaches can adjust workout intensity based on HRV trends and sleep quality to prevent overtraining.

Example prompt: GET `/v2/usercollection/daily_readiness` to check recovery status, then adjust the day's workout plan based on readiness score and HRV trends from GET `/v2/usercollection/heartrate.`

### Corporate Wellness Programs

Employers can integrate Oura data into wellness programs to track employee health metrics (with consent) and provide incentives for sleep, activity, and recovery. Aggregated data informs program design, while individual metrics drive personalized coaching. Webhooks enable real-time engagement like sleep improvement challenges or activity goals with immediate feedback.

Example prompt: POST `/v2/webhook/subscription` to track participant engagement, then GET `/v2/usercollection/daily_sleep` and GET `/v2/usercollection/daily_activity` to aggregate wellness metrics and award program incentives.

### AI Agent for Health Data Analysis

Let an AI agent analyze Oura health data for a user - identifying sleep patterns, detecting recovery issues, correlating temperature trends with illness, and generating health insights. Through Jentic, the agent loads only the required operations and Oura OAuth tokens are injected at execution time.

Example prompt: Use the Jentic search query 'get oura sleep data' to find GET `/v2/usercollection/daily_sleep`, load its schema, and execute with date range to analyze sleep trends and generate insights.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v2/usercollection/daily_sleep` | Retrieve daily sleep summaries and metrics |
| GET | `/v2/usercollection/daily_readiness` | Get daily readiness scores indicating recovery status |
| GET | `/v2/usercollection/daily_activity` | Access daily activity summaries with steps, calories, and movement |
| GET | `/v2/usercollection/heartrate` | Retrieve heart rate and HRV data |
| GET | `/v2/usercollection/workout_session` | Get workout sessions with heart rate zones |
| POST | `/v2/webhook/subscription` | Configure webhooks for real-time data updates |
| GET | `/v2/usercollection/personal_info` | Retrieve user profile information |

## Key resources

- **Sleep Data** — Detailed sleep metrics including stages, efficiency, latency, restfulness, and sleep score
- **Readiness Scores** — Daily readiness indicators based on sleep quality, recovery, HRV, and previous activity
- **Activity Data** — Steps, calories, active time, movement, and inactivity tracking
- **Heart Rate and HRV** — Continuous heart rate, heart rate variability, and resting heart rate trends
- **Temperature Data** — Body temperature deviations and trends for illness detection and menstrual tracking
- **Stress and Resilience** — Stress levels and recovery metrics based on physiological data
- **Workout Sessions** — Exercise sessions with heart rate zones, intensity, and duration
- **Webhooks** — Real-time notifications when users sync new data from their ring

## Why Jentic

- **Setup:** Wiring the Oura Ring API by hand means running its OAuth 2.0 authorization code flow, requesting the right scopes, targeting the api.ouraring.com host, and handling token refresh and retries yourself. Through Jentic you install once, import the Oura Ring API from the API Directory, store the OAuth credentials once, and your agent calls it.
- **Permission scoping:** Oura's data endpoints select records through query parameters rather than URL path ids, so scope by operations: limit the agent to the operations it needs, such as reading daily sleep or readiness, and leave webhook subscription creation out unless you add it. You choose the allowed set, so an analysis agent can read biometric summaries without managing subscriptions.
- **Credential handling:** Your Oura OAuth credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get daily sleep summaries' or 'read readiness scores', and Jentic returns the matching Oura Ring operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Fitbit API** — Alternative wearable health and fitness data API.
- **Open Wearables API** — An open standard for wearable health and biometric data, offering a vendor-neutral alternative to the Oura Ring API for sleep and activity tracking.

## FAQ

### What authentication does the Oura API use?

The Oura API uses OAuth2 authentication. Users must consent to share their data with your application through the OAuth flow. Access tokens are included in the Authorization header as Bearer tokens. Through Jentic, tokens are managed securely and injected at execution time.

### How many users can access my API application?

API applications are limited to 10 users before requiring approval from Oura. Once approved, there is no user limit. Register your application at cloud.ouraring.com/oauth/applications.

### What are the rate limits for the Oura API?

The API is limited to 5000 requests per 5-minute period. However, with proper webhook implementation, you are unlikely to hit rate limits. Webhooks are the recommended approach for ongoing data access.

### How do I get real-time data updates?

Configure webhooks with POST `/v2/webhook/subscription` to receive notifications approximately 30 seconds after users sync their ring with the mobile app. This is the preferred method for ongoing data access.

### What data types require users to open the Oura app?

Sleep data requires users to open the Oura app to sync. Daily activity and stress data may sync in the background. Different data types have different sync behaviors.

### Can I access historical data before a user connects?

When a user first connects via OAuth, you can retrieve their historical data using date range parameters on the relevant endpoints. After the initial historical pull, use webhooks for ongoing updates.

### Can I limit what my agent is allowed to do with the Oura Ring API?

Yes. Because you self-host Jentic One, your own rules decide which Oura Ring operations and OAuth credentials the agent can use, and the Oura endpoints select records by query parameters rather than URL path ids, so you scope access by choosing the operations you allow. You can let an analysis agent read biometric summaries such as GET `/v2/usercollection/daily_sleep` and GET `/v2/usercollection/daily_readiness` while leaving webhook subscription creation via POST `/v2/webhook/subscription` out of its allowed set. The agent can only call the operations you grant, and your credentials are injected at execution time rather than exposed to the agent.
