Data source types & retrieval methods

When working with consumer health sensors and sources like smartwatches, smart scales, connected medical devices, etc., there are three main concepts of data sources that are important to understand:

Web data sources

Data sources storing health data in the cloud, like Fitbit, Garmin, or Withings, are called web data sources or oAuth data sources (due to the authorization protocol oAuth used by these sources). Data from web data sources is retrieved and flows between the data sources’ server to Thryve’s server.

Web data sources allow for data retrieval to happen fully in the background without the user needing to open your app. This means that when the user is wearing their wearable and data has been synced between the wearable and the data source cloud, it can be accessed by Thryve (given that a valid authorization exists).

Native data sources

Data sources storing health data exclusively on the end-user's smartphone, like Apple Health and Health Connect, are called native data sources. The authorization, as well as the data retrieval, is happening on the smartphone of the end user.

Native data sources are only available for mobile applications. The Thryve SDK will take care of all things authorization and data retrieval for you so that accessing data from these data sources won't require any huge implementations when using our technology.

Within the SDK, we have implemented certain mechanisms allowing for background data retrieval; however, these mechanisms are always a bit at the mercy of the operating system and might not work if the end user does not open your app regularly.

Web-Direct data sources

Web-direct data sources are a sub-category of web data sources. These are data sources that don't have an official API to access data; however, we have built integrations allowing you to still get the data your end-users see in the data source app.

When authorizing web-direct data sources, your users will need to provide their username and password. We use these, however, only to obtain authorization for the sources and don't store them.

While we don't use any official API, legally, Thryve acts as a vicarious agent on your behalf/on behalf of your end user when accessing data from web-direct sources - this requires corresponding transparency in the service terms & conditions as well as the privacy guidelines of your application.

Data retrieval methods

The availability of data depends on how Thryve can retrieve data from the different data sources. To give you more context, we have grouped all data sources into one of these 3 categories:

Ping-based data retrieval

Data is retrieved when we have received a notification from data sources about the availability of new data - basically, when they have "pinged" us. Typically, we subscribe to these kinds of notifications from data sources in this way, we ensure to retrieve data in near-real-time, as we take on average 1s from the ping notification until the data has been retrieved, stored, and made available on our side.

However, we know that certain data source providers are not always super reliable when it comes to notifications on new data, which is why we have mechanisms in place that ensure that data will still be retrieved even if a data source might have missed notifying us.

Historic data retrievals is independent of the ping notifications and performed upon user creation as well as when requested.

Bulk data retrieval

Not all data sources have mechanisms that notify us when new data is available. For those data sources, we request new data for all users on a schedule with an interval of a maximum of 15 minutes. We have mechanisms in place to ensure all data is retrieved even for users who might not have synced their devices for multiple days.

SDK-based data retrieval

Data retrieval for native data sources is performed via the Thryve SDK. The SDK will request data locally on your end-users' smartphones and send it to the Thryve backend. This can be triggered by your app via manual data synchronization routines of the Thryve SDK, e.g., when your app is moving to foreground or by a silent push notification system.

The Thryve SDK will also retrieve data in the background. On iOS, we use the routines provided by the operating system and HealthKit, while for the native data sources on the Android platform, we have implemented background workers that will request background workers to retrieve data at a scheduled interval every 30 minutes.

As the ability to perform the data retrieval is linked to the background workers on the Android platform, factors like resource optimizations and energy-saving mechanisms of the individual devices have a strong effect on how often the sync actually succeeds.

Last updated