WHOOP Recovery
Schema for a WHOOP Recovery score. Recovery is calculated each morning after the prior sleep, expressing how prepared the member's body is to take on Strain. It is derived from heart-rate variability (RMSSD), resting heart rate, and sleep quality.
FitnessWearablesHealthRecoverySleepStrainHeart RateWorkoutBiometrics
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.com/schemas/whoop-co/whoop-recovery-schema.json",
"title": "WHOOP Recovery",
"description": "Schema for a WHOOP Recovery score. Recovery is calculated each morning after the prior sleep, expressing how prepared the member's body is to take on Strain. It is derived from heart-rate variability (RMSSD), resting heart rate, and sleep quality.",
"type": "object",
"required": ["cycle_id", "sleep_id", "user_id", "created_at", "updated_at", "score_state"],
"properties": {
"cycle_id": {"type": "integer", "format": "int64", "description": "Physiological cycle this Recovery is for."},
"sleep_id": {"type": "string", "format": "uuid", "description": "ID of the Sleep activity the Recovery is based on."},
"user_id": {"type": "integer", "format": "int64", "description": "WHOOP user the Recovery belongs to."},
"created_at": {"type": "string", "format": "date-time"},
"updated_at": {"type": "string", "format": "date-time"},
"score_state": {"type": "string", "enum": ["SCORED", "PENDING_SCORE", "UNSCORABLE"]},
"score": {
"type": "object",
"required": ["user_calibrating", "recovery_score", "resting_heart_rate", "hrv_rmssd_milli"],
"properties": {
"user_calibrating": {"type": "boolean", "description": "True if WHOOP is still calibrating baselines for the user."},
"recovery_score": {"type": "number", "format": "float", "minimum": 0, "maximum": 100, "description": "Percentage 0-100 expressing readiness."},
"resting_heart_rate": {"type": "number", "format": "float", "description": "Resting heart rate in bpm."},
"hrv_rmssd_milli": {"type": "number", "format": "float", "description": "Heart-rate variability RMSSD in milliseconds."},
"spo2_percentage": {"type": "number", "format": "float", "description": "Average SpO2 measured during sleep."},
"skin_temp_celsius": {"type": "number", "format": "float", "description": "Skin temperature in Celsius."}
}
}
}
}