{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://api-evangelist.com/schemas/whoop-co/whoop-cycle-schema.json", "title": "WHOOP Cycle", "description": "Schema for a WHOOP physiological cycle, the foundational time-window WHOOP uses to compute daily Strain. A Cycle typically lasts ~24 hours from sleep-onset and contains a Strain score, average and max heart rate, and total energy expenditure in kilojoules.", "type": "object", "required": ["id", "user_id", "created_at", "updated_at", "start", "timezone_offset", "score_state"], "properties": { "id": {"type": "integer", "format": "int64", "description": "Unique identifier for the physiological cycle.", "example": 93845}, "user_id": {"type": "integer", "format": "int64", "description": "The WHOOP user the cycle belongs to.", "example": 10129}, "created_at": {"type": "string", "format": "date-time", "description": "Time the cycle was recorded in WHOOP."}, "updated_at": {"type": "string", "format": "date-time", "description": "Last time the cycle record was updated."}, "start": {"type": "string", "format": "date-time", "description": "ISO-8601 start of the cycle."}, "end": {"type": "string", "format": "date-time", "description": "ISO-8601 end of the cycle. Absent for the in-progress cycle."}, "timezone_offset": {"type": "string", "description": "Member-local timezone offset (e.g. -05:00).", "example": "-05:00"}, "score_state": {"type": "string", "enum": ["SCORED", "PENDING_SCORE", "UNSCORABLE"], "description": "Whether scoring has completed for the cycle."}, "score": { "type": "object", "description": "Cycle score. Present only when score_state = SCORED.", "required": ["strain", "average_heart_rate", "max_heart_rate", "kilojoule"], "properties": { "strain": {"type": "number", "format": "float", "minimum": 0, "maximum": 21, "description": "Cardiovascular load 0-21."}, "kilojoule": {"type": "number", "format": "float", "description": "Total energy expended over the cycle in kJ."}, "average_heart_rate": {"type": "integer", "description": "Average heart rate during the cycle (bpm)."}, "max_heart_rate": {"type": "integer", "description": "Maximum heart rate during the cycle (bpm)."} } } } }