WHOOP · Schema

WorkoutV2

A WHOOP workout activity with full details and scoring information

FitnessWearablesHealthRecoverySleepWorkoutStrainHeart RatePerformance

Properties

Name Type Description
id string Unique identifier for the workout activity
v1_id integer Previous generation identifier for the activity. Will not exist past 09/01/2025
user_id integer The WHOOP User who performed the workout
created_at string The time the workout activity was recorded in WHOOP
updated_at string The time the workout activity was last updated in WHOOP
start string Start time bound of the workout
end string End time bound of the workout
timezone_offset string The user's timezone offset at the time the workout was recorded. Follows format for Time Zone Designator (TZD) - '+hh:mm', '-hh:mm', or 'Z'.
sport_name string Name of the WHOOP Sport performed during the workout
score_state string `SCORED` means the workout activity was scored and the measurement values will be present. `PENDING_SCORE` means WHOOP is currently evaluating the workout activity. `UNSCORABLE` means this activity co
score object
sport_id integer ID of the WHOOP Sport performed during the workout. Will not exist past 09/01/2025
View JSON Schema on GitHub

JSON Schema

whoop-workoutv2-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/whoop/main/json-schema/whoop-workoutv2-schema.json",
  "title": "WorkoutV2",
  "description": "A WHOOP workout activity with full details and scoring information",
  "required": [
    "created_at",
    "end",
    "id",
    "score_state",
    "sport_name",
    "start",
    "timezone_offset",
    "updated_at",
    "user_id"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the workout activity",
      "format": "uuid",
      "example": "ecfc6a15-4661-442f-a9a4-f160dd7afae8"
    },
    "v1_id": {
      "type": "integer",
      "description": "Previous generation identifier for the activity. Will not exist past 09/01/2025",
      "format": "int64",
      "example": 1043
    },
    "user_id": {
      "type": "integer",
      "description": "The WHOOP User who performed the workout",
      "format": "int64",
      "example": 9012
    },
    "created_at": {
      "type": "string",
      "description": "The time the workout activity was recorded in WHOOP",
      "format": "date-time",
      "example": "2022-04-24T11:25:44.774Z"
    },
    "updated_at": {
      "type": "string",
      "description": "The time the workout activity was last updated in WHOOP",
      "format": "date-time",
      "example": "2022-04-24T14:25:44.774Z"
    },
    "start": {
      "type": "string",
      "description": "Start time bound of the workout",
      "format": "date-time",
      "example": "2022-04-24T02:25:44.774Z"
    },
    "end": {
      "type": "string",
      "description": "End time bound of the workout",
      "format": "date-time",
      "example": "2022-04-24T10:25:44.774Z"
    },
    "timezone_offset": {
      "type": "string",
      "description": "The user's timezone offset at the time the workout was recorded. Follows format for Time Zone Designator (TZD) - '+hh:mm', '-hh:mm', or 'Z'.",
      "example": "-05:00",
      "externalDocs": {
        "description": "Learn more about the Time Zone Designator from the W3C Standard",
        "url": "https://www.w3.org/TR/NOTE-datetime"
      }
    },
    "sport_name": {
      "type": "string",
      "description": "Name of the WHOOP Sport performed during the workout",
      "example": "running"
    },
    "score_state": {
      "type": "string",
      "description": "`SCORED` means the workout activity was scored and the measurement values will be present. `PENDING_SCORE` means WHOOP is currently evaluating the workout 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.",
      "example": "SCORED",
      "enum": [
        "SCORED",
        "PENDING_SCORE",
        "UNSCORABLE"
      ]
    },
    "score": {
      "$ref": "#/components/schemas/WorkoutScore"
    },
    "sport_id": {
      "type": "integer",
      "description": "ID of the WHOOP Sport performed during the workout. Will not exist past 09/01/2025",
      "format": "int32",
      "example": 1
    }
  }
}