Skip to main content
PATCH
Update an instructor

Authorizations

Authorization
string
header
required

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

Path Parameters

id
integer
required

1club instructor id

Body

application/json

Fields accepted when updating an instructor. Send only what changes; an omitted field is left alone. At least one field is required, and unknown fields are rejected. contactId is absent on purpose: re-pointing a profile at another person would transfer their bookings and pay.

clubId
integer | null

Club the instructor works at; null means every club in the organization.

instructorTypeId
integer | null

The kind of coach, from GET /v1/platform/instructor-types. null leaves them unfiled, which is legal but loses the grouping every roster view reads from and the default revenue account their sessions would post to.

sports
string[]
Maximum array length: 50
displayName
string | null

Public-facing name. Defaults to " ." from the contact.

Maximum string length: 120
hourlyRate
number | null

What a member pays for an hour of one-to-one time with them. Not what the club pays the coach - that is a pay rate policy. Added to the area price unless priceIncludesArea is true.

Required range: x >= 0
bookability
enum<string>

Who may book one-to-one sessions with them. Never outruns visibility: narrowing one pulls the other down with it, and deactivating the instructor retires this to Admin_only. The read-only isBookable is derived from this and cannot be written.

Available options:
Admin_only,
Member_only,
Public
priceIncludesArea
boolean

When true, hourlyRate already covers the booked area, which is then not charged on top.

maxConcurrentBookings
integer
Required range: x >= 1
operatingHours
object

Per-day-of-week availability schedule

visibility
enum<string>
Available options:
Private,
Member_only,
Public
isActive
boolean

False retires the instructor: they leave the listings and stop being bookable, and their history is kept. There is no delete.

Response

The updated instructor

An instructor (coach) in the organization, as returned by the instructors resource. Reference the id as instructorId when creating a booking. Leaner than the PlatformInstructor profile embedded in class payloads: this carries only what is needed to pick and price a coach.

id
integer
name
string

Public display name when set, otherwise the linked contact name.

clubId
integer | null

Club the instructor belongs to; null when org-wide.

instructorTypeId
integer | null

The kind of coach, from GET /v1/platform/instructor-types; null for one nobody has filed.

sports
string[]
hourlyRate
number | null

Added to the area price when pricing a booking with this instructor, unless priceIncludesArea is true.

priceIncludesArea
boolean

When true, hourlyRate is an all-in price that already covers the booked area - the area's price is not added on top of it.

bookability
enum<string>

Who may book one-to-one sessions with this instructor. Admin_only means the club reserves those bookings to its own staff, so a customer-initiated booking is rejected; an API key acts for the organization and may still create one.

Available options:
Admin_only,
Member_only,
Public
isBookable
boolean
deprecated

Derived from bookability: true unless it is Admin_only. Prefer bookability, which distinguishes members from the public.

maxConcurrentBookings
integer
operatingHours
object

Per-day-of-week availability schedule

visibility
enum<string>

Who may see the instructor on member-facing surfaces. bookability never outruns it.

Available options:
Private,
Member_only,
Public
isActive
boolean

False for a retired instructor: hidden from the list by default, not bookable, history kept.