Skip to content

Cloud OAuth

Polar AccessLink API integration

Provider onboardingThe adapter is implemented; the production OAuth application is awaiting provider approval.OAuth application pending

Polar device illustration

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.

The API's defining quirk is its transactional model. You do not simply GET a resource: you open a transaction, read its contents, and commit it, at which point the data is considered delivered and will not be offered again. Forget to commit and you re-read forever; commit before you have durably stored the data and it is gone.

WearLink wraps the transaction lifecycle so the commit only happens after the records are persisted and normalised on our side.

Connect a Polar 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 Polar. Subscribe a webhook to receive the same objects as they land.

connect + read — polar
# 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": "polar", "redirect_uri": "https://yourapp.com/connected"}'

# → { "connect_url": "https://wearlink.io/widget/connect?token=...", "expires_in": 3600 }
# Redirect the user there; they authorise polar 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=polar&days=7"

Polar data available through WearLink

  • Training sessions
  • Heart rate
  • Steps
  • Calories
  • Sleep

Webhook events you can subscribe to

  • workout.created
  • heart_rate.created
  • steps.created
  • sleep.created

Normalised families this provider feeds: Sleep, Heart Rate Variability, Heart Rate, Workouts, VO2 Max & Fitness Metrics.

What makes the Polar API hard to integrate directly

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

Transactions are commit-once

Committing a Polar transaction is destructive from your perspective — that data will not be re-offered. Storing before committing is not optional.

No transaction means no data

If there is nothing new, Polar returns an empty transaction rather than an error. Treating that as a failure produces noisy alerting.

Sleep coverage depends on the device

Not every Polar device records sleep, and the sleep model differs between generations.

FAQ

Polar API — frequently asked questions

What is a Polar AccessLink transaction?
A server-side snapshot of pending data. You create it, read from it, then commit it to acknowledge receipt. Uncommitted transactions expire and the data is offered again; committed data is not.
Is Polar available on WearLink now?
The adapter is implemented but the OAuth application is still in onboarding. Check /providers for the live status, which reads from the runtime configuration.
Does Polar give raw R-R intervals?
Some Polar devices expose beat-to-beat data in exercise files. Availability depends on the device and the recording mode, not on WearLink.

Related

Other cloud integrations

Oura Ring API

Connectable now

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.

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.

Start with Polar — 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.