Workout Tools
Four tools for accessing your exercise activities, strain, and heart rate data.
get-workout-collection
Retrieve a paginated list of workouts with optional date filtering.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string | No | - | Start date in ISO 8601 format |
end_date | string | No | - | End date in ISO 8601 format |
limit | number | No | 25 | Maximum records to return (max: 25) |
Example Questions
- "Show me all my workouts from last week"
- "Get my running workouts"
- "What workouts did I do in December?"
Response Fields
| Field | Description |
|---|---|
id | Unique workout ID |
sport_id / sport_name | Activity type (Running, Cycling, etc.) |
start / end | Workout timestamps |
score.strain | Workout strain (0-21 scale) |
score.average_heart_rate | Average HR during workout |
score.max_heart_rate | Peak HR during workout |
score.kilojoule | Energy expenditure |
score.distance_meter | Distance covered (if applicable) |
score.zone_durations | Time in each heart rate zone |
get-workout-by-id
Get detailed information about a specific workout.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workout_id | string | Yes | UUID of the workout |
Example Questions
- "Get details for workout workout-abc-123"
- "Show me the heart rate zones for that workout"
get-recent-workouts
Convenience tool to get workouts from the last N days.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
days | number | No | 7 | Number of days to look back |
Example Questions
- "What workouts have I done this week?"
- "Show my recent exercises"
get-workout-summary
Get aggregated workout metrics for a date range.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date | string | Yes | Start date in ISO 8601 format |
end_date | string | Yes | End date in ISO 8601 format |
Example Questions
- "How much strain have I accumulated this month?"
- "What's my average workout duration?"
- "What sports have I been doing?"
Response Fields
| Field | Description |
|---|---|
period | Date range and number of days |
totals.workouts | Total workout count |
totals.total_strain | Sum of all workout strain |
totals.total_kilojoules | Total energy expenditure |
averages.strain_per_workout | Average workout strain |
averages.duration_minutes | Average workout length |
sport_breakdown | Count by activity type |
Understanding Strain Metrics
Strain Scale (0-21)
WHOOP uses a proprietary logarithmic scale for strain:
| Range | Level | Description |
|---|---|---|
| 0-9 | Light | Low cardiovascular load |
| 10-13 | Moderate | Sustainable daily activity |
| 14-17 | High | Significant workout |
| 18-21 | Overreaching | Very high strain, recovery needed |
Heart Rate Zones
| Zone | Name | Description |
|---|---|---|
| Zone 0 | Rest | Resting heart rate |
| Zone 1 | Low | Light activity, warm-up |
| Zone 2 | Moderate | Fat-burning, endurance |
| Zone 3 | Vigorous | Cardio training |
| Zone 4 | Hard | Peak performance |
| Zone 5 | Max | Maximum effort |
Zone durations are returned in milliseconds.
Energy (Kilojoules)
Energy expenditure measured in kilojoules.
To convert to calories:
calories = kilojoules / 4.184
For example: 1800 kJ ≈ 430 calories
Common Sport Types
| Sport ID | Name |
|---|---|
| 1 | Running |
| 0 | Cycling |
| 71 | Strength Training |
| 52 | Swimming |
| 63 | HIIT |
| 43 | Yoga |
The sport_name field provides the human-readable name.