Cycle
The human body undergoes a biological rhythm of asleep, awake, asleep, awake. We often think of one repetition within a calendar day, such as Tuesday, April 19, 2022. However, calendar days and sleep patterns don't always align. Some people work when other people are sleeping. Some people don't go to sleep for at least 24 hours.
We always reference a member's activity in the context of a Physiological Cycle (known as Cycle for short)
rather than calendar days. When you request a member's latest Cycle, the member's current Cycle will only have a Start Time.
Cycles in the past have both a start and end time.
Step Count
The Cycle object includes an optional step_count field representing the total number of steps taken during the cycle. Like the
rest of the Cycle, it covers the Physiological Cycle rather than a calendar day, so it may not match a midnight-to-midnight step total.
It is part of the cycle data covered by the read:cycles scope — no additional scope is required.
- Returned on both
GET /v2/cycle/{cycleId}and the collection endpoint. - The member's current Cycle reports the steps taken so far, and updates as the Cycle continues.
nullwhen no step data exists for the cycle (e.g., device not worn for the full cycle).
Data Model
| id required | integer <int64> Unique identifier for the physiological cycle |
| user_id required | integer <int64> The WHOOP User for the physiological cycle |
| created_at required | string <date-time> The time the cycle was recorded in WHOOP |
| updated_at required | string <date-time> The time the cycle was last updated in WHOOP |
| start required | string <date-time> Start time bound of the cycle |
| end | string <date-time> End time bound of the cycle. If not present, the user is currently in this cycle |
| timezone_offset required | string The user's timezone offset at the time the cycle was recorded. Follows format for Time Zone Designator (TZD) - '+hh:mm', '-hh:mm', or 'Z'. |
| score_state required | string Enum: "SCORED" "PENDING_SCORE" "UNSCORABLE"
|
object (CycleScore) WHOOP's measurements and evaluation of the cycle. Only present if the score state is | |
| step_count | integer or null <int32> Total number of steps taken during the cycle. Null when no step data exists for the cycle (e.g. the device was not worn for the full cycle). |
{- "id": 93845,
- "user_id": 10129,
- "created_at": "2022-04-24T11:25:44.774Z",
- "updated_at": "2022-04-24T14:25:44.774Z",
- "start": "2022-04-24T02:25:44.774Z",
- "end": "2022-04-24T10:25:44.774Z",
- "timezone_offset": "-05:00",
- "score_state": "SCORED",
- "score": {
- "strain": 5.2951527,
- "kilojoule": 8288.297,
- "average_heart_rate": 68,
- "max_heart_rate": 141
}, - "step_count": 8234
}