Ultrahuman Ring API integration

Onboarding

The adapter is implemented; the OAuth application is awaiting provider approval.

Ultrahuman is the India-headquartered smart-ring maker and the provider most relevant to South Asian consumer health products, where its installed base is meaningful in a way it is not elsewhere.

Access is through a partner programme rather than open self-service registration, so the commercial conversation precedes the technical one. The data model is close to Oura's — sleep, recovery, HRV and temperature from a ring form factor.

For products serving Indian users, Ultrahuman plus Apple Health and Google Health Connect covers a large share of the actual device population, which is a different mix than a US-focused product would optimise for.

How the Ultrahuman integration works

Authentication
Partner API credentials
Sync model
Pull-based partner API.
API base
https://partner.ultrahuman.com/api/partners/v1
Integration type
Cloud OAuth

Ultrahuman data available through WearLink

Everything below arrives in the shared normalised schema. The same field names and units apply whether the record came from Ultrahuman or from any other provider, so your scoring, charting and storage code is written once.

  • Sleep
  • HRV
  • Resting heart rate
  • Steps
  • Skin temperature
  • SpO2
  • Recovery & movement index

Webhook events you can subscribe to

sleep.createdseries.heart_rate_variability.createdsteps.createdbody_temperature.created

Connect a Ultrahuman user

Two calls: create a connect session for your end user, then read their normalised data. You never handle Ultrahuman OAuth credentials, token refresh or webhook registration.

# 1. Create a connect session for your end-user
curl -X POST https://wearlink.io/api/v1/connections/session \
  -H "Authorization: Bearer $WEARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "'"$USER_ID"'", "provider": "ultrahuman"}'

# → { "connect_url": "https://wearlink.io/widget/connect?token=..." }
# Redirect the user there; they authorise ultrahuman and land back on your redirect_uri.

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

What makes the Ultrahuman API hard to integrate directly

These are the things that turn an estimated one-week integration into a one-month one. They are worth knowing whether you use WearLink or build it yourself.

Partner access, not open registration

You cannot self-serve credentials the way you can with Fitbit or Strava. Expect a commercial conversation first.

Younger API surface

The partner API is newer than Oura's or Fitbit's and has changed more often. Pin your expectations and monitor for shape changes.

Ring sync latency

As with all rings, data arrives when the ring syncs to the phone app, not continuously.

Ultrahuman API — frequently asked questions

How do I get Ultrahuman API access?
Through Ultrahuman's partner programme. It is not open self-service registration, so the timeline depends on their commercial review.
Is Ultrahuman relevant outside India?
It sells internationally, but its installed base is concentrated in India and the Gulf. For an India-focused product it is often the single most important ring provider.
How does Ultrahuman compare to Oura in the data model?
Very similar — sleep staging, HRV, resting heart rate, temperature and a composite recovery metric. Both normalise into the same WearLink schema, so switching or supporting both costs you nothing in application code.

Other integrations

Start with Ultrahuman — free for up to 3 users

No credit card. Create an account, add your provider credentials once, and your users connect through a hosted widget or our mobile SDK.