Suunto API integration
OnboardingThe 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.createdConnect 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.