Skip to main content
Need help with your Suunto integration? Pop into our Discord if you have questions or want to discover how Open Wearables can solve your problems.

Overview

Suunto provides access to workout, sleep, recovery, and 24/7 activity data from Suunto watches through the Suunto Cloud API. The integration uses OAuth 2.0 for authentication and supports both pull-based syncing (historical data over REST) and real-time webhooks (Suunto pushes events as they happen). Access requires membership in the Suunto Developer Program - you must apply to become a Suunto partner and subscribe to the Developer API product. Every request also carries a subscription key (Ocp-Apim-Subscription-Key) alongside the OAuth bearer token.

Supported data types

Data delivery

Webhook payloads are signed with HMAC-SHA256 over the raw request body, delivered in the X-HMAC-SHA256-Signature header. Open Wearables verifies this against SUUNTO_WEBHOOK_SECRET (which defaults to your app SECRET_KEY). See the configuration step below.

What you need by the end

  • Partner approval: an approved application to the Suunto Developer Program
  • Subscription key: from your Developer API subscription
  • App credentials: Client ID + Client Secret from your Suunto profile’s OAuth settings
  • Redirect URI registered in your Suunto OAuth settings

Prerequisites

  • A company or organization - Suunto Cloud API access is granted only to companies/organizations building tools, apps, or services (commercial or non-commercial). Suunto does not grant Cloud API access for personal use
  • A Suunto account (the same one used with the Suunto app), for testing with real device data
This company requirement applies to the Suunto Cloud API used here (cloudapi.suunto.com). It is separate from on-watch SuuntoPlus apps, which any developer can build without a partner relationship.

Application walkthrough

1

Apply to the Suunto Developer Program

Suunto Cloud API access is gated behind partner approval and is granted only to companies/organizations - not for personal use. Submit an application from the Suunto Partners page using the Apply now form, describing your organization and intended integration. Select Suunto Cloud API so you are issued the API agreement to sign.
Approval is handled by Suunto and is not instant - expect a response within about two weeks. You cannot create OAuth credentials until your partner application is accepted, the API agreement is signed, and you have access to the Suunto API Zone.
2

Subscribe to the Developer API product

Sign in to the Suunto API Zone and open the Developer API product. Subscribe to it (you can name the subscription, e.g. “Open Wearables”).Once the subscription is Active, open your Profile → Your subscriptions to retrieve your subscription key. Both a primary and a secondary key are provided - either works, and the secondary key lets you rotate without downtime.
The Developer API tier allows 10 calls/minute up to a maximum of 200 calls/week. Plan your sync volume accordingly and request a higher tier from Suunto if you need more.
3

Configure OAuth settings

In your Suunto Profile, fill in the OAuth configuration fields:
  • App name: The name shown to users on the consent screen (e.g. “Open Wearables”)
  • Client secret: A secret value you set for your app
  • Redirect URI: Your OAuth callback URL. Open Wearables derives this from your API_BASE_URL as {API_BASE_URL}/api/v1/oauth/suunto/callback, so register that exact URL here. For local development, expose your backend with ngrok and register e.g. https://your-subdomain.ngrok-free.app/api/v1/oauth/suunto/callback. In production use your public domain.
Suunto automatically generates your Client Id from this configuration.
Keep your Client Secret and subscription key server-side only - never log or expose them in client code.
4

Configure credentials in Open Wearables

Add the following to your .env file:
Configuration details:
5

Connect a user via OAuth

With credentials configured and your Open Wearables instance running, initiate the OAuth flow.1. Get the authorization URL:
Response:
2. Redirect the user to the authorization_url. They will log in to Suunto and authorize your app.3. Suunto redirects back to the callback URI derived from API_BASE_URL ({API_BASE_URL}/api/v1/oauth/suunto/callback). Open Wearables automatically exchanges the authorization code for access and refresh tokens, and reads the Suunto user identity from the JWT access token (sub and user claims).4. Verify the connection:
You should see a connection with "provider": "suunto" and "status": "active".
The redirect_uri parameter in the authorize call is where the user is sent after the flow completes (e.g., back to your app). This is separate from the server-side OAuth callback ({API_BASE_URL}/api/v1/oauth/suunto/callback) that Suunto sends the authorization code to.
6

Enable webhooks (optional)

Suunto delivers events in push mode - each notification carries the data inline, so no extra fetch is needed (workouts are re-fetched via REST using their workoutKey to guarantee the canonical schema).Webhooks are configured on Suunto’s side: register your notification URL with Suunto and point it at:
Suunto signs each request body with HMAC-SHA256 and sends the result in the X-HMAC-SHA256-Signature header. Open Wearables verifies it against SUUNTO_WEBHOOK_SECRET (defaulting to SECRET_KEY), so make sure the notification secret configured with Suunto matches that value.
The endpoint acknowledges within Suunto’s 2-second timeout and enqueues processing in the background. If webhooks aren’t configured, periodic REST polling still keeps data current.
7

Sync data

An initial sync is triggered automatically after a successful OAuth connection. To manually sync or fetch historical data:
You can also sync specific data types:
8

Verify the integration

Once data has synced, fetch it via the Open Wearables API:
If data is returned, your Suunto integration is working end-to-end.

API Details

Rate Limits

The Developer API tier is capped at: If you need more throughput, request a higher tier from Suunto through the API Zone.

Next Steps

API Reference

Explore the Open Wearables API endpoints.

Coverage Matrix

See the full data coverage comparison.

Support

Need Help?