Skip to main content
POST
Create an area

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 an area. The defaults shown are what an omitted field becomes. Unknown fields are rejected.

name
string
required
Maximum string length: 255
areaTypeId
integer
required

From GET /v1/platform/area-types. Decides which sports the area is bookable for and what it is priced from, so resolve it rather than guessing.

clubId
integer
required

Club the area belongs to, from GET /v1/platform/clubs. Not editable afterwards.

description
string | null
Maximum string length: 5000
status
enum<string>
default:active

Only an active area is bookable. maintenance and inactive take it out of availability without losing its history - this is how a court is closed indefinitely, where an area block closes it for a stated window.

Available options:
active,
maintenance,
inactive
visibility
enum<string>
default:Public
Available options:
Private,
Member_only,
Public
pricePerHour
number | null

Overrides the area type's default hourly price; null falls back to it.

Required range: x >= 0
operatingHours
object

Per-day-of-week opening schedule, in the club's timezone. Intersected with the club's own hours - an area is never bookable outside them.

maxConcurrentBookings
integer

How many bookings may hold the area at the same time. 1 for an ordinary court.

Required range: x >= 1

Response

Area created

An area - a court, a studio, a lane. One shape for the list, get-by-id, create and update.

id
integer
name
string
description
string | null
clubId
integer
areaTypeId
integer | null

The kind of area, from GET /v1/platform/area-types. Decides sports and the default price.

status
enum<string>

Only an active area is bookable, and only those appear in the list. The other two resolve by id.

Available options:
active,
maintenance,
inactive
visibility
enum<string>

The list shows only Public areas; the others resolve by id.

Available options:
Private,
Member_only,
Public
sports
string[]

Sports the area is bookable for, from its area type.

pricePerHour
number | null
maxConcurrentBookings
integer
timezone
string

IANA timezone the operating hours are expressed in (the club's, falling back to the organization's). Convert a local wall time in this zone when sending startTime/endTime to POST /v1/platform/bookings.

operatingHours
object

Per-day-of-week opening schedule