{ "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 }