Quick answer
How often ROOK extracts and delivers data depends on two things: the data structure (events, body_summary, sleep_summary, physical_summary, steps_events) and the data source (API-based or Mobile-based / SDK). API-based sources follow a schedule that varies by structure, while Mobile-based sources sync in the background about once per hour. The table at the end summarizes it all at a glance.
Detailed Content
1. API-based data sources
For API-based sources, how often ROOK extracts data depends on the data structure:
Events (events) — After the user syncs their wearable with the provider's app, ROOK extracts and delivers the data within seconds to minutes.
Body Summary (body_summary) — Once per day, usually around midnight, using the previous day's data.
Sleep Summary (sleep_summary) — Once after the user wakes up. The default time is around midday and can be changed from the ROOK Portal.
Physical Summary (physical_summary) — Usually at the end of the day. For Fitbit, Oura, Polar, Whoop, and Withings, ROOK supports Partial Summaries, which update every 4 hours instead. See more details.
Steps Events (steps_events) — Available as an add-on. When enabled, ROOK extracts step updates every hour.
Some API-based sources also use webhooks. On top of the scheduled extractions above, the provider notifies ROOK as soon as new data is ready, which can make delivery faster. Garmin, for example, relies heavily on webhooks. In all cases, ROOK keeps its regular extractions running, so it never depends on webhooks alone.
2. Mobile-based data sources (SDK / Health Kits)
For sources such as Apple Health, Health Connect, and Samsung Health, the SDK syncs new data using the background sync from the SDK about once per hour. This can include summaries, events, and other metrics, depending on the permissions the user grants and each source's limitations.
3. Summary table
Times are approximate and always depend on the user syncing their wearable and granting the required permissions.
Data structure | API-based | Mobile-based / SDK |
events | Seconds to minutes after sync | Every hour |
body_summary | Once a day (midnight) | Every hour |
sleep_summary | Once after waking (midday, customizable) | Every hour |
physical_summary | End of day | Every hour |
physical_summary - partial summaries | Every 4 hours | N/A |
steps_events | Every hour (add-on) | Every hour |
calories_events | NA | Every hour |
Not every source supports every data structure or metric. Check the data sources and characteristics article to see what each source provides.
Action Items and Recommendations
Grant the required permissions — ROOK can only extract the data the user has authorized.
Sync the wearable regularly — Ask users to open the provider's app and sync often; the fresher the sync, the fresher the data.
Set the time zone (API-based) — Configure the user's time zone in ROOK so the daily extractions run at the right local time.
Links
Partial Summaries (Changelog): https://rook.canny.io/changelog/partial-summaries
Data sources and their characteristics: https://support.tryrook.io/en/articles/14041227-what-are-the-data-sources-and-their-characteristics