Stream WHOOP data. Zero pipeline code.
Connect a user’s WHOOP band and bring their recovery, strain, sleep, and HRV straight into your app — through the same Sahha API that standardizes Apple Health, Oura, and every other source.
- Automatic updates
- 30-day backfill
- HIPAA
- GDPR
- SOC 2
Free for 30 days · No credit card
- Sleep performance
- 87 %
- HRV
- 61 ms
- Resting heart rate
- 51 bpm
Identical schema across 500+ sources
Your users connect WHOOP. Sahha does the rest.
This is your user’s side of the story — one screen, once. Sahha ingests every WHOOP signal, normalizes, deduplicates, and delivers it to your service — raw, or as refined intelligence your product can act on.
A Allow "your app"
Your brand on the consent screen
You register your own WHOOP app, so users authorize your product — not a third party they’ve never heard of.
Your own rate limits
Your WHOOP quota is yours alone — never shared with, or throttled by, another customer’s traffic.
Everything WHOOP measures — in one schema.
Works with
WHOOP 4.0WHOOP 5.0WHOOP MGTyped & unit-consistent
Milliseconds become ms, kilojoules become kcal, and every value carries its own type and unit.
Real-time & backfilled
New data streams in by webhook, with up to 30 days of history backfilled on connect.
One schema, every source
WHOOP, Oura, and Apple Health all return the same fields and units.
Sleep
6
- slow_wave_sleep_time_millisleep_stage_deepmin
- light_sleep_time_millisleep_stage_lightmin
- rem_sleep_time_millisleep_stage_remmin
- wake_time_millisleep_stage_awakemin
- total_in_bed_time_millisleep_stage_in_bedmin
- sleep_needed.need_from_sleep_debt_millisleep_debtmin
Heart & vitals
6
- average_heart_rateheart_ratebpm
- resting_heart_rateresting_heart_ratebpm
- hrv_rmssd_milliheart_rate_variability_rmssdms
- respiratory_raterespiratory_ratebr/min
- spo2_percentageoxygen_saturation%
- skin_temp_celsiusskin_temperature°C
Activity & exercise
4
- kilojouleactive_energy_burnedkcal
- workout.sport_idexercise_session_*min
- zone_durationheart_rate_zone_*min
- strainstrain
Body
3
- height_meterheightm
- weight_kilogramweightkg
- max_heart_rateheart_rate_maxbpm
See a real payload
{
"cycle_id": 93845,
"sleep_id": "ef9a1c2b",
"score": {
"recovery_score": 92,
"resting_heart_rate": 51,
"hrv_rmssd_milli": 61.2,
"spo2_percentage": 97.3,
"skin_temp_celsius": 33.4
}
// …strain & sleep in separate endpoints
} [
{
"category": "vitals",
"type": "heart_rate_variability_rmssd",
"value": 61,
"unit": "ms",
"periodicity": "daily",
"aggregation": "avg",
"startDateTime": "2026-06-02T00:00:00Z",
"endDateTime": "2026-06-02T23:59:59Z"
},
{
"category": "vitals",
"type": "resting_heart_rate",
"value": 51,
"unit": "bpm",
"periodicity": "daily",
"aggregation": "min",
"startDateTime": "2026-06-02T00:00:00Z",
"endDateTime": "2026-06-02T23:59:59Z"
}
// …4 more normalized logs
] WHOOP has no pedometer, so it reports strain and heart-rate load rather than step count. Everything else backfills up to 30 days on connect and streams by webhook after.
Missing a metric you need? Talk to us in the Sahha Slack — if WHOOP captures it, we can usually add support.
Get more than just raw data
Sahha turns these signals into biomarkers, scores, archetypes, and insights — the modeling done for you.
Building on WHOOP’s API yourself? Here’s the to-do list.
Everything on the left is yours to write, test, and maintain. Everything on the right, Sahha already did.
- Integrate WHOOP.
- Then Oura, from scratch.
- Then Garmin, from scratch.
One integration covers every source.
- Write the OAuth flow.
- Store the tokens.
- Refresh them.
- Handle reconnects.
A hosted link — tokens stored and refreshed for you.
- Subscribe to webhooks.
- Reconcile cycles, recovery & sleep.
- Backfill the history.
Every update pushed the moment it lands — history included.
- Convert milliseconds to minutes.
- Join three endpoints per day.
- Drop the nulls.
Clean, typed, one schema — out of the box.
- Build a sleep model.
- Build a readiness model.
- Hire a data scientist.
Scores, archetypes, and insights — built in.
- WHOOP ships a v2 API.
- You find out in production.
We version the pipeline. You never notice.
One thing stays yours: your own WHOOP developer app — so your brand is on the consent screen and your rate limits are your own. Sahha runs the rest.
Live in an afternoon, not a sprint.
- App nameWHOOP · ProductionClient IDwhoop_a1b2c3•••Client secret••••••••••••••••01
Register your WHOOP app
Create a developer app in the WHOOP developer portal and copy your client ID and secret. This is what puts your brand on the consent screen and keeps your rate limits your own.
- Integrations
WHOOPCredentials added · Enabled02Add your credentials to Sahha
Paste the client ID and secret into the Sahha dashboard and enable WHOOP. That’s the last thing you build.
- 03
Your users connect their band
Send users through a hosted consent screen — branded as your app. They approve, and Sahha runs the OAuth handshake and stores and refreshes the tokens.
- Your app LIVESleep7h 12mReadiness82Heart rate62 bpm04
Data lands in your app
Sahha backfills up to 30 days, normalizes every metric to one schema, and streams real-time webhooks. You read biomarkers and scores by webhook or API.
Most teams are pulling live WHOOP data the same day they connect.
WHOOP integration questions
Do I need a mobile app to use the WHOOP integration?
No. WHOOP connects through a web-based OAuth flow, and Sahha delivers data to your backend by webhook or API — so a web app, server, or mobile app can all use it. Mobile SDKs are only needed for on-device sources like Apple Health.
How far back does Sahha backfill WHOOP data?
Up to 30 days of history is backfilled when a user first connects their WHOOP account. After that, new data streams in continuously through real-time webhooks.
Does WHOOP track steps?
No. WHOOP has no pedometer — it measures cardiovascular strain, recovery, and sleep from heart rate rather than counting steps. Sahha reports WHOOP’s strain and heart-rate metrics, and fills step count from any other source a user connects.
Do I need my own WHOOP developer account?
Yes. You register your own WHOOP developer app and add the credentials to Sahha. This keeps your brand on the user consent screen and your API rate limits separate from every other Sahha customer. Sahha runs the pipeline after that.
Which WHOOP metrics does Sahha provide?
Recovery, strain, sleep stages, sleep performance, heart rate, resting heart rate, HRV, respiratory rate, blood oxygen, skin temperature, and workouts — all normalized to Sahha’s schema, plus Sleep, Readiness, and Activity scores and archetypes.
Is the WHOOP integration HIPAA and GDPR compliant?
Yes. Sahha is HIPAA and GDPR compliant and SOC 2 certified, and WHOOP data flows through the same compliant pipeline as every other source.
One API for every other source, too.
Add another wearable or app and the schema, webhooks, and scores are identical — no new pipeline to build.
Start streaming WHOOP data today.
Connect once. Sahha handles consent, normalization, and real-time delivery — for WHOOP and every other source.
Free for 30 days · No credit card
- One API for WHOOP and every other source
- Real-time webhooks + on-demand REST, one normalized schema
- Scores, archetypes & insights — no modeling required
- HIPAA, GDPR & SOC 2 · your brand on the consent screen



