> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Oura

> Oura Ring v2 API for reading a user's biometric and wellness data — sleep stages, daily readiness, activity, heart rate, SpO2, stress, resilience, workouts, and sessions.

Oura Ring v2 API for reading a user's biometric and wellness data — sleep stages, daily readiness, activity, heart rate, SpO2, stress, resilience, workouts, and sessions. Best for agents that personalize coaching, recovery, or health context on top of the user's own ring data. Each user connects via Oura OAuth (cloud.ouraring.com); sandbox endpoints under /v2/sandbox/usercollection/ return canned data for development without a ring.

14 example endpoints available through Lava's AI Gateway. See the [Oura API docs](https://cloud.ouraring.com/v2/docs) for full documentation.

<Warning>This provider requires your own credentials — connect your API key or OAuth account before use.</Warning>

<Info>This is a **catch-all provider** — any valid URL under `https://api.ouraring.com` is supported. Oura Ring v2 API. Base: [https://api.ouraring.com](https://api.ouraring.com). Auth: Bearer token (the user's Oura OAuth access token, obtained by connecting at cloud.ouraring.com). All reads are GET under /v2/usercollection/RESOURCE; single docs at /v2/usercollection/RESOURCE/DOCUMENT\_ID. Daily/aggregate resources (daily\_sleep, daily\_activity, daily\_readiness, daily\_stress, daily\_spo2, daily\_resilience, daily\_cardiovascular\_age, vO2\_max, sleep, sleep\_time, workout, session, tag, enhanced\_tag, rest\_mode\_period, ring\_configuration) accept start\_date and end\_date as YYYY-MM-DD; high-frequency timeseries (heartrate, ring\_battery\_level, interbeat\_interval) accept start\_datetime and end\_datetime as ISO-8601. Pagination: pass next\_token from the previous response; envelope wraps an array of data plus a next\_token field. Use the fields query param to trim payloads. Sandbox copies at /v2/sandbox/usercollection/ return canned data for testing. Rate limit: 5000 requests per 5-minute window per token. Errors are RFC7807-shaped with status, title, and detail fields. See [https://cloud.ouraring.com/v2/docs](https://cloud.ouraring.com/v2/docs) for full reference. The endpoints below are curated examples.</Info>

## Endpoints

### Get the authenticated user's profile (id, age, weight, height, biological\_sex, email). Use as an auth check after the user connects via Oura OAuth.

**GET** `https://api.ouraring.com/v2/usercollection/personal_info` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/personal_info', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fpersonal_info" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily sleep summary documents (overall sleep score and contributors). Filter with start\_date and end\_date as YYYY-MM-DD; paginate with next\_token.

**GET** `https://api.ouraring.com/v2/usercollection/daily_sleep?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_sleep?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_sleep%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List detailed sleep period documents (per sleep period: stages, HRV, latency, efficiency, low/high heart rate). Filter with start\_date and end\_date as YYYY-MM-DD.

**GET** `https://api.ouraring.com/v2/usercollection/sleep?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/sleep?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fsleep%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily readiness scores with contributors (resting heart rate, HRV balance, recovery index, body temperature, etc.). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/daily_readiness?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_readiness?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_readiness%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily activity summaries (steps, calories, METs, inactive/low/medium/high activity minutes, activity score). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/daily_activity?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_activity?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_activity%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily stress summaries (stress\_high, recovery\_high, day\_summary). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/daily_stress?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_stress?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_stress%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily SpO2 (blood oxygen) summaries derived from sleep. Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/daily_spo2?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_spo2?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_spo2%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List daily resilience scores (Oura's longer-term stress-load metric). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/daily_resilience?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/daily_resilience?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fdaily_resilience%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List heart rate timeseries samples (BPM with ISO-8601 timestamp and source label). Use start\_datetime and end\_datetime (ISO-8601). Pass latest=true for the most recent sample only.

**GET** `https://api.ouraring.com/v2/usercollection/heartrate?start_datetime=2026-04-29T00:00:00Z&end_datetime=2026-04-30T00:00:00Z` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/heartrate?start_datetime=2026-04-29T00:00:00Z&end_datetime=2026-04-30T00:00:00Z', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fheartrate%3Fstart_datetime%3D2026-04-29T00%3A00%3A00Z%26end_datetime%3D2026-04-30T00%3A00%3A00Z" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List workout documents (activity type, intensity, calories, distance, start/end times). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/workout?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/workout?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fworkout%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List session documents (meditation, breathing, relaxation sessions logged in the Oura app). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/session?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/session?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fsession%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List recommended sleep time windows (Oura's suggested bedtime). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/sleep_time?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/sleep_time?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fsleep_time%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List VO2 max estimates (cardiorespiratory fitness). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/vO2_max?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/vO2_max?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2FvO2_max%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List user-applied tags from the Oura app (e.g., caffeine, alcohol, late meal). Use the enhanced\_tag collection (the legacy /tag endpoint is deprecated). Filter with start\_date and end\_date.

**GET** `https://api.ouraring.com/v2/usercollection/enhanced_tag?start_date=2026-04-01&end_date=2026-04-30` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.ouraring.com/v2/usercollection/enhanced_tag?start_date=2026-04-01&end_date=2026-04-30', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.ouraring.com%2Fv2%2Fusercollection%2Fenhanced_tag%3Fstart_date%3D2026-04-01%26end_date%3D2026-04-30" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
