Skip to content

Integrations

SweatStack ingests activity, daily, and test data from wearable platforms and serves it through one normalized API. Your app authenticates against SweatStack once. SweatStack handles the platforms.

Supported today

Feature Garmin Connect Intervals.icu Wahoo
Activities Yes Yes Yes
Activity history backfill Yes, 5 years Yes, 5 years Yes, full history
Dailies Yes: body_mass, body_fat_pct, resting_hr, hrv, sleep_duration No No
Workout fanout Yes: running, cycling, pool swimming No No

Garmin Connect is the only platform that imports workouts today, for running, cycling, and pool swimming. Open-water swimming is not supported (Garmin's Training API cannot represent it).

Where each source's data comes from, and on what basis it reaches you, is documented at Data sources and provenance.

When a user's connection needs fixing

A connected platform is not always a working one: a Garmin user may not have shared historical data, and an Intervals.icu account fed by Strava cannot forward activities at all. Your app finds out from the issue field, and the user fixes it in the Portal without leaving your product's flow.

Garmin gets one extra safeguard, because its permission screen is where most of these problems start. If a user connects Garmin with the activity-export or historical-data toggle off, SweatStack tells them what that means right after Garmin's screen, with a button to go back and switch it on. They can always continue anyway. In that case your app hears about it through issue.

Future integrations

Polar Flow, Suunto, Apple Health, and Coros are on the roadmap. The unified data model is designed so that adding a platform is a SweatStack change: your code does not change when a new platform is added.

Demand decides which integration ships next. If one of these is blocking your integration, email us so we can weight it accordingly. We also build custom integrations on request.

Backfill

When a user connects a platform, ingestion starts immediately. SweatStack processes roughly 50 to 100 hours of activity data per minute, so a typical user's full history is in within one or two minutes. Very large accounts with many years of data take longer. How much longer depends on the source platform's sync speed.

The user sees the progress during the Sign in with SweatStack onboarding flow. If your app needs to know programmatically when the backfill is complete, poll the backfill status endpoint. See GET /api/v1/activities/backfill-status in the API reference, or backfill status on the activities page for the worked Python and cURL examples.

UX recommendation. Let users into your app immediately and show a progress indicator during the first session. Gating the first session on a complete backfill adds friction without payoff: by the time they have finished signing up and clicking around, most of the data they care about is already in.

How users connect

End users link platforms in their SweatStack account at app.sweatstack.no/settings/sharing. For your onboarding flow, you typically don't need to think about this. Sign in with SweatStack lets users authenticate with the wearable account they already have, and SweatStack creates the platform link.

What this means for your code

One activity API across every supported platform. The same shape, whatever the source. See the data model for the schema and activities for query patterns.