
Cloud providers
Garmin, Polar, Oura, Whoop, Suunto and other cloud-based providers:- Wearable device collects data with its sensors.
- Provider app on the user’s phone reads the data from the device over BLE.
- Provider cloud receives the data when the app syncs.
- User authorizes your app to access their data via OAuth. The flow is started through Open Wearables - see the integration guide.
-
Open Wearables keeps the data in sync and normalizes it into the unified data model. Every provider uses one of two methods:
- push - the provider sends a webhook as soon as new data is available, and Open Wearables fetches it immediately.
- pull - Open Wearables polls the provider on a schedule (hourly by default,
SYNC_INTERVAL_SECONDS), because the provider offers no webhooks.
- Your backend queries the data through the REST API with an API key, or receives outgoing webhooks when new data arrives.
- Your frontend talks to your backend to display the data.
Historical backfill
Push and pull only cover data recorded from the moment the user connects. Everything older needs a one-off historical backfill - a separate job, triggered explicitly:HISTORICAL_SYNC_ON_CONNECT in the backend environment (default true) - set it to false to trigger backfill yourself. The automatic dispatch is a leftover that will go away, so don’t build on it.

