Understanding Our API: Biomarker Data Structure Vol. 2

API: Biomarker Data

In this second volume of our ROOK API deep dive, we explore six important topics that help teams build more accurate and scalable wearable-powered applications:

  • Granular data

  • Manual data handling

  • Auto-detected vs manually started activities

  • Continuous step events (add-on)

  • Time zone management

  • Structured vs unstructured (proprietary) data

If you are building dashboards, leaderboards, real-time interventions, or analytics features, these concepts are essential.

Prefer watching instead? Here’s the full walkthrough on YouTube:
Watch the video on YouTube

Granular data: detailed metrics for advanced visualization

Granular data refers to high-resolution, second-by-second (or near real-time) data points collected during an event such as a workout.

Examples include:

  • Heart rate curves during a run

  • Cycling speed over time

  • Cadence

  • GPS location points

  • Power output

  • Oxygen saturation changes

This type of data allows you to:

  • Build detailed graphs

  • Create heat maps of a route

  • Visualize pace and speed variations

  • Analyze performance trends

Granular data is available as an optional add-on and can be turned on or off.

Why is it optional?

Because granular data significantly increases payload size. A long activity such as a marathon can generate a large volume of second-by-second data.

You can check which devices support granular data and for which biomarkers directly in our technical documentation under each data source.

Granular data

Manual data entries: what ROOK passes and what it blocks

Manual data refers to information that a user enters themselves rather than data detected by a wearable.

Examples:

  • Manually logging a 30-minute run

  • Entering nutrition information

  • Adding a custom activity

Manual entries can be useful in certain contexts, especially nutrition tracking. However, manually logged physical activity data is often inaccurate or unreliable.

For this reason, ROOK generally blocks most manual activity data to maintain data quality and consistency.

If you are testing the integration and notice that some manually added data does not appear, this may be the reason.

We also provide detailed guidance in our knowledge base on how manual data handling works across different data sources.

Handling manual data entries in ROOK

Auto-detected vs manually started activities

In activity events, you will see a field indicating whether the activity was auto-detected.

Auto-detected activity means:

  • The wearable detected movement patterns (e.g., walking) automatically.

  • The user did not explicitly start the workout.

Manually started activity means:

  • The user pressed “Start Run” or “Start Workout” on their device or app.

  • The session was actively initiated and ended by the user.

Why this matters:

Auto-detected activities often contain less detailed information than manually started ones. For example:

  • Granular data may not be available

  • GPS precision may be limited

  • Fewer performance metrics may be recorded

If your product depends on high-detail analytics, manually started sessions typically provide richer datasets.

Auto-detected

Continuous step events (add-on)

Continuous step events are an optional add-on designed for real-time use cases.

Instead of waiting for the end-of-day summary, this feature:

  • Sends updated accumulated step counts throughout the day

  • Generates frequent step events

  • Keeps dashboards and leaderboards up to date

Ideal use cases:

  • Corporate wellness challenges

  • Step competitions

  • Real-time dashboards

  • Gamification features

Because step events generate frequent updates, they can increase the number of incoming events. For that reason, this feature can be turned on or off depending on your needs.

Continuous step tracking is available for both API and SDK-based integrations (iOS, Android, and supported frameworks).

Step events (add-on)

Time zone handling: why it is critical

Time zone handling is essential to ensure that:

  • Daily summaries reflect the correct 24-hour window

  • Sleep summaries trigger at the right time

  • Data is grouped accurately by user day

ROOK manages time zones in the following order:

  1. Extract from the user’s mobile operating system or wearable device (preferred).

  2. Accept manually provided time zone information if available.

  3. Fall back to the default time zone configured in the ROOK portal (last resort).

Why this matters:

Users may be located in different time zones. Daily summaries, physical summaries, body summaries, and sleep summaries are triggered based on each user’s local time.

Correct time zone handling ensures data integrity and proper user experience.

Time Zone

Structured vs unstructured (proprietary) data

ROOK standardizes wearable data into structured formats wherever possible.

Structured data

These are comparable metrics across devices, such as:

  • Heart rate

  • HRV

  • Steps

  • Distance

  • Calories

  • Active and inactive time

We normalize these fields so they follow a consistent schema regardless of data source.


Unstructured (proprietary) data

Some manufacturers provide proprietary metrics with unique algorithms behind them.

Examples:

  • Garmin Body Battery

  • WHOOP Recovery Score

  • Oura Readiness Score

  • Fitness Age

Because these metrics are calculated differently and are not directly comparable across devices, we cannot harmonize them into structured fields.

However, we do not discard them.

Instead, we deliver them in a non-structured data array, allowing you to use them if they are relevant to your use case.

Like other advanced features, non-structured data delivery can be enabled or disabled depending on your integration needs.

Final thoughts

This volume focused on advanced aspects of the ROOK API that directly impact product architecture and user experience:

  • Use granular data for high-resolution visualization.

  • Understand how manual data is handled to maintain quality.

  • Differentiate between auto-detected and manually started activities.

  • Enable continuous step events for real-time experiences.

  • Handle time zones correctly for accurate daily summaries.

  • Combine structured and proprietary data intelligently.

These design decisions allow you to balance performance, payload size, real-time updates, and long-term data consistency.

If you have questions about implementing any of these features, our team is here to help.

Next
Next

Understanding Our API: Biomarker Data Structure Vol. 1