Skip to main content
POST
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

clientId
string
required

Client receiving the assigned plan.

Example:

"67f1234567890abcdef1234"

Body

Plan metadata and exercise defaults. Description is optional. Supply defaultExerciseValues unless useDefaultExerciseSettings is false; when disabled, omit the defaults or send null. Create workout days and their exercises through the separate moment/exercise endpoints after receiving planId.

name
object[]
required
Minimum array length: 1
Example:
visibility
enum<string>
required
Available options:
Everyone,
Company,
Fitsociety
Example:

"Company"

description
object[]
Minimum array length: 1
Example:
category
enum<string>
Available options:
Agility & Speed,
Strength,
Hypertrophy,
Strength - Dynamic,
Strength - Explosive,
Strength - Static,
Cardio,
Cardio - Duration,
Cardio - Interval,
HIIT,
Crossfit,
Mobility,
Stretching,
Core,
Coordination & Balance,
Movement Prep,
Functional Training,
Recovery,
Sports,
Martial Arts,
Yoga,
Other,
GROUP_WORKOUT_TEMPLATE,
Plyometric,
Cycling,
Cardio - interval,
Mobilisation,
Stabilisation,
Daily Living,
Target zone,
Respiration,
Breathing,
Massage,
Outdoor sports,
Indoor sports,
Dance,
Group Lessons,
Martial arts,
Material Arts,
Fight skills,
Mind and body,
,
default
Example:

"Strength"

goal
enum<string>
Available options:
Weight Loss,
Hypertrophy,
Endurance,
Flexibility,
General Fitness,
Strength
Example:

"Strength"

periodizationType
enum<string>
Available options:
Linear,
Non-Linear,
Block,
Undulating,
None
Example:

"Linear"

difficulty
enum<string>
Available options:
Beginner,
Intermediate,
Advanced
Example:

"Intermediate"

intensity
enum<string>
Available options:
Low,
Medium,
High
Example:

"Medium"

status
enum<string>
default:Active

Assigned plans default to Active; Draft is not supported.

Available options:
Active,
Inactive
duration
object
schedule
object

Initial assigned schedule. Supply startDate here or through scheduleStartDate for multi_week or calendar_week. New plans have no workout days to reference; populate their workout calendar after creating the days.

useDefaultExerciseSettings
boolean
default:true

Whether new exercises use the plan-level defaults. When false, defaultExerciseValues must be null.

defaultExerciseValues
object | null
images
object[]
videos
object[]
scheduleStartDate
string<date>

Optional alias for schedule.startDate, taking precedence when supplied. Coaches must provide a start date for multi_week or calendar_week schedules. A recurring calendar_week schedule requires a company-local Monday.

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

"2026-09-08"

externalReference
string

Optional opaque resource reference owned by the authenticated API client and company. Available only for application/json creation without file uploads. Trimmed, nonempty and at most 200 characters; control characters are rejected. Repeating the reference with the same creation content returns the existing resource; conflicting content returns 409.

Required string length: 1 - 200
Pattern: ^[^\u0000-\u001F\u007F]+$
Example:

"programme-v1"

Response

Assigned plan created. Add its days and exercises using planId.

data
object
required
meta
object
required