{
  "opencollection": "1.0.0",
  "info": {
    "name": "WHOOP API",
    "version": "2.0.0"
  },
  "items": [
    {
      "info": {
        "name": "Activity ID Mapping",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get V2 UUID for V1 Activity ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v1/activity-mapping/:activityV1Id",
            "params": [
              {
                "name": "activityV1Id",
                "value": "12345678",
                "type": "path",
                "description": "V1 Activity ID"
              }
            ]
          },
          "docs": "Lookup the V2 UUID for a given V1 activity ID"
        }
      ]
    },
    {
      "info": {
        "name": "Cycle",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Cycle",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/cycle/:cycleId",
            "params": [
              {
                "name": "cycleId",
                "value": "",
                "type": "path",
                "description": "ID of the cycle to retrieve"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the cycle for the specified ID"
        },
        {
          "info": {
            "name": "List Cycle",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/cycle",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Limit on the number of cycles returned"
              },
              {
                "name": "start",
                "value": "",
                "type": "query",
                "description": "Return cycles that occurred after or during (inclusive) this time. If not specified, the response will not filter cycles by a minimum time."
              },
              {
                "name": "end",
                "value": "",
                "type": "query",
                "description": "Return cycles that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`."
              },
              {
                "name": "nextToken",
                "value": "",
                "type": "query",
                "description": "Optional next token from the previous response to get the next page. If not provided, the first page in the collection is returned"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all physiological cycles for a user, paginated. Results are sorted by start time in descending order."
        },
        {
          "info": {
            "name": "List Sleep",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/cycle/:cycleId/sleep",
            "params": [
              {
                "name": "cycleId",
                "value": "",
                "type": "path",
                "description": "ID of the cycle to retrieve sleep for"
              }
            ]
          },
          "docs": "Get the sleep for the specified cycle ID"
        }
      ]
    },
    {
      "info": {
        "name": "Partner",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Test Data for Partner Development",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.prod.whoop.com/developer/v2/partner/development/add-test-data",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Generates test user and lab requisition data for partner integration testing. This endpoint is only available in non-production environments"
        },
        {
          "info": {
            "name": "Get a Lab Requisition by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/partner/requisition/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the lab requisition"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Retrieves a lab requisition with its associated service requests by its unique identifier. The requesting partner must be an owner of the lab requisition."
        },
        {
          "info": {
            "name": "Get a Service Request by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/partner/service-request/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the service request"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Retrieves a service request by its unique identifier. The requesting partner must be an owner of the service request."
        },
        {
          "info": {
            "name": "Request a Partner Client Token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.prod.whoop.com/developer/v2/partner/token",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Exchanges partner client credentials for an access token."
        },
        {
          "info": {
            "name": "Update Lab Requisition Service Request Statuses",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.prod.whoop.com/developer/v2/partner/requisition/:id/status",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the lab requisition"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Updates the task business status on all service requests belonging to the requisition. The requesting partner must be an owner."
        },
        {
          "info": {
            "name": "Update Service Request Status",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.prod.whoop.com/developer/v2/partner/service-request/:id/status",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the service request"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Updates the business status of a service request task. The requesting partner must be an owner of the service request."
        },
        {
          "info": {
            "name": "Create Diagnostic Report Results for a Service Request",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.prod.whoop.com/developer/v2/partner/service-request/:id/results",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the service request"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "https://api.prod.whoop.com/developer/v2/partner/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Creates a diagnostic report with results for a service request. The requesting partner must be an owner of the service request."
        }
      ]
    },
    {
      "info": {
        "name": "Recovery",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Recovery",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/recovery",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Limit on the number of recoveries returned"
              },
              {
                "name": "start",
                "value": "",
                "type": "query",
                "description": "Return recoveries that occurred after or during (inclusive) this time. If not specified, the response will not filter recoveries by a minimum time."
              },
              {
                "name": "end",
                "value": "",
                "type": "query",
                "description": "Return recoveries that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`."
              },
              {
                "name": "nextToken",
                "value": "",
                "type": "query",
                "description": "Optional next token from the previous response to get the next page. If not provided, the first page in the collection is returned"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all recoveries for a user, paginated. Results are sorted by start time of the related sleep in descending order."
        },
        {
          "info": {
            "name": "List Recovery",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/cycle/:cycleId/recovery",
            "params": [
              {
                "name": "cycleId",
                "value": "",
                "type": "path",
                "description": "ID of the cycle to retrieve"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the recovery for a cycle"
        }
      ]
    },
    {
      "info": {
        "name": "Sleep",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Sleep",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/activity/sleep/:sleepId",
            "params": [
              {
                "name": "sleepId",
                "value": "",
                "type": "path",
                "description": "ID of the sleep to retrieve"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the sleep for the specified ID"
        },
        {
          "info": {
            "name": "List Sleep",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/activity/sleep",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Limit on the number of sleeps returned"
              },
              {
                "name": "start",
                "value": "",
                "type": "query",
                "description": "Return sleeps that occurred after or during (inclusive) this time. If not specified, the response will not filter sleeps by a minimum time."
              },
              {
                "name": "end",
                "value": "",
                "type": "query",
                "description": "Return sleeps that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`."
              },
              {
                "name": "nextToken",
                "value": "",
                "type": "query",
                "description": "Optional next token from the previous response to get the next page. If not provided, the first page in the collection is returned"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all sleeps for a user, paginated. Results are sorted by start time in descending order."
        }
      ]
    },
    {
      "info": {
        "name": "User",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get User Body Measurements",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/user/measurement/body",
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Retrieves the body measurements (height, weight, max heart rate) for the authenticated user."
        },
        {
          "info": {
            "name": "Get Basic User Profile",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/user/profile/basic",
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Retrieves the basic profile information (name, email) for the authenticated user."
        },
        {
          "info": {
            "name": "Delete Access",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.prod.whoop.com/developer/v2/user/access",
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "Workout",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Workout",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/activity/workout/:workoutId",
            "params": [
              {
                "name": "workoutId",
                "value": "",
                "type": "path",
                "description": "ID of the workout to retrieve"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the workout for the specified ID"
        },
        {
          "info": {
            "name": "List Workout",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.prod.whoop.com/developer/v2/activity/workout",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Limit on the number of workouts returned"
              },
              {
                "name": "start",
                "value": "",
                "type": "query",
                "description": "Return workouts that occurred after or during (inclusive) this time. If not specified, the response will not filter workouts by a minimum time."
              },
              {
                "name": "end",
                "value": "",
                "type": "query",
                "description": "Return workouts that intersect this time or ended before (exclusive) this time. If not specified, `end` will be set to `now`."
              },
              {
                "name": "nextToken",
                "value": "",
                "type": "query",
                "description": "Optional next token from the previous response to get the next page. If not provided, the first page in the collection is returned"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "https://api.prod.whoop.com/oauth/oauth2/auth",
              "accessTokenUrl": "https://api.prod.whoop.com/oauth/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all workouts for a user, paginated. Results are sorted by start time in descending order."
        }
      ]
    }
  ],
  "bundled": true
}