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

Log or edit a set

Sets a set’s weight and reps (logging it), un-logs it with done false, or edits its targets.

PATCH/api/training/sets/{id}
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.

Path parameters
idstringrequired

Identifier of the mesocycle, set, slot, or custom exercise the path names.

Request body
requiredapplication/json

The set fields to log or change.

weightLbnumber | null

Load in pounds.

repsinteger | null

Reps done.

doneboolean

True logs the set; false un-logs it.

targetWeightLbnumber | null

Target load in pounds.

targetRepsinteger | null

Target reps.

loggedAtstring | integer

When the set was finished (ISO 8601 or epoch ms); logs the set at that time. Without it, logging stamps now and editing a done set keeps its time.

Responses
200

The updated set.

object
400

The request body or parameters failed validation.

errorstringrequired

Human-readable failure reason.

detailstring

Optional extra context, present on upstream failures.

404

No matching resource owned by the caller.

errorstringrequired

Human-readable failure reason.

detailstring

Optional extra context, present on upstream failures.

Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X PATCH 'https://app.skcal.fit/api/training/sets/9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d' \
  -H 'Cookie: __Secure-better-auth.session_token=YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "weightLb": 185,
  "reps": 8,
  "done": true,
  "targetWeightLb": 190,
  "targetReps": 8,
  "loggedAt": "2026-10-25T18:42:00-05:00"
}'
Response
{
  "ok": true,
  "week": 2,
  "day": 1,
  "exerciseName": "Barbell Bench Press",
  "muscle": "chest"
}

Was this page helpful?