Skip to main content
POST
Create a program

Authorizations

Authorization
string
header
required

Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.

Headers

Idempotency-Key
string

Retry-safe key; a repeat of the same request replays the first response

Maximum string length: 255

Body

application/json

Fields accepted when creating a program. Only name is required; slug is derived from it when omitted, and suffixed if that is taken. The defaults shown are what an omitted field becomes, and unknown fields are rejected.

name
string
required
Maximum string length: 255
slug
string
Maximum string length: 100
description
string | null
imageUrl
string | null

Cover image shown where the program is listed, e.g. the website.

color
string | null

Hex colour the program is shown in, e.g. "#2563eb".

sortOrder
integer

Where the program is listed, lowest first.

minAge
integer | null

Youngest age the program is for, in years. Display only: it does not gate booking.

Required range: 0 <= x <= 120
maxAge
integer | null

Oldest age the program is for, in years. Display only.

Required range: 0 <= x <= 120
progressionTrackId
integer | null

The progression track the sessions of its class types count toward, from GET /v1/platform/progression-tracks. Once any program points at a track, only sessions of those programs count toward its ranks. Must be a track the organization uses.

Response

Program created

What a student joins, e.g. "Kids BJJ (7-12)": a group of class types whose sessions count toward one progression track, and what the club website lists. Reference the id as programId on a class type. One shape for the list, get-by-id, create and update.

id
integer
name
string
slug
string

Stable key, derived from the name when a create does not send one. A rename never moves it.

description
string | null
imageUrl
string | null

Cover image shown where the program is listed, e.g. the website.

color
string | null

Hex colour the program is shown in, e.g. "#2563eb".

sortOrder
integer

Where the program is listed, lowest first.

minAge
integer | null

Youngest age the program is for, in years. Display only: it does not gate booking.

Required range: 0 <= x <= 120
maxAge
integer | null

Oldest age the program is for, in years. Display only.

Required range: 0 <= x <= 120
progressionTrackId
integer | null

The progression track the sessions of its class types count toward, from GET /v1/platform/progression-tracks. Once any program points at a track, only sessions of those programs count toward its ranks. Must be a track the organization uses.

classTypeCount
integer

Class types in the program.

createdAt
string<date-time>
updatedAt
string<date-time>