Suunto API integration

Onboarding

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

Suunto is an outdoor and dive-focused brand whose cloud API centres on workout files. For mountaineering, trail and diving products it covers device categories nobody else in this list reaches.

The API is straightforward OAuth 2.0, and the main integration cost is in the workout file formats — Suunto exposes rich multi-sport sessions whose structure varies by activity type. Normalising a dive log and a trail run into one workout object requires decisions about which fields are universal and which are activity-specific.

WearLink keeps the universal fields in the shared workout schema and preserves activity-specific detail in the raw payload so nothing is lost.

How the Suunto integration works

Authentication
OAuth 2.0 authorisation code
Sync model
Pull + push. Webhooks are notify-only.
API base
https://cloudapi.suunto.com
Integration type
Cloud OAuth

Suunto data available through WearLink

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

  • Workouts
  • Heart rate
  • HRV
  • Steps
  • SpO2
  • Stress & recovery
  • Sleep

Webhook events you can subscribe to

workout.createdheart_rate.createdsleep.createdrecovery_score.created

Connect a Suunto user

Two calls: create a connect session for your end user, then read their normalised data. You never handle Suunto 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": "suunto"}'

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

What makes the Suunto 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.

Workout shape varies by sport

A dive, a ski tour and a run do not carry the same fields. Code that assumes a fixed workout schema breaks on the first multisport user.

Smaller ecosystem, thinner docs

Fewer developers means fewer worked examples and slower answers when something is ambiguous.

Device sync is the real latency

Data reaches the cloud when the watch syncs to the phone, which for a multi-day expedition user might be days after the activity.

Suunto API — frequently asked questions

Does Suunto support dive data?
Suunto's cloud carries dive logs for dive-capable devices. WearLink normalises the common workout fields and preserves the activity-specific detail alongside them.
Is Suunto live on WearLink?
The adapter is implemented; the OAuth application is in onboarding. /providers reflects the runtime state.
How current is Suunto data?
It depends entirely on when the user last synced their watch. Expect gaps for users who are off-grid.

Other integrations

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