Skip to content
skcal
Esc
↑↓navigate↵open⌘Jpreview

Add a custom exercise

Adds an exercise to the caller’s library so it can be picked in a mesocycle.

POST/api/training/exercises
Authorization
__Secure-better-auth.session_tokenAPI key · cookierequired

Better 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.

or
AuthorizationBearer token · headerrequired

Personal 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.

Request body
requiredapplication/json

The exercise.

namestringrequired

Exercise name.

musclestringrequired

Muscle key from the library.

equipmentstringrequired

Equipment type.

Allowed:barbelldumbbellmachinecablesmithbodyweightbandother
videoUrlstring<uri> | null

Optional https link to a demo video.

Responses
200

The exercise was created.

object
400

The request body or parameters failed validation.

errorstringrequired

Human-readable failure reason.

detailstring

Optional extra context, present on upstream failures.

Try it
Server
Authorization
Bodyapplication/json
Request
curl -X POST 'https://app.skcal.fit/api/training/exercises' \
  -H 'Cookie: __Secure-better-auth.session_token=YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Landmine Press",
  "muscle": "front_delts",
  "equipment": "barbell",
  "videoUrl": null
}'
Response
{
  "ok": true,
  "week": 2,
  "day": 1,
  "exerciseName": "Barbell Bench Press",
  "muscle": "chest"
}

Was this page helpful?