Device Providers
Provider slugs, hosted authorization, and the cloud connection lifecycle.
The current API connects cloud accounts exposed by supported wearable, fitness, nutrition, and health-device providers. Query the provider catalog at runtime rather than maintaining a static list in your integration.
Native health stores are a separate path
Apple Health, Health Connect, and Samsung Health do not use this hosted provider flow. Integrate them through the Mobile SDK reference.
Provider Catalog
/v1/providersReturns the authoritative catalog of cloud providers available for hosted authorization.
{
"providers": [
{
"slug": "garmin",
"name": "Garmin",
"thumbnail_url": "https://media.sonarhealth.co/devices/Garmin.jpg"
}
]
}Use slug as the provider in connection and disconnection requests. thumbnail_url is nullable. The provider picker in Developers → Users → Connect device reads the same catalog, so API clients and Atlas stay aligned as availability changes.
Providers Available Today
Sonar’s cloud provider catalog includes the direct integrations listed below.
Sonar’s mobile SDKs extend this coverage through Apple Health, Google Health Connect, and Samsung Health, connecting your application to a broader ecosystem of thousands of health and fitness apps and connected devices. Data availability depends on the supported data each source shares with these platforms and the permissions granted by the user.
| Provider | Slug |
|---|---|
| Aktiia | aktiia |
| Biostrap | biostrap |
| Bryton Sport | brytonsport |
| Cardiomood | cardiomood |
| Catapult One | catapultone |
| Clue app | clue |
| Concept2 | concept2 |
| Core | core |
| Coros | coros |
| Cronometer | cronometer |
| Cycling Analytics | cyclinganalytics |
| Decathlon | decathlon |
| EatThisMuch | eatthismuch |
| Eight Sleep | eight |
| Elite HRV | elitehrv |
| FatSecret | fatsecret |
| FinalSurge | finalsurge |
| Fitbit | fitbit |
| Flo | flo |
| FreeStyle Libre | freestyle_libre |
| Garmin | garmin |
| Google Fit | google |
| Hammerhead Karoo | hammerhead |
| Health Gauge | healthgauge |
| Insiders | insiders |
| Keto-Mojo | ketomojoeu |
| Komoot | komoot |
| Lezyne | lezyne |
| LiveRowing | liverowing |
| MacrosFirst | macrosfirst |
| Map My Tracks | mapmytracks |
| Moxy Monitor | moxy |
| MyFitnessPal | myfitnesspal |
| Nolio | nolio |
| Nutracheck | nutracheck |
| Omron | omron |
| Oura Ring | oura |
| Peloton | peloton |
| Polar | polar |
| Renpho | renpho |
| Ride with GPS | ridewithgps |
| Rouvy | rouvy |
| Strava | strava |
| Suunto | suunto |
| Technogym | technogym |
| Tempo | tempo |
| Today’s Plan | todaysplan |
| Train Xhale | trainxhale |
| TrainAsOne | trainasone |
| TrainerRoad | trainerroad |
| Training Peaks | trainingpeaks |
| Tredict | tredict |
| TriDot | tridot |
| Ultrahuman | ultrahuman |
| Under Armour | underarmour |
| Velo Hero | velohero |
| Wahoo Fitness | wahoo |
| wger | wger |
| Whoop | whoop |
| Withings | withings |
| Xert | xert |
| Xoss | xoss |
| Zepp | zepp |
| Zwift | zwift |
This table is a documentation snapshot. Use GET /v1/providers when your application needs the current catalog.
Connection Lifecycle
| State | How to observe it |
|---|---|
| Authorization started | POST /v1/users/{id}/devices returns auth_url |
| Provider consent completed | Your registered redirect receives status=success |
| Device connected | device.connected webhook |
| New data processed | subject.synced webhook |
| Provider disconnected | DELETE returns 204, followed by device.disconnected |
Retrieve the user with GET /v1/users/{id} to inspect its connections, including each provider’s status, connection timestamp, and latest synchronization timestamp. Webhook events remain the push interface for connection and synchronization changes.
Historical data can arrive across multiple subject.synced events. Providers do not supply a reliable terminal signal, so Sonar does not emit a separate event claiming that historical ingestion is complete.
Multiple Providers
A user may connect more than one provider. Sonar consolidates their source data before serving daily values. The public response is the normalized result and does not expose raw provider payloads or per-value source attribution.
Go Deeper
- Connect a Device Implement the authorization and return flow
- Webhooks Track connection, synchronization, and deletion events
Sonar