What is User Profile?
User Profile transforms the data already synced to ROOK into a structured profile that gives applications a broader view of a user's health and wellness.
Instead of working with individual metrics from different wearable sources, ROOK organizes the available data into five key areas:
Activity
Sleep
Cardio
Recovery
Body
Each profile can include aggregated metrics, scores, health levels, trends, data coverage, and personalized insights.
The profile is generated on demand and delivered asynchronously through the webhook configured for your ROOK integration.
Important: User Profile is designed to organize, summarize, and interpret available health and wellness data. It does not provide medical diagnoses, treatment, or medical recommendations.
How does User Profile work?
The process follows four main steps:
Wearable data synced to ROOK
↓
Your application requests a profile
↓
ROOK processes the available health data
↓
ROOK sends the profile to your webhook
ROOK primarily analyzes the user's last seven days of data. Some Recovery calculations may use up to 14 days of sleep data.
The profile is built from data that has already been synced and stored in ROOK. It does not connect directly to the user's wearable during profile generation.
What does the profile include?
The profile contains five sub-profiles:
Area | What it represents |
Activity | Available activity and movement information |
Sleep | Available sleep-related information |
Cardio | Cardiovascular-related metrics |
Recovery | Indicators related to recovery |
Body | Available body measurements |
Depending on the available data, each sub-profile can include:
Aggregated metrics
A score from 0 to 100
A health level
A trend
Data coverage or confidence
The profile also includes:
An overall score
Insights generated from predefined rules
Available demographic information
How are scores interpreted?
Scores are grouped into five levels:
Score | Level |
80–100 | Optimal |
65–79 | Good |
50–64 | Moderate |
30–49 | Poor |
Below 30 | Critical |
These scores provide context about the available data. They are not medical diagnoses.
The overall score combines the five areas using these weights:
Activity: 20%
Sleep: 25%
Cardio: 25%
Recovery: 20%
Body: 10%
Sub-profiles without usable data are not treated as negative results.
How does ROOK handle missing data?
Missing data does not mean that a user's profile result is poor.
For example, a low step count can contribute to a lower activity score, but having no step data does not produce the same result.
When a metric is unavailable, ROOK uses the other available metrics when possible and reflects the reduced data availability through coverage or confidence.
If there is not enough information to calculate a sub-profile, its values may be returned as null:
{ "score_int": null, "level_string": null, "trend_string": null }
A null value should not be interpreted as zero or as a negative result.
If there is not enough information to generate any sub-profile, ROOK does not generate or send an empty profile.
How can I integrate User Profile?
User Profile is available through the ROOK API and follows an asynchronous workflow.
At a high level:
Request profile → ROOK processes the data → Profile delivered via Data Webhook
Before requesting a profile, make sure that:
The user has connected at least one supported data source through ROOK Connect.
The user's wearable data has been synchronized.
A Data Webhook is configured.
User Profile is activated for your organization.
The profile is not updated automatically when new wearable data becomes available. If new data is synchronized after a profile has been generated, you must request a new profile to have ROOK process the updated data.
Interested in trying User Profile?
If you are interested in trying User Profile feature, contact Customer Success team to enable the feature for your organization.
For complete integration details, including API requests, authentication, webhook configuration, payloads, retries, rate limits, and error handling, see the User Profile technical documentation