Supported providers
We currently Support over 300+ devices, a full list can be seen below.
Cloud Based Providers
Some Oauth providers are unavailable unless you can
— you will have to apply directly to the provider for an OAuth application, and provide Vital your assigned credentials once the application is accepted.
Provider | Slug | Description | Availability |
---|---|---|---|
Beurer | beurer_api | Beurer Blood Pressure monitors | Password authentication |
Dexcom | dexcom_v3 | Dexcom CGM Glucose monitors | BYOO only |
Dexcom (G6 And Older) | dexcom | Dexcom CGM Glucose monitors | Password authentication |
8Sleep | eight_sleep | Smart Mattress | Password authentication |
Freestyle | freestyle_libre | Abbott CGM Glucose monitor | LibreView practice connection |
Fitbit | fitbit | Activity Trackers (all devices) | Vital branded OAuth, or BYOO |
Garmin | garmin | Fitness watches (all devices) | Vital branded OAuth, or BYOO |
Google Fit | google_fit | Activity Trackers (all devices) | Vital branded OAuth, or BYOO |
Hammerhead | hammerhead | Cycling computers | Password authentication |
iHealth | ihealth | Blood pressure, Fitness scales, Glucometers & Fitness watches | BYOO only |
MyFitnessPal | my_fitness_pal | Nutrition data | MyFitnessPal Diary Sharing Key |
Oura | oura | Smart Sleep tracking ring | Vital branded OAuth, or BYOO |
Peloton | peloton | Popular Indoor Exercise bike | Password authentication |
Renpho | renpho | Fitness Scales | Password authentication |
Strava | strava | Running & Cycling Social Network | Vital branded OAuth, or BYOO |
Wahoo | wahoo | Cycling Equipment | Vital branded OAuth, or BYOO |
Whoop | whoop | Your Personal Digital Fitness and Health Coach | Password authentication |
Withings | withings | Fitness scales, watches and health monitors | Vital branded OAuth, or BYOO |
Zwift | zwift | Virtual cycling and running | Password authentication |
Polar | polar | Finnish sports tech pioneer | Vital branded OAuth, or BYOO |
Cronometer | cronometer | Nutrition data | Vital branded OAuth, or BYOO |
SDK Based Providers
Provider | Slug | Description |
---|---|---|
Accu-Chek (Bluetooth) | accuchek_ble | Glucose Strips/MySugr App |
Apple HealthKit | apple_health_kit | Health and fitness data on iPhone and Apple Watch |
Beurer (Bluetooth) | beurer_ble | Beurer Blood Pressure monitors |
Contour (Bluetooth) | contour_ble | Glucometers |
Freestyle Libre BLE (NFC) | freestyle_libre_ble | Abbott CGM Glucose monitor readings via SDK |
Omron (Bluetooth) | omron_ble | Blood Pressure monitors and scales |
Providers under active development
Beta: Currently under development. All providers here are available in sandbox and production, any feedback you have is greatly appreciated!
Provider | Slug | Description |
---|---|---|
Android Health Connect | health_connect | Health and fitness data on Android devices |
Kardia | kardia | Electrocardiogram readings |
Omron (Cloud) | omron | Blood Pressure monitors and scales |
Planned: On our roadmap
Provider | Slug | Description | Stage |
---|---|---|---|
Xiaomi | xiaomi | All data | Enquire |
Suunto | suunto | Fitness Watch | Planned |
iGlucose | iglucose | Glucose Strips | Planned |
KetoMojo | TBD | Glucose, Ketones and more | Planned |
Full Device Support List
Data Frequency
Whenever Vital detects that new data is available, data events are always sent to your configured endpoints, regardless of the provider being push-based or polling-based.
Cloud Based Providers
Cloud Based Providers can be divided in two main categories:
-
Push-based
- When a cloud-based provider supports a push notify mechanism (typically webhooks), Vital would prefer to use it to drive data fetches. In other words, as soon as the provider notifies Vital of new data through the said mechanism, Vital fetches the latest data.
-
Polling-based
- For providers and/or resources without any push notify mechanism, Vital polls these resources at a regular schedule, typically every 15 minutes or so.
Provider | Description |
---|---|
Fitbit | Push |
Garmin | Push |
Strava | Push |
Wahoo | Push |
Withings | Push |
iHealth | Push |
Freestyle(API + SDK) | Polling |
Google Fit | Polling |
Oura | Polling |
Peloton | Polling |
Renpho | Polling |
Whoop | Polling |
Zwift | Polling |
8Sleep | Polling |
Hammerhead | Polling |
Dexcom | Polling |
MyFitnessPal | Polling |
Cronometer | Push |
SDK Based Providers
SDK Based Providers are all push-based, where data are pushed from the Vital SDK embedded inside your Android or iOS app.
Provider | Description |
---|---|
Apple HealthKit | Sync on OS notification, variable frequency [1] |
Android Health Connect | Sync On App Launch [2] |
Omron | Manual Post |
Contour | Manual Post |
Accu-Chek | Manual Post |
[1] Notes on Sync on OS notification:
Apple HealthKit notifies new data immediately only when your iOS app is in the foreground with visible UI.
Meanwhile, properly configured HealthKit apps in background with no visible UI are notified on an OS-throttled, opportunistic schedule that can dynamically change based on factors like CPU usage, battery usage, connectivity, Low Power Mode, and delivery history.
The Vital SDK — or any third-party HealthKit apps — has no control over this, other than suggesting a background delivery frequency to the OS as the lower bound. The actual delivery frequency remains at full discretion of the OS, and can range from hourly, to once a day, or when certain opportunity arises (e.g., when Sleep Mode ends, or when the phone starts charging).
Therefore, it is not recommended to base your UX around immediate availability of HealthKit data. The only exception is if your UX do involve the user actively using your iOS app. For example, iOS 17+ supports third-party apps initiating an Apple Watch workout session that would be live synced with your iPhone app.
[2] Notes on Sync On App Launch:
Because Android Health Connect disallowes any data access when the app is in background, your app must be regularly opened by the end user for data to be synchronized. Hence, the Vital SDK can only provide Sync On App Launch as the default automatic behaviour.
If automatic background monitoring is desired, your app would have to implement one of the Android Foreground Service — e.g. high priority push from Firebase Cloud Messaging — during which your service manually initiate a Vital SDK sync.
Historical Days Retrieved
When a new provider is connected to a user, Vital retrieves the historical data for this user from the connected provider. The following number of historical days of data are retrieved for each provider:
Provider | Historic Days |
---|---|
Freestyle | 90 |
Fitbit | 90 |
Garmin | 90 |
Google Fit | 90 |
Oura | 180 |
Peloton | 180 |
Renpho | 180 |
Strava | 14 |
Wahoo | 180 |
Whoop | 180 |
Zwift | 270 |
Withings | 90 |
iHealth | 7 |
8Sleep | 90 |
Omron (SDK) | 90 |
Contour (SDK) | 90 |
Accu-Chek (SDK) | 90 |
Apple HealthKit (SDK) | 90 |
Android Health Connect (SDK) | 30 |
Freestyle Libre BLE (SDK) | 90 |
Braun Healthcare | 90 |
Hammerhead | 30 |
Dexcom | 30 |
Dexcom (G6 And Older) | 1 |
MyFitnessPal | 14 |
Polar | 28 * |
Cronometer | 28 |
* Polar only supports historical backfill for Sleep and Sleep Stream resources.
To provide you with the best possible experience, for some providers we implement a mix of Webhook and Polling for different resources. Check out the resources page for more info.