Skip to content
AF
Integration Guides

How to Integrate the Suunto API (2026)

Last verified October 17, 2026 · 5 min read

Sources checked (4) · October 17, 2026
The Suunto Cloud API gives approved partners the workouts and daily steps and calories that Suunto watches sync to the Suunto App, and lets them push routes and workouts back. Access is through Suunto's partner program: companies and organizations apply, accept the API agreement and hear back within two weeks; Suunto does not offer access for personal use and does not charge for the API. Users authorize over OAuth 2.0, every data call carries the user's JWT access token plus your subscription key, and a webhook tells you when a new workout arrives. Sleep and personal data are not available yet.

Suunto's cloud API is the Suunto Cloud API, run from its developer site, the Suunto API Zone. It returns the workouts and daily activity that Suunto watches sync to the Suunto App, and lets you push routes and workouts back. Everything below is from Suunto's API Zone pages as read on October 17, 2026. If you are still choosing a provider, start with wearable data APIs.

Access and approval#

QuestionWhat Suunto's pages say
Who can get access?Companies and organizations building tools, apps or services for a public audience; "We currently don't offer the API access for personal use"
How do I apply?Through the Suunto partner program application, which includes accepting the API agreement
How long does review take?Applications are reviewed weekly, with a maximum two-week wait
What does it cost?"We do not charge from the use of the API."
What is reviewed?For example the fit to Suunto's brand, interest from Suunto's customers and how you illustrate an innovation mindset

After acceptance the path has three more steps. You subscribe to the Development API, which has every endpoint but smaller request limits; when you are ready you submit your app's information in your profile and subscribe to the Production API; then you submit your app's content, and Suunto grants production access and publishes the app on Suunto.com. One account holds one app, so a separate test app or a second brand needs another account and email address. If an agency builds the integration, Suunto asks the client company to apply and sign the API agreement, listing the agency's developers on the form.

Auth and keys#

The Suunto Cloud API needs two credentials on every data call: the user's OAuth 2.0 access token and your subscription key (Ocp-Apim-Subscription-Key), which you find in your API Zone profile after subscribing. Suunto gives you a primary and a secondary key so you can rotate one without downtime. The OAuth endpoints do not take the subscription key.

Set your app name, client secret and redirect URI in the OAuth settings of your profile; the client ID is generated for you. Then send the user to the authorization host:

GET https://cloudapi-oauth.suunto.com/oauth/authorize
  ?response_type=code
  &client_id=YOUR_CLIENT_ID
  &redirect_uri=https://yourapp.example.com/oauth-redirect

The user signs in with their Suunto App account (Suunto notes that old Movescount credentials do not work) and comes back with a code. Exchange it with HTTP Basic client authentication:

curl -s https://cloudapi-oauth.suunto.com/oauth/token \
  --user "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
  -d grant_type=authorization_code \
  -d redirect_uri=https://yourapp.example.com/oauth-redirect \
  -d code=AUTHORIZATION_CODE

Suunto's example response holds an access_token, a refresh_token, expires_in of 86400 seconds and the workout scope. The access token is a JWT, and its custom user claim is the user's Suunto App username, which you will need to match webhook notifications to users. Suunto has no mobile SDK; it says the authorization process is optimized for mobile use.

Data you can read and write#

Data calls go to https://cloudapi.suunto.com with both headers:

curl -s "https://cloudapi.suunto.com/v2/workouts" \
  -H "Authorization: Bearer JWT_ACCESS_TOKEN" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
DirectionWhat Suunto's FAQ lists
ReadWorkouts, as a workout list, as JSON summaries or as FIT files with all samples, laps and GPS tracks; daily activity with steps and calories
WriteRoutes as GPX files with waypoints, which sync to Suunto watches for navigation; workouts as FIT files
Not available yetSleep data, points of interest, and personal data such as weight or heart rate zones

Use the workout list for history and FIT files for full detail. Workout JSON gives startTime and stopTime in UNIX epoch milliseconds plus timeOffsetInMinutes, the user's offset from UTC when the exercise stopped. What a FIT file contains depends on the watch model and the sport mode the user chose, so a missing GPS track can be the device, not your parser.

Webhooks#

Suunto sends a webhook when a new workout syncs. Register the URL in your app's OAuth settings in the API Zone; it must be publicly reachable. Each notification is a POST with two parameters, username and workoutid: look up the access token by username, then fetch the workout's FIT file by its ID.

There is no webhook for daily activity. Suunto's advice is to fetch steps and calories whenever a workout notification arrives, since a synced workout means a synced watch, and otherwise to fetch daily activity about once a day for users who sync without working out. Suunto asks partners to avoid unnecessary polling.

Rate limits#

Suunto's pages say the Development API has the same capabilities as production but with rate-limited, smaller request limits. They do not publish the numbers for either API. Expect higher load at weekends and at the start of the year, which Suunto calls out as its busy periods.

What changed recently#

Suunto's API Zone publishes no dated changelog; partners hear about new capabilities through the partner newsletter Suunto adds them to on registration. Two standing notes matter for older integrations: the Movescount API is a completely separate system, and Suunto encourages everyone onto the Suunto App and the Cloud API; and apps for Suunto's China market use a separate API with different endpoints, which Suunto provides once your integration is ready.

Gotchas and production notes#

  • No personal projects. Access is for companies and organizations; there is no individual tier.
  • Two headers, always. A data call needs both the user's JWT access token and your subscription key; the token exchange needs only Basic client credentials.
  • Workout key format. Suunto says a 500 error on the workout API usually means a bad workout key, which is a 12-byte hexadecimal string.
  • 401 with "bad client credentials". Often a user trying Movescount credentials, or a malformed Basic header.
  • Test on production data. Development runs against the production system, so testers' real Suunto data works; Suunto also publishes example FIT files.
  • SuuntoPlus fields. Data from SuuntoPlus features sits in FIT files as developer fields.

The rest of the cluster is at how to integrate a fitness or health API.

Frequently asked questions

Is the Suunto API free?
Yes. Suunto's API Zone says "We do not charge from the use of the API." Access is the gate instead: you apply through the Suunto partner program, accept the API agreement, and Suunto reviews applications weekly, with a maximum two-week wait. It does not offer API access for personal use.
How do I get access to the Suunto Cloud API?
Apply to the Suunto partner program and select the Suunto Cloud API, which shows you the API agreement to sign, and list every developer who needs access. Once accepted, subscribe to the Development API, build, submit your app's information and subscribe to the Production API; Suunto then grants production access and lists your app on Suunto.com.
What data does the Suunto API return?
Workouts, as a list, as JSON summaries or as FIT files with samples, laps and GPS tracks, and daily activity with steps and calories. You can also push GPX routes and FIT workouts to a user's account. Suunto says sleep data, points of interest and personal data such as weight or heart rate zones are not available yet.
Does the Suunto API have webhooks?
For workouts only. Register a public URL in your app's OAuth settings and Suunto POSTs a username and workoutid whenever a new workout syncs; you then fetch it. There is no webhook for daily activity, so Suunto suggests fetching steps and calories with each workout and about once a day otherwise.
What headers does the Suunto API need?
Two on every data call to https://cloudapi.suunto.com: Authorization with the user's JWT access token, and Ocp-Apim-Subscription-Key with a key from your API Zone profile. The OAuth token endpoint at cloudapi-oauth.suunto.com takes HTTP Basic client credentials instead and needs no subscription key.

All 113 questions in Integration Guides →

Keep reading

Elsewhere on the site

Pages that share this one’s concepts and sources, from other sections.

Next steps

Was this page useful?

Independent comparison, last reviewed October 17, 2026. Pricing, rate limits, and feature availability change often — confirm current details in each provider’s official documentation before you commit. Product and company names are trademarks of their respective owners; AIFitnessAPI is not affiliated with, endorsed by, or sponsored by any product listed here.

← All integration guides · by AIFitnessAPI