Skip to main content
PUT
cURL

Authorizations

Authorization
string
header
required

Public API access token issued by /public/v1/oauth/token. Example: Authorization: Bearer fspt_.... Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with 403 auth.provider_unavailable.

Headers

Idempotency-Key
string
required

Required for Public API write requests. Reusing the same key with the same method, path, and body replays the stored successful response; reusing it with a different request returns 409 idempotency.conflict.

Required string length: 1 - 200
Example:

"booking-create-20260714-001"

Path Parameters

sessionId
string
required

Workout session id.

Example:

"67f1234567890abcdef1234"

exerciseId
string
required

Exercise id to upsert within the session.

Example:

"67f1234567890abcdef1234"

Body

application/json

All fields optional — send only what changes (e.g. just notes or restSeconds). When sets are sent, isCompleted is auto-derived (true only when every set is completed) and overrides any isCompleted in the body; an explicit isCompleted is honored only when no sets are sent.

performanceId
string | null

Existing server performance id to update. A valid id that does not match an active performance in the authorized company, client, and session scope returns 404. For transitional mobile compatibility, a value equal to the URL exerciseId is treated as a catalog-id create fallback and is never adopted as the new performance id.

Example:

"67f1234567890abcdef1234"

sets
object[]
notes
string

Client's own exercise note (this session).

Example:

"Last set was slow."

restSeconds
number | null

Client's own exercise-level rest ("Rest time : 30 sec"). null/"" clears it.

Example:

30

isCompleted
boolean

Auto-derived from sets when they are sent; only honored explicitly when no sets are present.

Example:

true

planId
string
Example:

"67f1234567890abcdef1234"

planMomentId
string
Example:

"67f1234567890abcdef1234"

planExerciseId
string
Example:

"67f1234567890abcdef1234"

order
number
Example:

0

nextSessionTarget
object
setupFields
object[]
Maximum array length: 8
setupValues
object
nextSetupValues
object

Response

Created or updated performance payload.

data
object
required
meta
object
required