Convex Wearablesv0.13.1
Reference

Provider Support

Current provider coverage, ingestion paths, and time-series policy applicability.

Connectors

These are the connector families currently recognized by the component:

Garmin logo

Garmin

Strava logo

Strava

WHOOP logo

WHOOP

Polar logo

Polar

Suunto logo

Suunto

Apple logo

Apple HealthKit

Samsung logo

Samsung Health

Google Health Connect logo

Google Health Connect

Synthetic / Synth

Support matrix

ProviderIngestion pathCurrent data coverageTime-series rowsStorage policiesRemote deregistration
GarminOAuth sync + push webhooks + durable backfillWorkouts, sleep, time-series, summariesYesAppliesSupported
StravaOAuth sync + webhook-triggered resyncWorkouts, connection lifecycle, sync jobsNoCurrently no-opSupported
WhoopOAuth pull + signed v2 targeted-fetch webhooksWorkouts, sleep, time-series, summariesYesAppliesSupported
PolarOAuth pull + signed targeted-fetch webhooksWorkouts; live EXERCISENoCurrently no-opSupported
SuuntoOAuth pull + signed inline/targeted webhooksWorkouts, sleep, time-series, summariesYesAppliesNot implemented
Apple HealthKitNormalized SDK push from your appWorkouts, sleep, time-series, summariesYesAppliesNot applicable
Samsung HealthNormalized SDK push from your appWorkouts, sleep, time-series, summariesYesAppliesNot applicable
Google Health ConnectNormalized SDK push from your appWorkouts, sleep, time-series, summariesYesAppliesNot applicable
SyntheticDeterministic local generationWorkouts, sleep, time-series, summariesYesAppliesNot applicable

Important distinction

Apple HealthKit, Samsung Health, and Google Health Connect are currently supported through your own mobile app or ingestion layer sending normalized payloads.

The component stores and queries that data, but it does not currently fetch it directly from vendor APIs. Synthetic data is generated locally inside the component, has no external credentials, and must be explicitly enabled.

Time-series policies and providers

The storage-policy provider field accepts every supported provider key, not only garmin.

The policy engine is shared across all ingestion paths and becomes active whenever a source writes dataPoints rows. In practice today that means:

  • Garmin
  • Whoop
  • Suunto
  • Apple HealthKit
  • Samsung Health
  • Google Health Connect
  • Synthetic

Rules that target strava or polar are still valid, but they do not currently change time-series storage because those integrations do not currently write dataPoints.

Choosing the right integration path

  • If the provider offers OAuth and server-side APIs you want to sync from, use the cloud integration flow.
  • If you need low-latency WHOOP, Polar, or Suunto updates, add Live Provider Webhooks while retaining pull reconciliation.
  • If the data lives on-device and your app already reads it, use SDK Push.
  • If you need stable product fixtures without an external account, use Synthetic Data.
  • If you need to control row growth for dense metrics regardless of source, use Storage Policies.
  • If you need to disconnect, revoke access, or erase stored provider data, use Disconnecting and Deleting Data.

On this page