---
title: Oura Integration
subtitle: Connect Oura Ring data to Sahha via the Oura Cloud API.
---


## Overview

Connect **Oura Ring** data to Sahha via the Oura Cloud API. You register an app with Oura, add it to Sahha as an integration, then connect end users. The connection flow itself is shared across providers — see [Integrations](/docs/connect/integrations) for the concepts and [Connect a user](/docs/connect/integrations#connect-a-user) for the full round-trip.

{% providers view="detail" slug="oura" /%}

---

## Before you start

{% callout type="info" %}
Examples use the **sandbox** environment. Replace `sandbox-api.sahha.ai` with `api.sahha.ai` for production — see [API Environments](/docs/connect/api#environments).
{% /callout %}

Oura uses self sign-up — no approval step is required to create an app.

---

## 1. Register your Oura app

This gives Sahha the OAuth credentials it uses to request data on your users' behalf.

1. Sign in to the [Oura Cloud Developer Portal](https://cloud.ouraring.com/oauth/applications).
2. Create a new **OAuth2 Application**.
3. Configure the application's name, description, and logo — these are shown to end users during the connection flow.
4. Add the Sahha OAuth redirect URL to the allowed redirect URIs:

   ```http
   https://sandbox-api.sahha.ai/api/v1/integration/oauth/oura/callback
   ```

5. Select the scopes you want Sahha to ingest. Available scopes: `email`, `personal`, `daily`, `heartrate`, `workout`, `tag`, `session`, `spo2`, `ring_configuration`, `stress`, `heart_health`.
6. Save, then copy your **Client ID** and **Client Secret** for the next step.

---

## 2. Create the integration in Sahha

1. Go to the [Sahha Dashboard](https://app.sahha.ai/dashboard).
2. Navigate to **Integrations → Integrations** in the sidebar.
3. Click **Add integration** and select **Oura** from the Provider dropdown.
4. Paste in your Oura **Client ID** and **Client Secret**.
5. In the **Scopes** dropdown, select the same scopes you enabled on your Oura app in step 1 — these are what Sahha requests when a user connects.
6. Add one or more entries to the **Redirect URL Whitelist** — the URLs in your own app that Sahha may redirect users back to after OAuth.
7. Save the integration.

{% callout title="Match your scopes" %}
By default **all** provider-supported scopes are selected — not just the ones enabled on your app. Deselect any scopes your Oura app doesn't have access to, otherwise the OAuth flow will fail.
{% /callout %}

{% callout title="About the Redirect URL Whitelist" %}
When you start the OAuth flow you may optionally pass a `redirectUrl` — it must match a whitelisted entry. If omitted, Sahha uses the first URL in the whitelist.
{% /callout %}

---

## 3. Connect a user

Start the OAuth flow with the user's profile token. Oura's slug is `oura`:

```shell-session title="Start Oura connection"
curl -X GET "https://sandbox-api.sahha.ai/api/v1/integration/oauth/oura/authorize?redirectUrl=https://yourapp.com/integrations/callback" \
  -H "Authorization: profile {your-profile-token}"
```

```json title="Response"
{
	"authorizationUrl": "https://cloud.ouraring.com/oauth/authorize?..."
}
```

Redirect the user to `authorizationUrl` to complete authorization. For the full round-trip, prerequisites, language-specific snippets, and the SDK option, see [Connect a user](/docs/connect/integrations#connect-a-user).

---

## Oura-specific notes

- **Scopes must match.** A scope selected in Sahha but not enabled on your Oura app will fail the OAuth flow (see step 2).
- **Subscriptions are automatic.** Sahha manages Oura webhook subscriptions for you — there's no separate webhook step to configure.

For data freshness, the connection lifecycle, and disconnecting a user, see [Managing connections](/docs/connect/integrations#managing-connections) on the Integrations page.

---

## Support

Need help? Contact [support@sahha.ai](mailto:support@sahha.ai) or join the [Slack Community](https://join.slack.com/t/sahhacommunity/shared_invite/zt-1w0fmfbvk-qUwQ83tJgXyjT9XSxJvKIw).
