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

planId
string
required

Assigned workout plan id.

Example:

"67f1234567890abcdef1234"

scheduleItemId
string
required

Activity schedule item id.

Example:

"67f1234567890abcdef1234"

plannedDate
string<date>
required

Canonical planned occurrence date.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-09-08"

Body

application/json
status
enum<string>
required
Available options:
in_progress,
completed,
cancelled
Example:

"completed"

workBlocks
object[]

Work steps only, identified by persisted block/step ids and a one-based repetition index. Recovery and whole-activity averages cannot supply work evidence. Omission preserves existing entries; an explicit array replaces them.

Maximum array length: 1000
avgHrBpm
number

Whole-activity mean HR, informational only; never compared with a work-step band.

missedReason
enum<string>
Available options:
sick,
away,
injured,
interrupted,
too_hard,
other
conditions
object
niggle
object

Authenticated athlete only. Sets the profile niggle active before saving the log. Clearing requires the dedicated athlete endpoint; coaches cannot clear it.

source
enum<string>

Public writes are manual. Consented wearable import is a later phase.

Available options:
manual
actualDurationMinutes
number

Actual activity duration in minutes.

Required range: x >= 0
Example:

45

actualDistanceMeters
number

Actual activity distance in meters.

Required range: x >= 0
Example:

8000

notes
string
Example:

"Felt smooth."

rpe
number

Perceived exertion from 1 through 10.

Required range: 1 <= x <= 10
Example:

7

Response

Activity occurrence saved.

data
object
required
meta
object
required