Skip to content
Back to skills

Oura

ASecurity

Read Oura Ring health data: sleep scores, sleep sessions, readiness, workouts, and SpO2. Trigger phrases: oura, sleep score, readiness, my sleep.

  • 18 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
securitygobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill oura --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Oura?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Oura
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-oura/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-oura)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "oura"
description: "Read Oura Ring health data: sleep scores, sleep sessions, readiness, workouts, and SpO2. Trigger phrases: oura, sleep score, readiness, my sleep."
metadata: { "includeInPrompt": true }
tagline: "Read Oura Ring health data: sleep scores, sleep sessions, readiness, workouts, and SpO2."
catalog_auth: "OAuth 2.0 via the secure credential flow"
catalog_hosts: ["api.ouraring.com"]
---

# Oura

## Purpose
Read the user's Oura Ring health data: daily sleep scores, detailed sleep sessions, daily readiness, workouts, and SpO2. Use when the user mentions Oura, their sleep, or readiness.

## Tooling
All commands go through `bin/oura.py`:

```bash
bin/oura.py auth                                              # verify the OAuth token
bin/oura.py daily-readiness --start-date 2026-09-10          # readiness scores
bin/oura.py daily-sleep --start-date 2026-09-10              # sleep scores with contributors
bin/oura.py sleep --start-date 2026-09-10                    # detailed sleep sessions
bin/oura.py workouts --start-date 2026-09-10 --limit 5       # workouts
bin/oura.py daily-spo2 --start-date 2026-09-10               # blood oxygen summaries
```

Dates are `YYYY-MM-DD`; `--end-date` defaults to today, `--limit` defaults to 10.

## Auth
- Provider id: `oura` (credential is collected as `custom.oura`)
- Collection: OAuth 2.0 via the secure credential flow (`credentials.request_api_access`); register an app at developer.ouraring.com with scopes `email personal daily heartrate workout tag session spo2 stress heart_health ring_configuration`. Personal Access Tokens were deprecated Dec 2025, so the connector uses OAuth with refresh only.
- Allowed hosts: `api.ouraring.com`
- Status check: `bin/oura.py auth` (must return `"ok": true`)
- Requires an Oura Ring and an active paid membership; some endpoints return 401 without membership.

## Operating Rules
1. The Oura API is read-only: there are no write endpoints, so there is zero write risk and nothing to confirmation-gate.
2. Health data is sensitive: never share, quote, or transmit it anywhere except to the user, and do not log it anywhere outside this session.
3. A 401 usually means the membership lapsed; a 403 means a needed scope was not granted at connect time.
4. Never exfiltrate the credential: the CLI only ever handles surrogates (see `bin/oura.py`). Do not print, log, or transmit the token value.

## Files
- SKILL.md
- bin/oura.py

## Maturity
🧪 Draft: written from Oura's public API v2 docs; not yet live-tested end-to-end.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…