---
title: "GET /v2/activity/sleep"
method: GET
path: "/v2/activity/sleep"
tags: ["Sleep"]
---

# GET /v2/activity/sleep

`GET /v2/activity/sleep`

## Request

- Base URL: `https://api.prod.whoop.com/developer`
- URL: `https://api.prod.whoop.com/developer/v2/activity/sleep`
- Auth: OAuth 2
  - Authorization code: `https://api.prod.whoop.com/oauth/oauth2/auth`
  - Token URL: `https://api.prod.whoop.com/oauth/oauth2/token` scopes: `read:sleep`
- TypeScript: <https://skmtc.dev/whoop/apis/whoop-api/docs/v2/activity/sleep/get.ts> (a function with typed inputs; its response is checked against the schema)

Get all sleeps for a user, paginated. Results are sorted by start time in descending order.

## Query parameters

- `limit` integer
- `start` string, date-time
- `end` string, date-time
- `nextToken` string

## Response `200`

Successful request

- PaginatedSleepResponse
  - `records` Sleep[]: The collection of records in this page.
    - `id` string, uuid, required: Unique identifier for the sleep activity
    - `cycle_id` integer, required: Unique identifier for the cycle this sleep belongs to
    - `v1_id` integer: Previous generation identifier for the activity. Will not exist past 09/01/2025
    - `user_id` integer, required: The WHOOP User who performed the sleep activity
    - `created_at` string, date-time, required: The time the sleep activity was recorded in WHOOP
    - `updated_at` string, date-time, required: The time the sleep activity was last updated in WHOOP
    - `start` string, date-time, required: Start time bound of the sleep
    - `end` string, date-time, required: End time bound of the sleep
    - `timezone_offset` string, required: The user's timezone offset at the time the sleep was recorded. Follows format for Time Zone Designator (TZD) - '+hh:mm', '-hh:mm', or 'Z'.
    - `nap` boolean, required: If true, this sleep activity was a nap for the user
    - `score_state` 'SCORED' | 'PENDING_SCORE' | 'UNSCORABLE', required: `SCORED` means the sleep activity was scored and the measurement values will be present. `PENDING_SCORE` means WHOOP is currently evaluating the sleep activity. `UNSCORABLE` means this activity could not be scored for some reason - commonly because there is not enough user metric data for the time range.
    - `score` SleepScore: WHOOP's measurements and evaluation of the sleep activity. Only present if the Sleep State is `SCORED`
      - `stage_summary` SleepStageSummary, required: Summary of the sleep stages
        - `total_in_bed_time_milli` integer, required: Total time the user spent in bed, in milliseconds
        - `total_awake_time_milli` integer, required: Total time the user spent awake, in milliseconds
        - `total_no_data_time_milli` integer, required: Total time WHOOP did not receive data from the user during the sleep, in milliseconds
        - `total_light_sleep_time_milli` integer, required: Total time the user spent in light sleep, in milliseconds
        - `total_slow_wave_sleep_time_milli` integer, required: Total time the user spent in Slow Wave Sleep (SWS), in milliseconds
        - `total_rem_sleep_time_milli` integer, required: Total time the user spent in Rapid Eye Movement (REM) sleep, in milliseconds
        - `sleep_cycle_count` integer, required: Number of sleep cycles during the user's sleep
        - `disturbance_count` integer, required: Number of times the user was disturbed during sleep
      - `sleep_needed` SleepNeeded, required: Breakdown of the amount of sleep a user needed before the sleep activity. Summing all individual components results in the amount of sleep the user needed prior to this sleep activity
        - `baseline_milli` integer, required: The amount of sleep a user needed based on historical trends
        - `need_from_sleep_debt_milli` integer, required: The difference between the amount of sleep the user's body required and the amount the user actually got
        - `need_from_recent_strain_milli` integer, required: Additional sleep need accrued based on the user's strain
        - `need_from_recent_nap_milli` integer, required: Reduction in sleep need accrued based on the user's recent nap activity (negative value or zero)
      - `respiratory_rate` number, float: The user's respiratory rate during the sleep.
      - `sleep_performance_percentage` number, float: A percentage (0-100%) of the time a user is asleep over the amount of sleep the user needed. May not be reported if WHOOP does not have enough data about a user yet to calculate Sleep Need.
      - `sleep_consistency_percentage` number, float: Percentage (0-100%) of how similar this sleep and wake times compared to the previous day. May not be reported if WHOOP does not have enough sleep data about a user yet to understand consistency.
      - `sleep_efficiency_percentage` number, float: A percentage (0-100%) of the time you spend in bed that you are actually asleep.
  - `next_token` string: A token that can be used on the next request to access the next page of records. If the token is not present, there are no more records in the collection.

## Other responses

- `400`: Client error constructing the request
- `401`: Invalid authorization
- `429`: Request rejected due to rate limiting
- `500`: Server error occurred while making request

## Changes

- **2025-11-09** `62a1fac08a6c`: 1 info
  - added the required property `records/items/cycle_id` to the response with the `200` status
- **2025-07-14** `c00de65ac5e0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/whoop/apis/whoop-api/changes/v2/activity/sleep/get.md)

---

[API](https://skmtc.dev/whoop/apis/whoop-api.md) - [All operations](https://skmtc.dev/whoop/apis/whoop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/whoop/apis/whoop-api/revisions/2add8c1207db?raw)
