Skip to content

Cloud OAuth

Oura Ring API integration

Connectable nowYour end-users can connect this provider today through the hosted flow.

Oura device illustration

The Oura Ring API (v2) is one of the cleaner wearable APIs to work with — the documentation is accurate and the daily-summary endpoints are stable. The complexity is not in reading it, it is in keeping it read: Oura backfills and revises data after the fact, so a sleep record you fetched this morning can legitimately change by this evening.

WearLink handles that revision cycle for you. We subscribe to Oura webhooks, refetch the affected window, re-normalise, and emit a webhook to your endpoint with the corrected record. Your application never has to reason about whether an Oura document is final.

Oura data lands in the same normalised schema as WHOOP, Garmin and Fitbit. A sleep record from an Oura Ring and a sleep record from a WHOOP band are the same object shape with the same field names and the same units, so your scoring and charting code is written once.

Connect a Oura user

Two calls. The first mints a hosted connect URL for your end-user; the second reads the normalised summaries once they have authorised with Oura. Subscribe a webhook to receive the same objects as they land.

connect + read — oura
# 1. Create a connect session for your end-user
#    The API key goes in X-WearLink-API-Key, not in Authorization.
curl -X POST https://wearlink.io/api/v1/connections/session \
  -H "X-WearLink-API-Key: $WEARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "'"$USER_ID"'", "provider": "oura", "redirect_uri": "https://yourapp.com/connected"}'

# → { "connect_url": "https://wearlink.io/widget/connect?token=...", "expires_in": 3600 }
# Redirect the user there; they authorise oura and land back on your redirect_uri.
# The token is scoped to that one user — it is safe to put in a browser URL.

# 2. Pull normalised data whenever you want
curl -H "X-WearLink-API-Key: $WEARLINK_API_KEY" \
  "https://wearlink.io/api/v1/users/$USER_ID/summaries?provider=oura&days=7"

Oura data available through WearLink

  • Sleep stages & sleep score
  • Readiness score
  • HRV (rMSSD)
  • Resting heart rate
  • SpO2
  • Body temperature deviation
  • Daily activity
  • Workouts

Webhook events you can subscribe to

  • sleep.created
  • recovery_score.created
  • series.heart_rate_variability.created
  • workout.created

Normalised families this provider feeds: Sleep, Heart Rate Variability, Heart Rate, Workouts, Steps & Daily Activity, Calories & Energy, Recovery & Readiness, Body & Skin Temperature, Respiratory Rate & SpO2.

What makes the Oura API hard to integrate directly

These are the things that turn an estimated one-week integration into a one-month one.

Webhooks are notifications, not payloads

Oura sends you an event_type and a user_id — nothing else. You still have to call the REST API to get the actual document. Teams routinely build against the webhook body, find it empty, and rewrite. WearLink does the refetch and hands you a complete record.

Documents get revised after you fetch them

Oura recalculates sleep and readiness as the ring syncs more data. If you cache the first read and never look again, your numbers silently diverge from what the user sees in the Oura app.

Personal access tokens are not OAuth

Oura's PAT is fine for a personal script and useless for a product — it authenticates one account. Anything multi-user needs the OAuth flow and an approved application.

FAQ

Oura API — frequently asked questions

Is the Oura API free to use?
Oura does not charge for API access, but you must register an application and be approved for OAuth before you can connect users other than yourself. Approval timelines vary.
Can I get Oura sleep stages through WearLink?
Yes. Oura sleep records are normalised into the standard WearLink sleep object with deep, REM, light and awake durations, plus sleep efficiency and latency, in the same shape as every other provider.
Does Oura support real-time data?
Not truly real-time. Oura data appears after the ring syncs to the phone, which is typically on wake and then periodically through the day. WearLink emits your webhook as soon as we see and fetch the new document.

Related

Other cloud integrations

WHOOP API

Connectable now

WHOOP's developer API exposes the four objects the product is built around — cycles, recovery, sleep and workouts. The data is high quality and the model is coherent, which makes WHOOP a favourite for recovery and readiness products.

Fitbit API

Connectable now

Fitbit has the largest installed base of any dedicated wearable, which makes it the provider most consumer health products need first. It is also the API with the most historical baggage — the surface has accreted since 2011 and it shows in inconsistent date handling and endpoint shapes.

Strava API

Connectable now

Strava is the best-instrumented activity API in the consumer space and the only provider in the WearLink catalogue with a true push model — an activity upload triggers a webhook within seconds, not on a poll cycle. If your product cares about workouts rather than sleep or recovery, Strava is usually the fastest path to a working demo.

Withings API

Connectable now

Withings is the connected-scale and blood-pressure provider, which makes it the one that matters most for clinical-adjacent products — weight management, hypertension programmes, GLP-1 follow-up and remote patient monitoring. Its data is measurement-shaped rather than continuous: discrete readings taken when a user steps on a scale or straps on a cuff.

Garmin API

Provider onboarding

Garmin has the broadest data surface of any provider in the catalogue — if a metric exists in consumer wearables, a Garmin device probably measures it. For endurance, military, occupational-health and research use cases it is frequently non-negotiable.

Polar AccessLink API

Provider onboarding

Polar's AccessLink API serves a smaller but committed base — endurance athletes, coaching platforms and sports-science teams. Heart rate quality is the reason people choose it; Polar's chest straps remain a reference standard.

Start with Oura — free for up to 3 users

No credit card. Your API key is issued at sign-up, and the hosted connect flow works from the first request.