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.