Key Takeaways
- Suunto API provides workout data for over 80 sport types with GPS, altitude metrics, heart rate time series, Training Effect and VO2 max.
- Altitude data is Suunto's most distinctive contribution: cumulative ascent and descent, altitude profiles for trail runs and hikes, and barometric altitude from the device sensor.
- Suunto API uses a subscription and polling model rather than webhooks. You register for activity notifications and poll for new data on a schedule.
- Developer access to the Suunto API requires registering an application through the Suunto developer portal. The process is straightforward but gated.
- Suunto focuses on training and outdoor sport data and does not provide the sleep or recovery metrics available from Polar, Whoop or Oura. Pair Suunto with a recovery-focused provider in multi-provider architectures.
- Open Wearables normalizes Suunto workout data alongside other supported providers.
Introduction
Suunto has been making sports watches for outdoor and endurance athletes since the late 1990s. Their devices are built for trail running, mountaineering, swimming, cycling and other activities where durability, GPS accuracy and altitude tracking matter. The Suunto app ecosystem reflects this focus: it is built around training sessions and outdoor sport rather than continuous health monitoring.
The Suunto API, officially called the Suunto App API, provides developer access to workout data synced by Suunto users. If you are building an application for endurance athletes, mountain sports enthusiasts or anyone who trains outdoors, Suunto data is likely a required integration. The outdoor sport demographic that uses Suunto devices is distinct from the Garmin Forerunner user base (more focused on road running and triathlon) and from the Polar user base (more focused on heart rate and training load analysis).
What Suunto offers that other providers do not is depth in altitude data. Barometric altitude measurements, cumulative ascent and descent per session, altitude profiles for GPS-tracked workouts, and detailed elevation-corrected pace and effort metrics are all available. For products serving trail runners, hikers, alpinists or cyclists in hilly terrain, this is the most relevant data stream available from any consumer wearable API.
What the Suunto API Provides
Workout sessions include sport type, start time, duration, distance, GPS track, heart rate time series (where the user wore an optical HR sensor or a Bluetooth chest strap), ascent and descent in meters, average and maximum altitude, calories, average pace and speed, Training Effect for aerobic and anaerobic adaptation, and VO2 max estimate for run and cycle sport types.
GPS data is available as a coordinate track with timestamps and altitude values at each point. For trail activities, this produces a full 3D route trace. The sampling interval depends on the user's GPS accuracy setting on the device: best mode records more frequently, good battery mode records less frequently.
Heart rate data is included in the session record when the user has a heart rate source paired to the watch. For pool swimming, heart rate monitoring during the swim may not be available due to water interference with optical sensors. Suunto's FusedHeart technology attempts to mitigate this for open water and some pool scenarios.
Training Effect is Suunto's implementation of Firstbeat's training adaptation scoring. Aerobic Training Effect (1-5 scale) indicates the session's impact on aerobic fitness. Anaerobic Training Effect (1-5 scale) indicates the session's impact on anaerobic capacity and lactate threshold. These scores are available for running and cycling sport types on devices that support the feature.
Daily activity and sleep data are not available through the Suunto API. Suunto devices with sleep tracking (introduced in the Suunto Race and newer models) store sleep data in the app but this data is not exposed via the developer API as of the time of writing. Plan your application architecture accordingly: Suunto data covers training sessions only.
Developer Registration and OAuth
Register your application at developer.suunto.com. The registration form requires an application name, description and redirect URI. You receive a client_id and client_secret after registration. The process does not require a lengthy review period, but Suunto may contact you if your application description raises questions about data usage.
Suunto uses OAuth 2.0 with the authorization code flow. The authorization endpoint is at Suunto's account server. After the user authorizes your application, they are redirected to your redirect URI with an authorization code. Exchange the code for an access token and a refresh token at the Suunto token endpoint.
Refresh tokens are long-lived. Access tokens expire after a shorter period and should be refreshed using the refresh grant. Store both tokens securely per user and handle 401 responses by attempting a token refresh before prompting the user to re-authorize.
The Subscription and Polling Model
Suunto's API uses a subscription model for data delivery. You register your application's callback URL (or use the polling endpoint) to receive notifications when new workout data is available. When a Suunto user syncs their watch to the Suunto app, a notification is sent to your registered endpoint containing the workout ID.
After receiving a workout notification, fetch the full workout details using the workout ID. The notification payload itself is minimal; the actual workout data including GPS, heart rate and altitude is retrieved in a separate request to the workouts endpoint.
If you prefer not to manage a webhook endpoint, poll the workouts list endpoint on a schedule (once per hour is sufficient) using a last-synced timestamp as a cursor. This polling approach is more robust for development and small-scale deployments where webhook delivery reliability is harder to guarantee.
Altitude Data in Product Context
Suunto's altitude data is the primary reason to prioritize this integration for outdoor sport products. Cumulative ascent (total meters climbed during a session) and descent (total meters descended) are the key metrics for trail running load quantification. A 10-kilometer run with 500 meters of ascent is significantly harder than a 10-kilometer flat run, and most training load models that only use heart rate and duration do not account for this adequately.
Building altitude-aware training load models requires normalizing the elevation factor. A common approach is grade-adjusted pace: the GPS track and altitude profile are combined to compute what flat-road pace an equivalent effort would represent, removing the terrain variable from pace-based training analysis.
For visual product features, the altitude profile (altitude versus distance or time from the GPS track) is a compelling and informative chart for trail runners and hikers reviewing their sessions. It contextualizes heart rate data: elevated heart rate at the top of a major climb is expected, not alarming.
Open Wearables and Suunto
Open Wearables handles Suunto OAuth token management, the subscription notification model and data normalization. Suunto workout data including altitude metrics, GPS tracks and Training Effect scores is normalized to the common schema alongside data from Garmin, Polar, Whoop and other supported providers.
Altitude-specific fields are preserved as provider-specific extensions in the normalized output. For multi-provider apps serving outdoor athletes, this means Suunto users and Garmin users produce comparable workout summaries through the same pipeline. Self-hosted, MIT licensed, no per-user fees.
FAQ
Does Suunto API provide sleep data?
Sleep tracking is available on some newer Suunto devices, but sleep data is not currently exposed via the Suunto developer API. If your application needs sleep and recovery data alongside workout data for Suunto users, integrate a complementary provider such as Oura, Whoop or Polar for recovery metrics.
How does Suunto's Training Effect compare to Polar's?
Both Suunto and Polar license Firstbeat Analytics technology for Training Effect scoring. The methodology is the same: a 1-5 scale for aerobic and anaerobic effect derived from heart rate response data. The scores are comparable across the two platforms for the same user and sport type.
What sport types does Suunto track?
Suunto supports over 80 sport modes including trail running, road running, cycling, mountain biking, swimming (pool and open water), hiking, mountaineering, skiing and snowboarding (downhill and cross-country), paddling, gym and many others. Sport type is encoded as a string identifier in the workout response.
Is altitude data from barometric sensors or GPS altitude?
Suunto devices with a barometric altimeter (most Suunto 9, Suunto Race and Vertical series devices) use the barometric sensor for altitude measurement, which is more accurate than GPS altitude for cumulative ascent and descent calculations. GPS altitude data is used as a fallback on devices without a barometric sensor and for position accuracy. The API does not explicitly distinguish which source was used, but devices with barometric sensors produce more accurate altitude profiles.
Suunto Integration
View the full Suunto integration documentation on Open Wearables.
See Related Articles
How to Integrate Suunto Data Into Your Training App
Garmin Connect API: Developer Guide for Activities and Health Metrics