WHOOP · Schema

WorkoutScore

WHOOP's measurements and evaluation of the workout activity. Only present if the Workout State is `SCORED`

FitnessWearablesHealthRecoverySleepWorkoutStrainHeart RatePerformance

Properties

Name Type Description
strain number WHOOP metric of the cardiovascular load - the level of strain the workout had on the user's cardiovascular system based on the user's heart rate. Strain is scored on a scale from 0 to 21.
average_heart_rate integer The user's average heart rate (beats per minute) during the workout.
max_heart_rate integer The user's max heart rate (beats per minute) during the workout.
kilojoule number Kilojoules the user expended during the workout.
percent_recorded number Percentage (0-100%) of heart rate data WHOOP received during the workout.
distance_meter number The distance the user travelled during the workout. Only present if distance data sent to WHOOP
altitude_gain_meter number The altitude gained during the workout. This measurement does not account for downward travel - it is strictly a measure of altitude climbed. If a member climbed up and down a 1,000 meter mountain, en
altitude_change_meter number The altitude difference between the start and end points of the workout. If a member climbed up and down a mountain, ending at the same altitude, this measurement would be 0. Only present if altitude
zone_durations object
View JSON Schema on GitHub

JSON Schema

whoop-workoutscore-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/whoop/main/json-schema/whoop-workoutscore-schema.json",
  "title": "WorkoutScore",
  "description": "WHOOP's measurements and evaluation of the workout activity. Only present if the Workout State is `SCORED`",
  "required": [
    "average_heart_rate",
    "kilojoule",
    "max_heart_rate",
    "percent_recorded",
    "strain",
    "zone_durations"
  ],
  "type": "object",
  "properties": {
    "strain": {
      "type": "number",
      "description": "WHOOP metric of the cardiovascular load - the level of strain the workout had on the user's cardiovascular system based on the user's heart rate. Strain is scored on a scale from 0 to 21.",
      "format": "float",
      "example": 8.2463,
      "externalDocs": {
        "description": "WHOOP Strain",
        "url": "https://api.prod.whoop.com/url-mapping-service/v1/STRAIN"
      }
    },
    "average_heart_rate": {
      "type": "integer",
      "description": "The user's average heart rate (beats per minute) during the workout.",
      "format": "int32",
      "example": 123
    },
    "max_heart_rate": {
      "type": "integer",
      "description": "The user's max heart rate (beats per minute) during the workout.",
      "format": "int32",
      "example": 146
    },
    "kilojoule": {
      "type": "number",
      "description": "Kilojoules the user expended during the workout.",
      "format": "float",
      "example": 1569.34033203125
    },
    "percent_recorded": {
      "type": "number",
      "description": "Percentage (0-100%) of heart rate data WHOOP received during the workout.",
      "format": "float",
      "example": 100.0
    },
    "distance_meter": {
      "type": "number",
      "description": "The distance the user travelled during the workout. Only present if distance data sent to WHOOP",
      "format": "float",
      "example": 1772.77035916
    },
    "altitude_gain_meter": {
      "type": "number",
      "description": "The altitude gained during the workout. This measurement does not account for downward travel - it is strictly a measure of altitude climbed. If a member climbed up and down a 1,000 meter mountain, ending at the same altitude, this measurement would be 1,000 meters. Only present if altitude data is included as part of the workout",
      "format": "float",
      "example": 46.64384460449
    },
    "altitude_change_meter": {
      "type": "number",
      "description": "The altitude difference between the start and end points of the workout. If a member climbed up and down a mountain, ending at the same altitude, this measurement would be 0. Only present if altitude data is included as part of the workout",
      "format": "float",
      "example": -0.781372010707855
    },
    "zone_durations": {
      "$ref": "#/components/schemas/ZoneDurations"
    }
  }
}