Swap an exercise
Replaces a slot’s exercise from the given week on (default all unlogged weeks). Logged sets keep the exercise they were done with.
/api/training/slots/{id}__Secure-better-auth.session_tokenAPI key · cookierequiredBetter Auth session. Signing in (Google or email magic link) sets an HttpOnly session cookie that scopes every request to that account. The web app and CLI use this; agents use the OAuth 2.1 flow of the MCP server.
AuthorizationBearer token · headerrequiredPersonal API key sent as Authorization: Bearer skcal_…. Create and scope keys in the app under your profile → API keys. Keys default to full access; a scoped key is limited to its granted resource:action permissions and cannot manage other keys.
idstringrequiredIdentifier of the mesocycle, set, slot, or custom exercise the path names.
application/jsonThe replacement exercise, by id or name.
exerciseIdstringId of the replacement exercise from the library.
exerciseNamestringExercise name, matched against the library within the slot's muscle.
fromWeekintegerFirst week to change (default 1, every unlogged set).
The exercise was swapped.
objectThe request body or parameters failed validation.
errorstringrequiredHuman-readable failure reason.
detailstringOptional extra context, present on upstream failures.
No matching resource owned by the caller.
errorstringrequiredHuman-readable failure reason.
detailstringOptional extra context, present on upstream failures.