> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/planned-workouts-api/exercise-reference.md).

# Exercise Reference

> ⚠️ **Pre-Release / Under Construction**
>
> This page is currently **under active development** and is provided in a **pre-release state**.
>
> Content may be **incomplete, outdated, or inaccurate**, and details may changewithout notice as the implementation evolves.
>
> Please use this documentation for **early reference only**, and avoid relying on it for production-critical decisions until the page is marked as stable.

### Overview

For strength training workouts on Garmin, exercise names are matched against Garmin's catalog of 1,600+ exercises. This enables proper categorization and display on the device.

For all other devices where custom names are supported, exercise names:

1. Are title cased
2. Get underscores "\_" converted to spaces " "

### Name Flexibility

Garmin exercise name lookup is **flexible**. All of these work:

| Input                   | Normalized              | Garmin             | Hevy                              |
| ----------------------- | ----------------------- | ------------------ | --------------------------------- |
| "BARBELL\_BENCH\_PRESS" | BARBELL\_BENCH\_PRESS   | ✓ Found            | ✓ Bench Press (Barbell)           |
| "barbell\_bench\_press" | BARBELL\_BENCH\_PRESS   | ✓ Found            | ✓ Bench Press (Barbell)           |
| "Barbell Bench Press"   | BARBELL\_BENCH\_PRESS   | ✓ Found            | ✓ Bench Press (Barbell)           |
| "barbell bench press"   | BARBELL\_BENCH\_PRESS   | ✓ Found            | ✓ Bench Press (Barbell)           |
| "Bench Press (Barbell)" | BENCH\_PRESS\_(BARBELL) | ✗ Not found        | ✓ Bench Press (Barbell)           |
| "Bench Press"           | BENCH\_PRESS            | ✓ Found (category) | ✓ Bench Press (Barbell) via alias |
| "My Custom Exercise"    | MY\_CUSTOM\_EXERCISE    | ✗ Not found        | ✗ → Custom exercise created       |

**Normalization process:**

1. Replace spaces with underscores
2. Convert to UPPERCASE
3. Look up in exercise catalog

Hevy has an additional lookup path:

1. Exact Hevy display name (e.g. Squat (Barbell))
2. Short name alias (e.g. Bench Press → Bench Press (Barbell))
3. Garmin-style normalized name via shared metadata registry

### What Happens If Not Found

Garmin:

* ⚠️ Coercion warning returned
* Exercise name and category omitted from Garmin workout
* Weight data preserved
* Step still created

Hevy:

* Custom exercise template created automatically on the user's Hevy account
* Muscle group and equipment inferred from the name where possible
* ⚠️ Coercion warning returned only if the user's custom exercise limit is reached

For non-Garmin/Hevy providers, exercise names are displayed as Title Case With Spaces Instead Of Underscores regardless of input format.

### Common Exercises by Category

#### BENCH\_PRESS

```
BARBELL_BENCH_PRESS
DUMBBELL_BENCH_PRESS
INCLINE_BARBELL_BENCH_PRESS
INCLINE_DUMBBELL_BENCH_PRESS
DECLINE_BARBELL_BENCH_PRESS
CLOSE_GRIP_BARBELL_BENCH_PRESS
```

#### SQUAT

```
BARBELL_SQUAT
FRONT_SQUAT
GOBLET_SQUAT
DUMBBELL_SQUAT
SUMO_SQUAT
BULGARIAN_SPLIT_SQUAT
```

#### DEADLIFT

```
BARBELL_DEADLIFT
ROMANIAN_DEADLIFT
SUMO_DEADLIFT
SINGLE_LEG_DEADLIFT
DUMBBELL_DEADLIFT
```

#### ROW

```
BENT_OVER_ROW
BARBELL_ROW
DUMBBELL_ROW
SINGLE_ARM_DUMBBELL_ROW
CABLE_ROW
SEATED_CABLE_ROW
```

#### SHOULDER\_PRESS

```
OVERHEAD_PRESS
BARBELL_SHOULDER_PRESS
DUMBBELL_SHOULDER_PRESS
ARNOLD_PRESS
MILITARY_PRESS
PUSH_PRESS
```

#### CURL

```
BARBELL_CURL
DUMBBELL_CURL
HAMMER_CURL
PREACHER_CURL
CONCENTRATION_CURL
CABLE_CURL
```

#### TRICEPS\_EXTENSION

```
TRICEPS_PUSHDOWN
SKULL_CRUSHER
OVERHEAD_TRICEPS_EXTENSION
DUMBBELL_TRICEPS_EXTENSION
CABLE_TRICEPS_EXTENSION
```

#### PLANK

```
PLANK
SIDE_PLANK
PLANK_WITH_ARM_RAISE
PLANK_WITH_LEG_RAISE
WEIGHTED_PLANK
```

#### LUNGE

```
LUNGE
WALKING_LUNGE
REVERSE_LUNGE
LATERAL_LUNGE
DUMBBELL_LUNGE
BARBELL_LUNGE
```

#### PULL\_UP

```
PULL_UP
CHIN_UP
WIDE_GRIP_PULL_UP
CLOSE_GRIP_PULL_UP
ASSISTED_PULL_UP
WEIGHTED_PULL_UP
```

### Full Reference

For the complete list of 1,600+ exercises organized by category, see the full reference in the next section

### Usage Example

```json
{
  "name": "Push Day",
  "sport": "strength",
  "step_blocks": [
    {
      "name": "Bench Press",
      "completion_condition": { "type": "reps", "value": 4 },
      "steps": [{
        "completion_condition": { "type": "reps", "value": 8 },
        "intensity_type": "active",
        "strength": {
          "exercise_name": "barbell bench press",
          "weight": 80,
          "weight_display_unit": "kg"
        }
      }]
    },
    {
      "name": "Shoulder Press",
      "completion_condition": { "type": "reps", "value": 3 },
      "steps": [{
        "completion_condition": { "type": "reps", "value": 10 },
        "intensity_type": "active",
        "strength": {
          "exercise_name": "DUMBBELL_SHOULDER_PRESS",
          "weight": 25,
          "weight_display_unit": "kg"
        }
      }]
    }
  ]
}
```

### Tips

1. **Search the full reference** - Use Ctrl+F to find exercises
2. **Try common variations** - If one name fails, try another
3. **Check coercion warnings** - They tell you if lookup failed
4. **Use descriptive fallbacks** - Non-Garmin providers show your text as-is
