Sleep States and Values per App

This article pertains to: Legacy API (V1) Inform (v2)

How does Validic API capture and represent sleep values from the various integration partners?

Sleep data is a very challenging and complex endpoint as each vendor has very different and specific ways of capturing the data, definitions as to what phase of sleep they consider a user to be in - if they even capture that data - as well as drastic differences in the algorithms they use to calculate "awake" and "restless" times. Validic makes an effort to retain the integrity of sleep data in it's original form and make documentation of these complexities available.

For instance, Garmin captures "awake" time via their device. However, they do not make that data available via the API. Therefore, this value captures the net time in bed for example when a user put his head down on the pillow and reached a true resting state and then when he arises for more than a certain period of time thus considering the user awake, which includes all "awake" and "restless" time in between.

For Fitbit, the "total_sleep" (Legacy API) or “duration” (Inform API) is the "Actual sleep time" as opposed to the "You were in bed for" value shown in the Fitbit portal; however, Fitbit makes the other data values available which allows you to calculate a more precise sleep time. This is also the case for Withings and iHealth.

NOTE: Fitbit allows the user to choose different device settings for sleep. One is more sensitive than another to movement, so ostensibly awake values from Fitbit can vary by user settings as well.