> 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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tryterra.co/planned-workouts-api/exercise-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
