WHOOP like
data source
A complete guide for researchers - from understanding the architecture to a working pipeline
Device without screen. Closed data platform. One of the most accurate wearable trackers for HRV and sleep. Here's everything you need to know before you start working with physiological data.
Not a tracker.
Data platform.
WHOOP is a wearable, screenless biometric tracker designed exclusively for continuous physiological monitoring.. Unlike smartwatches, it doesn't have notifications, pedometer or display. The device does one thing, but it does it better than most of its competitors: it measures three key metrics 24 hours a day, 7 days a week.
For the researcher, a key understanding: the sensor collects raw PPG signals, temperature, accelerometry - but sends out already processed aggregates. Raw data not available. This is not a bug - it is a fundamental architectural decision of the platform.
HRV (RMSSD), resting heart rate, SpO₂, skin temperature. Calculated in the morning after sleep.
Logarithmic scale 0–21. Physical and mental stress during the biological cycle. Not additive.
Sleep stages, latency, efficiency, disturbances. The basic unit is the biological cycle, not the day.
Beat-to-beat intervals (RR), raw PPG signals and accelerometer data exist at the sensor level, but the platform does not provide them either through the API or through export.
From a Harvard startup
to NASA instrument
Will Ahmed, Harvard student. Idea from personal frustration: I trained hard, but didn’t understand if my body was recovering. Standard trackers counted steps—he was interested in physiology.
Testing with professional athletes. Start of cooperation with NBA, NFL, NCAA teams. The main idea: not “how much have you done,” but “how ready are you.”
First mass version. The Strain algorithm appears - a logarithmic scale that takes into account not only training, but also background stress.
Transition to a subscription model. WHOOP becomes the standard in professional sports. NBA, NHL, UFC.
WHOOP releases data: Changes in HRV and respiratory rate recorded 2-3 days before COVID symptoms appear. Medical researchers are starting to work with the platform.
SpO₂, skin temperature, stress detector. The company's valuation reaches $3.6 billion. Investors: Tiger Global, SoftBank.
ECG, blood pressure monitoring, biological age. Official entry into the medical segment.
Where is WHOOP used?
researchers
Australian Institute of Sport (AIS) validated HR 99.7% and HRV 99% accurate compared to ECG standard. NBA, NFL, NHL, FIFA teams use WHOOP to manage workloads.
USSOCOM tested WHOOP to monitor special forces combat readiness. The task is to determine the moment when the operative is not physically ready to perform the task.
The agency was studying applications for monitoring astronauts.. Continuous monitoring of HRV as a marker of adaptive stress in microgravity conditions.
JMIR (2024), Schyvens et al. (2025), Dial et al. (2025). Dozens of publications on biomarkers of recovery, COVID detection, monitoring of NCAA student-athletes.
Changes in HRV and respiratory rate are recorded 2–3 days before symptoms. The first wearable tracker with verified early detection of viral infection.
Goldman Sachs, McKinsey - programs for top management. Aggregated data to analyze stress and burnout levels in teams.
What science says.
Honestly.
WHOOP accuracy varies depending on metric. It is important for a researcher to understand where data is reliable and where it is not.
| Metrics | Accuracy | Source | Status |
|---|---|---|---|
| Pulse (rest/sleep) | 99.7% | AIS, 2022 | ✓ Reliable |
| HRV RMSSD (night) | 99% | AIS, 2022 | ✓ Reliable |
| Total sleep time | −1.4 min offset | JMIR, 2024 | ✓ Reliable |
| Deep sleep | −9.3 min, feelings. 69.6% | Schyvens, 2025 | ~Acceptable |
| REM sleep | +21.0 min revaluation | JMIR, 2024 | ⚠ Be careful |
| Awakenings | specificity 51% | Schyvens, 2025 | ✗ Weak point |
| HR in training | lag up to 50 beats/min | Community | ✗ Unreliable |
WHOOP measures HRV only during the deep sleep window - not continuously. Recovery Score and Strain are proprietary algorithms without open validation. For rigorous studies, work with raw metrics (HRV, RHR, sleep stages) rather than composite scores.
What's inside.
Complete field map.
Before you start exporting, it is important to understand what exactly you will receive and in what structure.
Official export
via the app
The easiest way. The whole story in one request. Recommended as a first step for any researcher.
WHOOP
App Settings
whoop.com
Export once every 24 hours
→ ZIP 30 min - 2 h
Main table. Each line is one biological cycle. HRV, resting heart rate, Recovery Score, Strain, calories, sleep.
MAIN · START HEREDetailing every dream and nap. Stages in minutes, efficiency, violations, latency.
DREAMAll recorded activities. Type, heart rate zones, Strain, calories. Without Strength Trainer.
LOAD · Without powerDiary tags: alcohol, caffeine, stress, medications. A valuable source for correlation analysis.
BEHAVIOR# Load the main table import pandas as pd cycles = pd.read_csv('physiological_cycles.csv') # Convert timestamps to UTC cycles['cycle_start'] = pd.to_datetime( cycles['cycle_start'], utc=True ) # Convert to local time zone cycles['cycle_start'] = cycles['cycle_start'].dt.tz_convert( 'Europe/Moscow' ) print(cycles[['cycle_start', 'hrv_rmssd_milli', 'resting_heart_rate', 'recovery_score']].head())
Whoop2CSV —
without code, automatically
For those who need automation without programming. The service works through the official OAuth WHOOP - read-only, the password is not transmitted anywhere.
.com
with WHOOP OAuth redirect
access read only
period 7 / 30 / 90 days
Google Sheets auto upload weekly
- Customizable frequency
- Direct integration with Google Sheets
- Flexible field selection
- No 24 hour wait
- Maximum 90 days per request
- There is no complete history as in official exports
- Dependency on third party service
Official
WHOOP Developer API
For researchers who need automation, long-term monitoring of multiple participants, or integration into their own analytical pipeline.
.whoop.com For free
application + Redirect URI
+ Secret
scopes read:recovery
read:sleep…
Token
requests
import requests access_token = "YOUR_TOKEN" def get_all_recovery(start_date: str) -> list: """Get the entire Recovery history with pagination""" url = "https://api.prod.whoop.com/developer/v2/recovery" headers = {"Authorization": f"Bearer {access_token}"} results = [] params = {"limit": 25, "start": start_date} while True: response = requests.get(url, headers=headers, params=params) data = response.json() results.extend(data["records"]) # Pagination via next_token if not data.get("next_token"): break params["next_token"] = data["next_token"] return results history = get_all_recovery("2023-01-01T00:00:00Z") print(f"Records received: {len(history)}")
Rate limit - about 1000 requests/hour. For multi-user studies (>10 participants), please request a limit increase: support@developer.whoop.com. Addtime.sleep(1) between successive requests.
Python libraries:
whoopy and whoop-data
from whoopy import WhoopClient client = WhoopClient(client_id="...", client_secret="...") # Entire sleep history as a DataFrame sleep_df = client.sleep.get_dataframe( start="2023-01-01", end="2025-03-01" ) # Correlation of HRV and deep sleep correlation = sleep_df['hrv_rmssd_milli'].corr( sleep_df['slow_wave_duration'] ) print(f"Correlation of HRV and deep sleep: {correlation:.3f}")
Uses reverse engineering of internal WHOOP API. Violates the Terms of Service. Subject to change without notice. Theoretically, there is a risk of account blocking. Use consciously.
from whoop_data import WhoopClient client = WhoopClient( username="email@example.com", password="password" ) # HR every 6 seconds per week hr_raw = client.get_heart_rate( from_date="2024-01-01", to_date="2024-01-07", frequency="6" # "6", "60" or "600" )
Integration
with Apple Health
Integrations
→ Connect
categories Allow
Applications control
permissions
HRV is not transferred between platforms - different units: WHOOP uses RMSSD (ms), Apple Health uses SDNN (ms). Synchronization is not instantaneous, works in the background. To export from Apple Health to a custom format, use the application Health Auto Export.
Automated
self-hosted pipeline
For long-term studies with multiple participants and the need to store data on your own infrastructure.
Self-hosted server on Docker. Automatically downloads data from all connected accounts daily. Export to AWS S3, local CSV/JSON. For multi-user research.
Python application with support for PostgreSQL/SQLite, CSV/JSON/Excel, cron synchronization. For personal research database.
Which method to choose
| Method | Complexity | Automation | Story | Detail | Status |
|---|---|---|---|---|---|
| Official export (app) | ★☆☆☆☆ | Manual | All | Aggregates | ✓ Official |
| Whoop2CSV | ★☆☆☆☆ | Google Sheets | 90 days | Aggregates | ✓ Official |
| Official API | ★★★☆☆ | Yes | All | Aggregates | ✓ Official |
| Python whoopy | ★★★☆☆ | Yes (cron) | All | Aggregates | ✓ Official |
| Python whoop-data | ★★★☆☆ | Yes | All | HR 6-sec | ⚠ Unofficial |
| Self-hosted pipeline | ★★★★★ | Yes (server) | All | Aggregates | ✓ Official |
For the novice researcher: start with official export through the application. In 10 minutes you will have the entire history in CSV. Further - whoopy for automation.
What to do next with the data
Open physiological_cycles.csv. Create three simple graphs:
- HRV over time - recovery and stress patterns are visible
- Dependence of Recovery Score on sleep time
- Strain of the current day vs Recovery of the next morning
Download all four CSVs. Convert timestamps to datetime based on time zone. Create a single table using merge based on the cycle date.
- Autocorrelation HRV
- Anomaly detection via z-score
- Correlation analysis of journal.csv with Recovery
Work only with raw metrics: HRV (RMSSD), resting heart rate, sleep stages in minutes. Avoid Recovery Score and Strain as dependent variables - proprietary algorithms without open validation.
- All timestamps are ISO UTC
- When synchronizing with EEG, questionnaires or behavioral data, a single time zone is required
Honest limits
WHOOP for Science
Please indicate these limitations in the methodological section of any publication using WHOOP data.
- Longitudinal monitoring in real conditions
- Behavioral research (weeks, months)
- Recovery patterns over long horizons
- Cohort studies (multiple participants)
- Coaching and Application Programs
- Detection of COVID patterns
- Research requiring beat-to-beat HRV
- Accurate staging of sleep (especially REM and awakening)
- Custom analytics of physiological signals
- Intraday continuous HRV
- Laboratory conditions with high precision
- Research with high-intensity loads
For tasks requiring beat-to-beat HRV or raw signals, consider Oura Ring (more open API, CCC = 0.99) or specialized hardware (Polar H10 + Elite HRV, Zephyr BioHarness).