### GET /v2/cycle Source: https://developer.whoop.com/api Retrieves a paginated list of physiological cycles for a user, sorted by start time in descending order. ```APIDOC ## GET /v2/cycle ### Description Get all physiological cycles for a user, paginated. Results are sorted by start time in descending order. ### Method GET ### Endpoint https://api.prod.whoop.com/developer/v2/cycle ### Parameters #### Query Parameters - **limit** (integer) - Optional - Limit on the number of cycles returned (Default: 10, Max: 25) - **start** (string) - Optional - Return cycles that occurred after or during (inclusive) this time. - **end** (string) - Optional - Return cycles that intersect this time or ended before (exclusive) this time. - **nextToken** (string) - Optional - Next token from the previous response to get the next page. ### Response #### Success Response (200) - **records** (array) - List of cycle objects - **next_token** (string) - Token for the next page of results #### Response Example { "records": [ { "id": 93845, "user_id": 10129, "start": "2022-04-24T02:25:44.774Z", "end": "2022-04-24T10:25:44.774Z", "score": { "strain": 5.2951527, "kilojoule": 8288.297 } } ], "next_token": "MTIzOjEyMzEyMw" } ``` -------------------------------- ### Get Workout Collection Source: https://developer.whoop.com/api Retrieves a paginated list of all workouts for a user, sorted by start time in descending order. Requires read:workout authorization. ```APIDOC ## GET /v2/activity/workout ### Description Get all workouts for a user, paginated. Results are sorted by start time in descending order. ### Method GET ### Endpoint /v2/activity/workout ### Parameters #### Query Parameters - **limit** (integer) - Optional - <= 25 Default: 10 Limit on the number of workouts returned - **start** (string) - Optional - Return workouts that occurred after or during (inclusive) this time. If not specified, the response will not filter workouts by a minimum time. - **end** (string) - Optional - Return workouts that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`. - **nextToken** (string) - Optional - Next token from the previous response to get the next page. If not provided, the first page in the collection is returned ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **records** (array) - Description - **id** (string) - Description - **cycle_id** (integer) - Description - **v1_id** (integer) - Description - **user_id** (integer) - Description - **created_at** (string) - Description - **updated_at** (string) - Description - **start** (string) - Description - **end** (string) - Description - **timezone_offset** (string) - Description - **nap** (boolean) - Description - **score_state** (string) - Description - **score** (object) - Description - **stage_summary** (object) - Description - **total_in_bed_time_milli** (integer) - Description - **total_awake_time_milli** (integer) - Description - **total_no_data_time_milli** (integer) - Description - **total_light_sleep_time_milli** (integer) - Description - **total_slow_wave_sleep_time_milli** (integer) - Description - **total_rem_sleep_time_milli** (integer) - Description - **sleep_cycle_count** (integer) - Description - **disturbance_count** (integer) - Description - **sleep_needed** (object) - Description - **baseline_milli** (integer) - Description - **need_from_sleep_debt_milli** (integer) - Description - **need_from_recent_strain_milli** (integer) - Description - **need_from_recent_nap_milli** (integer) - Description - **respiratory_rate** (number) - Description - **sleep_performance_percentage** (integer) - Description - **sleep_consistency_percentage** (integer) - Description - **sleep_efficiency_percentage** (number) - Description - **next_token** (string) - Description #### Response Example ```json { "records": [ { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "cycle_id": 93845, "v1_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", "nap": false, "score_state": "SCORED", "score": { "stage_summary": { "total_in_bed_time_milli": 30272735, "total_awake_time_milli": 1403507, "total_no_data_time_milli": 0, "total_light_sleep_time_milli": 14905851, "total_slow_wave_sleep_time_milli": 6630370, "total_rem_sleep_time_milli": 5879573, "sleep_cycle_count": 3, "disturbance_count": 12 }, "sleep_needed": { "baseline_milli": 27395716, "need_from_sleep_debt_milli": 352230, "need_from_recent_strain_milli": 208595, "need_from_recent_nap_milli": -12312 }, "respiratory_rate": 16.11328125, "sleep_performance_percentage": 98, "sleep_consistency_percentage": 90, "sleep_efficiency_percentage": 91.69533848 } } ], "next_token": "MTIzOjEyMzEyMw" } ``` ``` -------------------------------- ### GET /v2/user/profile/basic Source: https://developer.whoop.com/api Retrieves the basic profile information (name, email) for the authenticated user. ```APIDOC ## GET /v2/user/profile/basic ### Description Retrieves the basic profile information (name, email) for the authenticated user. ### Method GET ### Endpoint /v2/user/profile/basic ### Response #### Success Response (200) - **user_id** (integer) - Unique user identifier - **email** (string) - User email address - **first_name** (string) - User first name - **last_name** (string) - User last name #### Response Example { "user_id": 10129, "email": "jsmith123@whoop.com", "first_name": "John", "last_name": "Smith" } ``` -------------------------------- ### GET /v1/activity-mapping/{activityV1Id} Source: https://developer.whoop.com/api Lookup the V2 UUID for a given V1 activity ID. ```APIDOC ## GET /v1/activity-mapping/{activityV1Id} ### Description Lookup the V2 UUID for a given V1 activity ID. ### Method GET ### Endpoint /v1/activity-mapping/{activityV1Id} ### Parameters #### Path Parameters - **activityV1Id** (integer) - Required - V1 Activity ID ### Response #### Success Response (200) - **v2_activity_id** (string) - The V2 UUID for the activity #### Response Example { "v2_activity_id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8" } ``` -------------------------------- ### GET /v2/recovery Source: https://developer.whoop.com/api Retrieves a paginated list of recovery records for a user, sorted by the start time of the related sleep. ```APIDOC ## GET /v2/recovery ### Description Get all recoveries for a user, paginated. Results are sorted by start time of the related sleep in descending order. ### Method GET ### Endpoint https://api.prod.whoop.com/developer/v2/recovery ### Parameters #### Query Parameters - **limit** (integer) - Optional - Limit on the number of recoveries returned (Default: 10, Max: 25) - **start** (string) - Optional - Return recoveries that occurred after or during (inclusive) this time. - **end** (string) - Optional - Return recoveries that intersect this time or ended before (exclusive) this time. - **nextToken** (string) - Optional - Next token from the previous response to get the next page. ``` -------------------------------- ### GET /v2/activity/sleep Source: https://developer.whoop.com/api Retrieves a paginated collection of all sleeps for a user, sorted by start time in descending order. Requires OAuth with 'read:sleep' scope. ```APIDOC ## GET /v2/activity/sleep ### Description Get all sleeps for a user, paginated. Results are sorted by start time in descending order. ### Method GET ### Endpoint /v2/activity/sleep ### Parameters #### Query Parameters - **limit** (integer) - Optional - Limit on the number of sleeps returned (<= 25, default: 10). - **start** (string) - Optional - Return sleeps that occurred after or during (inclusive) this time. If not specified, the response will not filter sleeps by a minimum time. - **end** (string) - Optional - Return sleeps that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`. - **nextToken** (string) - Optional - Next token from the previous response to get the next page. If not provided, the first page in the collection is returned. ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **records** (array) - List of sleep records. - **next_token** (string) - Token for pagination. #### Response Example ```json { "records": [ { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "cycle_id": 93845, "v1_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", "nap": false, "score_state": "SCORED", "score": { "stage_summary": { "total_in_bed_time_milli": 30272735, "total_awake_time_milli": 1403507, "total_no_data_time_milli": 0, "total_light_sleep_time_milli": 14905851, "total_slow_wave_sleep_time_milli": 6630370, "total_rem_sleep_time_milli": 5879573, "sleep_cycle_count": 3, "disturbance_count": 12 }, "sleep_needed": { "baseline_milli": 27395716, "need_from_sleep_debt_milli": 352230, "need_from_recent_strain_milli": 208595, "need_from_recent_nap_milli": -12312 }, "respiratory_rate": 16.11328125, "sleep_performance_percentage": 98, "sleep_consistency_percentage": 90, "sleep_efficiency_percentage": 91.69533848 } } ], "next_token": "MTIzOjEyMzEyMw" } ``` ``` -------------------------------- ### GET /websites/developer_whoop_api Source: https://developer.whoop.com/api Retrieves a list of user activity records. Supports pagination via next_token. ```APIDOC ## GET /websites/developer_whoop_api ### Description Retrieves a list of user activity records, including details such as duration, distance, heart rate, and altitude changes. This endpoint supports pagination. ### Method GET ### Endpoint /websites/developer_whoop_api ### Query Parameters - **next_token** (string) - Optional - A token to retrieve the next page of results. ### Response #### Success Response (200) - **records** (array) - An array of activity records. - **id** (string) - Unique identifier for the activity. - **v1_id** (integer) - Legacy ID for the activity. - **user_id** (integer) - The ID of the user associated with the activity. - **created_at** (string) - Timestamp when the record was created (ISO 8601 format). - **updated_at** (string) - Timestamp when the record was last updated (ISO 8601 format). - **start** (string) - Timestamp when the activity started (ISO 8601 format). - **end** (string) - Timestamp when the activity ended (ISO 8601 format). - **timezone_offset** (string) - The timezone offset from UTC (e.g., "-05:00"). - **sport_name** (string) - The name of the sport (e.g., "running"). - **score_state** (string) - The scoring state of the activity (e.g., "SCORED"). - **score** (object) - Object containing detailed scoring metrics. - **strain** (number) - The strain score for the activity. - **average_heart_rate** (integer) - The average heart rate during the activity. - **max_heart_rate** (integer) - The maximum heart rate recorded during the activity. - **kilojoule** (number) - Energy expenditure in kilojoules. - **percent_recorded** (integer) - Percentage of the activity that was recorded. - **distance_meter** (number) - Distance covered in meters. - **altitude_gain_meter** (number) - Altitude gained in meters. - **altitude_change_meter** (number) - Net change in altitude in meters. - **zone_durations** (object) - Durations spent in different heart rate zones (in milliseconds). - **zone_zero_milli** (integer) - **zone_one_milli** (integer) - **zone_two_milli** (integer) - **zone_three_milli** (integer) - **zone_four_milli** (integer) - **zone_five_milli** (integer) - **sport_id** (integer) - The ID of the sport. - **next_token** (string) - A token to retrieve the next page of results, if available. #### Response Example ```json { "records": [ { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "v1_id": 1043, "user_id": 9012, "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", "sport_name": "running", "score_state": "SCORED", "score": { "strain": 8.2463, "average_heart_rate": 123, "max_heart_rate": 146, "kilojoule": 1569.34033203125, "percent_recorded": 100, "distance_meter": 1772.77035916, "altitude_gain_meter": 46.64384460449, "altitude_change_meter": -0.781372010707855, "zone_durations": { "zone_zero_milli": 300000, "zone_one_milli": 600000, "zone_two_milli": 900000, "zone_three_milli": 900000, "zone_four_milli": 600000, "zone_five_milli": 300000 } }, "sport_id": 1 } ], "next_token": "MTIzOjEyMzEyMw" } ``` ``` -------------------------------- ### GET /v2/cycle/{cycleId} Source: https://developer.whoop.com/api Get the cycle for the specified ID. ```APIDOC ## GET /v2/cycle/{cycleId} ### Description Get the cycle for the specified ID. ### Method GET ### Endpoint /v2/cycle/{cycleId} ### Parameters #### Path Parameters - **cycleId** (integer) - Required - ID of the cycle to retrieve ``` -------------------------------- ### GET /v2/user/measurement/body Source: https://developer.whoop.com/api Retrieves the body measurements (height, weight, max heart rate) for the authenticated user. ```APIDOC ## GET /v2/user/measurement/body ### Description Retrieves the body measurements (height, weight, max heart rate) for the authenticated user. ### Method GET ### Endpoint /v2/user/measurement/body ### Response #### Success Response (200) - **height_meter** (number) - Height in meters - **weight_kilogram** (number) - Weight in kilograms - **max_heart_rate** (integer) - Maximum heart rate #### Response Example { "height_meter": 1.8288, "weight_kilogram": 90.7185, "max_heart_rate": 200 } ``` -------------------------------- ### Get Workout By ID Source: https://developer.whoop.com/api Retrieves a specific workout by its unique ID. Requires read:workout authorization. ```APIDOC ## GET /v2/activity/workout/{workoutId} ### Description Get the workout for the specified ID. ### Method GET ### Endpoint /v2/activity/workout/{workoutId} ### Parameters #### Path Parameters - **workoutId** (string) - Required - ID of the workout to retrieve ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **id** (string) - Description - **v1_id** (integer) - Description - **user_id** (integer) - Description - **created_at** (string) - Description - **updated_at** (string) - Description - **start** (string) - Description - **end** (string) - Description - **timezone_offset** (string) - Description - **sport_name** (string) - Description - **score_state** (string) - Description - **score** (object) - Description - **strain** (number) - Description - **average_heart_rate** (integer) - Description - **max_heart_rate** (integer) - Description - **kilojoule** (number) - Description - **percent_recorded** (integer) - Description - **distance_meter** (number) - Description - **altitude_gain_meter** (number) - Description - **altitude_change_meter** (number) - Description - **zone_durations** (object) - Description - **zone_zero_milli** (integer) - Description - **zone_one_milli** (integer) - Description - **zone_two_milli** (integer) - Description - **zone_three_milli** (integer) - Description - **zone_four_milli** (integer) - Description - **zone_five_milli** (integer) - Description - **sport_id** (integer) - Description #### Response Example ```json { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "v1_id": 1043, "user_id": 9012, "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", "sport_name": "running", "score_state": "SCORED", "score": { "strain": 8.2463, "average_heart_rate": 123, "max_heart_rate": 146, "kilojoule": 1569.34033203125, "percent_recorded": 100, "distance_meter": 1772.77035916, "altitude_gain_meter": 46.64384460449, "altitude_change_meter": -0.781372010707855, "zone_durations": { "zone_zero_milli": 300000, "zone_one_milli": 600000, "zone_two_milli": 900000, "zone_three_milli": 900000, "zone_four_milli": 600000, "zone_five_milli": 300000 } }, "sport_id": 1 } ``` ``` -------------------------------- ### GET /v2/cycle/{cycleId}/sleep Source: https://developer.whoop.com/api Retrieves detailed sleep metrics for a specific cycle ID. ```APIDOC ## GET /v2/cycle/{cycleId}/sleep ### Description Get the sleep for the specified cycle ID. ### Method GET ### Endpoint https://api.prod.whoop.com/developer/v2/cycle/{cycleId}/sleep ### Parameters #### Path Parameters - **cycleId** (integer) - Required - ID of the cycle to retrieve sleep for ### Response #### Success Response (200) - **id** (string) - Sleep resource ID - **cycle_id** (integer) - Associated cycle ID - **score** (object) - Detailed sleep score metrics #### Response Example { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "cycle_id": 93845, "score": { "sleep_performance_percentage": 98, "sleep_efficiency_percentage": 91.69533848 } } ``` -------------------------------- ### GET /v2/activity/sleep/{sleepId} Source: https://developer.whoop.com/api Retrieves sleep data for a specific sleep ID. Requires OAuth with 'read:sleep' scope. ```APIDOC ## GET /v2/activity/sleep/{sleepId} ### Description Get the sleep for the specified ID. ### Method GET ### Endpoint /v2/activity/sleep/{sleepId} ### Parameters #### Path Parameters - **sleepId** (string) - Required - ID of the sleep to retrieve ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **id** (string) - Unique identifier for the sleep record. - **cycle_id** (integer) - The cycle ID associated with this sleep. - **v1_id** (integer) - The v1 ID associated with this sleep. - **user_id** (integer) - The user ID. - **created_at** (string) - Timestamp when the record was created. - **updated_at** (string) - Timestamp when the record was last updated. - **start** (string) - Timestamp when the sleep started. - **end** (string) - Timestamp when the sleep ended. - **timezone_offset** (string) - The timezone offset from UTC. - **nap** (boolean) - Indicates if the sleep was a nap. - **score_state** (string) - The scoring state of the sleep. - **score** (object) - Object containing detailed sleep scores. - **stage_summary** (object) - Summary of sleep stages. - **sleep_needed** (object) - Details on sleep needed. - **respiratory_rate** (number) - Respiratory rate during sleep. - **sleep_performance_percentage** (number) - Sleep performance percentage. - **sleep_consistency_percentage** (number) - Sleep consistency percentage. - **sleep_efficiency_percentage** (number) - Sleep efficiency percentage. #### Response Example ```json { "id": "ecfc6a15-4661-442f-a9a4-f160dd7afae8", "cycle_id": 93845, "v1_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", "nap": false, "score_state": "SCORED", "score": { "stage_summary": { "total_in_bed_time_milli": 30272735, "total_awake_time_milli": 1403507, "total_no_data_time_milli": 0, "total_light_sleep_time_milli": 14905851, "total_slow_wave_sleep_time_milli": 6630370, "total_rem_sleep_time_milli": 5879573, "sleep_cycle_count": 3, "disturbance_count": 12 }, "sleep_needed": { "baseline_milli": 27395716, "need_from_sleep_debt_milli": 352230, "need_from_recent_strain_milli": 208595, "need_from_recent_nap_milli": -12312 }, "respiratory_rate": 16.11328125, "sleep_performance_percentage": 98, "sleep_consistency_percentage": 90, "sleep_efficiency_percentage": 91.69533848 } } ``` ``` -------------------------------- ### GET /v2/cycle/{cycleId}/recovery Source: https://developer.whoop.com/api Retrieves the recovery data for a specific cycle ID. Requires OAuth with 'read:recovery' scope. ```APIDOC ## GET /v2/cycle/{cycleId}/recovery ### Description Get the recovery for a cycle. ### Method GET ### Endpoint /v2/cycle/{cycleId}/recovery ### Parameters #### Path Parameters - **cycleId** (integer) - Required - ID of the cycle to retrieve ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **records** (array) - List of recovery records. - **next_token** (string) - Token for pagination. #### Response Example ```json { "records": [ { "cycle_id": 93845, "sleep_id": "123e4567-e89b-12d3-a456-426614174000", "user_id": 10129, "created_at": "2022-04-24T11:25:44.774Z", "updated_at": "2022-04-24T14:25:44.774Z", "score_state": "SCORED", "score": { "user_calibrating": false, "recovery_score": 44, "resting_heart_rate": 64, "hrv_rmssd_milli": 31.813562, "spo2_percentage": 95.6875, "skin_temp_celsius": 33.7 } } ], "next_token": "MTIzOjEyMzEyMw" } ``` ``` -------------------------------- ### DELETE /v2/user/access Source: https://developer.whoop.com/api Revoke the access token granted by the user. ```APIDOC ## DELETE /v2/user/access ### Description Revoke the access token granted by the user. If the associated OAuth client is configured to receive webhooks, it will no longer receive them for this user. ### Method DELETE ### Endpoint /v2/user/access ### Response #### Success Response (204) - No response body ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.