WHOOP · Schema
WHOOP Workout
Schema for a WHOOP Workout (v2). A Workout represents a discrete bout of activity tagged with a sport name, with Strain, heart-rate, and heart-rate-zone summaries.
FitnessWearablesHealthRecoverySleepStrainHeart RateWorkoutBiometrics
Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| v1_id | integer | Legacy v1 numeric ID (deprecated). |
| user_id | integer | |
| created_at | string | |
| updated_at | string | |
| start | string | |
| end | string | |
| timezone_offset | string | |
| sport_name | string | Sport classification (e.g. running, cycling, weightlifting). |
| score_state | string | |
| score | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.com/schemas/whoop-co/whoop-workout-schema.json",
"title": "WHOOP Workout",
"description": "Schema for a WHOOP Workout (v2). A Workout represents a discrete bout of activity tagged with a sport name, with Strain, heart-rate, and heart-rate-zone summaries.",
"type": "object",
"required": ["id", "user_id", "created_at", "updated_at", "start", "end", "timezone_offset", "sport_name", "score_state"],
"properties": {
"id": {"type": "string", "format": "uuid"},
"v1_id": {"type": "integer", "format": "int64", "description": "Legacy v1 numeric ID (deprecated)."},
"user_id": {"type": "integer", "format": "int64"},
"created_at": {"type": "string", "format": "date-time"},
"updated_at": {"type": "string", "format": "date-time"},
"start": {"type": "string", "format": "date-time"},
"end": {"type": "string", "format": "date-time"},
"timezone_offset": {"type": "string"},
"sport_name": {"type": "string", "description": "Sport classification (e.g. running, cycling, weightlifting)."},
"score_state": {"type": "string", "enum": ["SCORED", "PENDING_SCORE", "UNSCORABLE"]},
"score": {
"type": "object",
"required": ["strain", "average_heart_rate", "max_heart_rate", "kilojoule", "percent_recorded", "zone_durations"],
"properties": {
"strain": {"type": "number", "format": "float", "minimum": 0, "maximum": 21},
"average_heart_rate": {"type": "integer"},
"max_heart_rate": {"type": "integer"},
"kilojoule": {"type": "number", "format": "float"},
"percent_recorded": {"type": "number", "format": "float", "minimum": 0, "maximum": 100},
"distance_meter": {"type": "number", "format": "float"},
"altitude_gain_meter": {"type": "number", "format": "float"},
"altitude_change_meter": {"type": "number", "format": "float"},
"zone_durations": {
"type": "object",
"required": ["zone_zero_milli", "zone_one_milli", "zone_two_milli", "zone_three_milli", "zone_four_milli", "zone_five_milli"],
"properties": {
"zone_zero_milli": {"type": "integer"},
"zone_one_milli": {"type": "integer"},
"zone_two_milli": {"type": "integer"},
"zone_three_milli": {"type": "integer"},
"zone_four_milli": {"type": "integer"},
"zone_five_milli": {"type": "integer"}
}
}
}
}
}
}