Skip to content

Wearable data API

One API for every wearable.
Normalised. Delivered by webhook.

Connect Oura, WHOOP, Fitbit, Strava and Withings through one integration, read Apple Health and Health Connect on-device, and receive sleep, HRV, workouts and glucose in one schema. You integrate once; we keep it running.

Free for 3 connected users · No credit card · API key issued instantly

A smart ring, sports watch, fitness band and chest strap with data streams merging into one line
cloud providers connectable now
5
on-device stores via mobile SDK
3
normalised data families
15
webhook event types
109

How it works

Three calls between you and normalised wearable data

No vendor OAuth apps to babysit, no per-provider schema, no polling loops. You mint a connect link, your user authorises with the vendor, and the data arrives.

  1. 01

    Create an account, get a key

    Sign up free. Your developer account issues an API key immediately and gives you the dashboard, sandbox seed data and webhook logs.

  2. 02

    Mint a connect link for your user

    One request to /connections/session returns a hosted connect URL. Your user picks their device and authorises with the vendor directly — we hold the tokens and refresh them.

  3. 03

    Receive the same schema from every device

    Subscribe a webhook or read the summaries endpoint. Sleep from Oura and sleep from Fitbit arrive as the same object with the same units. 109 event types cover summaries and high-resolution series.

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"

Platform

Everything between the device and your product

The unglamorous parts of wearable integration — token refresh, backfill, revisions, vendor rate limits, schema drift — handled below the API surface so you can ship the product on top.

Nutrition

Photo in, macros out. Vision tuned for the plates people actually eat.

Most nutrition APIs are built around US-centric food databases and stumble on a thali, a masala dosa or a paneer butter masala. Our recognition pipeline is checked against a curated regional-dish database that covers Indian and South Asian staples alongside Western foods, and a low-confidence safety net routes ambiguous photos to human review instead of guessing.

  • Multi-item plates — thalis and combo meals are split into per-dish rows automatically.
  • Macro database — every dish carries calories, protein, carbs, fat, fibre, sugar and sodium per gram from USDA plus curated regional entries.
  • Privacy-first — EXIF GPS coordinates are stripped before the photo touches storage.
  • Fuses with wearable data — pair with the energy-balance endpoint for calories-in vs calories-out per day.
  • User correction loop — every PATCH becomes a webhook event you can learn from.
POST /api/v1/nutrition/log/image
# Upload a meal photo
curl -H "X-WearLink-API-Key: $KEY" \
  -F "file=@thali.jpg" -F "meal_type=lunch" \
  https://wearlink.io/api/v1/nutrition/log/image?user_id=$U

# 202 — recognition runs in the background
{ "log_id": "…", "status": "pending" }

# a few seconds later, GET the same log:
{
  "status": "recognized",
  "confidence_score": 0.87,
  "items": [
    { "dish_name": "biryani", "quantity_grams": 280,
      "calories_kcal": 560, "protein_g": 17, "carbs_g": 84, "fat_g": 19.6 },
    { "dish_name": "raita", "quantity_grams": 120,
      "calories_kcal": 78, "protein_g": 4, "carbs_g": 6, "fat_g": 4 }
  ]
}
A tangle of cables beside a single clean glowing line

Built in the open

We publish what works, what is pending, and what we do not have yet.

Aggregators tend to advertise catalogue sizes. We publish a provider status page reconciled against the live API, a public system status page, and comparison pages that say where Terra, ROOK or Junction is the better choice. We are early: no SOC 2 report yet, 6 providers still in vendor onboarding. You will always be able to see that here before you sign a contract.

5

live cloud providers

6

in onboarding

30s

status refresh

FAQ

Frequently asked questions

What is a wearable data API?
A wearable data API lets an application read health and fitness data from devices such as Oura, WHOOP, Fitbit and Garmin without integrating each vendor separately. WearLink handles per-provider OAuth, token refresh, backfill and schema normalisation, and delivers one consistent data model over REST and webhooks.
Which wearables can I connect today?
Oura, WHOOP, Fitbit, Strava, Withings are connectable now through cloud OAuth. Apple Health, Google Health Connect and Samsung Health are read on-device through the mobile SDKs. 6 more providers are in vendor onboarding — the live list is reconciled against the running API on the provider status page.
Is there a free plan?
Yes. The Hobby plan is free for up to 3 connected end-users with no credit card. Paid plans are flat monthly tiers rather than per-user credits, so the bill does not change when your users get more active.
How is WearLink different from Terra, ROOK or Junction?
Flat pricing instead of credits, a smaller and honestly-labelled provider catalogue, nutrition and energy balance in the same API, and a provider status page reconciled against the live system. Terra and the others have far larger device catalogues and compliance attestations we do not yet hold; the comparison pages say where each is the better choice.
Do you deliver data in real time?
As close to real time as the provider allows. Most wearables upload when the device syncs to the phone; WearLink subscribes to provider webhooks where they exist, refetches the changed window, normalises it and emits a signed webhook to your endpoint with the full record — including re-deliveries when a provider revises data after the fact.
Where is the data hosted?
On isolated single-tenant infrastructure with Asia-Pacific (Malaysia) data residency, independent of the US and EU hyperscalers; additional regions are available on Enterprise. Meal photos have EXIF metadata stripped before storage, API keys are stored only as SHA-256 hashes, and every privileged action lands in an exportable audit log.

Connect your first wearable today

Free for up to 3 connected users. No credit card. Your first API key is issued the moment you sign up.