---
title: "Which exercises a strength slot may be swapped to today"
method: GET
path: "/training/swap-options"
tags: ["Strength"]
---

# Which exercises a strength slot may be swapped to today

`GET /training/swap-options`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/training/swap-options`
- Auth: HTTP bearer

The catalogue by movement pattern, with anything today's health report or the athlete's equipment rules out taken off and a sentence saying why. A runner's swap picker is built from this rather than from `/exercises`, so a replacement lift answers to the same report and the same equipment the prescribed one did.

## Headers

- `X-Client-Platform` string
- `X-Client-Version` string

## Response `200`

OK

- object[]
  - `movementPattern` string, required: The pattern these are the options for. Known values: squat, hinge, lunge, horizontal_push, vertical_push, horizontal_pull, vertical_pull, carry, core, calf, isolation, jump, olympic, conditioning. Treat unknown values as "other".
  - `exerciseIds` string[], required: Catalogue ids a slot in this pattern may be swapped to today, in catalogue order. Empty when today's report and the athlete's equipment leave nothing in the pattern — which is also a day no slot of it is prescribed.
  - `excludedCount` integer, required: How many exercises in this pattern were left out, by today's report or by the athlete's equipment. 0 on a day with nothing reported, for an athlete whose equipment answers the whole pattern.
  - `note` string, nullable, required: Why they were left out, for the athlete, and where they can change it: one sentence per reason, so a day with both a sore knee and missing equipment gives both. Null when nothing was left out.

## Other responses

- `401`: Error: UNAUTHORIZED.

---

[API](https://skmtc.dev/bodylab/apis/body-lab-api.md) · [All operations](https://skmtc.dev/bodylab/apis/body-lab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bodylab/apis/body-lab-api/revisions/544c201eaf88?raw)
