Device Providers

Provider slugs, hosted authorization, and the cloud connection lifecycle.

4 min read Updated Sep 15, 2026

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

GET /v1/providers

Returns the authoritative catalog of cloud providers available for hosted authorization.

json
{
  "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.

ProviderSlug
Aktiiaaktiia
Biostrapbiostrap
Bryton Sportbrytonsport
Cardiomoodcardiomood
Catapult Onecatapultone
Clue appclue
Concept2concept2
Corecore
Coroscoros
Cronometercronometer
Cycling Analyticscyclinganalytics
Decathlondecathlon
EatThisMucheatthismuch
Eight Sleepeight
Elite HRVelitehrv
FatSecretfatsecret
FinalSurgefinalsurge
Fitbitfitbit
Floflo
FreeStyle Librefreestyle_libre
Garmingarmin
Google Fitgoogle
Hammerhead Karoohammerhead
Health Gaugehealthgauge
Insidersinsiders
Keto-Mojoketomojoeu
Komootkomoot
Lezynelezyne
LiveRowingliverowing
MacrosFirstmacrosfirst
Map My Tracksmapmytracks
Moxy Monitormoxy
MyFitnessPalmyfitnesspal
Nolionolio
Nutrachecknutracheck
Omronomron
Oura Ringoura
Pelotonpeloton
Polarpolar
Renphorenpho
Ride with GPSridewithgps
Rouvyrouvy
Stravastrava
Suuntosuunto
Technogymtechnogym
Tempotempo
Today’s Plantodaysplan
Train Xhaletrainxhale
TrainAsOnetrainasone
TrainerRoadtrainerroad
Training Peakstrainingpeaks
Tredicttredict
TriDottridot
Ultrahumanultrahuman
Under Armourunderarmour
Velo Herovelohero
Wahoo Fitnesswahoo
wgerwger
Whoopwhoop
Withingswithings
Xertxert
Xossxoss
Zeppzepp
Zwiftzwift

This table is a documentation snapshot. Use GET /v1/providers when your application needs the current catalog.

Connection Lifecycle

StateHow to observe it
Authorization startedPOST /v1/users/{id}/devices returns auth_url
Provider consent completedYour registered redirect receives status=success
Device connecteddevice.connected webhook
New data processedsubject.synced webhook
Provider disconnectedDELETE 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