Skip to main content
POST
Create appointment_types

Authorizations

Authorization
string
header
required

API key from Developers → API Keys, sent as Authorization: Bearer .

Headers

Idempotency-Key
string

Any unique string (≤255 chars). A retry with the same key within 24 hours replays the original response (Idempotent-Replayed: true) instead of creating a second record.

Maximum string length: 255

Body

application/json
name
string
required

The type's display name, as it appears on the calendar and in booking flows. Appointment types are managed in Settings.

Maximum string length: 255
duration
integer
required

Default length in minutes. When booking, a practitioner-specific duration for the type takes precedence where one is set.

Required range: x >= 1
color
string
required

Hex colour appointments of this type show on the calendar.

Maximum string length: 255
description
string | null

Longer description shown to patients in online booking (write-only here).

type
enum<string>

individual (the default), group (a group session type, with capacity in group_max_attendees) or dropin.

Available options:
individual,
group,
dropin
group_max_attendees
integer | null

Maximum attendees for a group session type. Not used by standard types.

Required range: x >= 1
price
string | null

Standard price of the appointment, in the account currency (write-only).

Pattern: ^-?\d+(\.\d{1,2})?$
Example:

"45.00"

statistical_type
enum<string>

Reporting category: np (new patient), adjustment (regular visit), rof (report of findings), progress (progress exam) or other.

Available options:
np,
adjustment,
rof,
progress,
other
modality_id
integer | null

The modality (discipline) the type belongs to — see modalities.

bookable_for
enum<string> | null

Who can book online: both, regular (existing patients) or np (new patients).

Available options:
both,
regular,
np
online_price
string | null

Price shown in online booking when it differs from price (write-only).

Pattern: ^-?\d+(\.\d{1,2})?$
Example:

"45.00"

online_deposit
string | null

Deposit taken at online booking; must not exceed online_price (write-only).

Pattern: ^-?\d+(\.\d{1,2})?$
Example:

"45.00"

sms_reminder
boolean

Send SMS reminders for this type (write-only).

email_reminder
boolean

Send email reminders for this type (write-only).

push_reminder
boolean

Send patient-app push reminders (write-only).

sms_confirmation
boolean

Send SMS confirmations on booking (write-only).

email_confirmation
boolean

Send email confirmations on booking (write-only).

push_confirmation
boolean

Send patient-app push confirmations (write-only).

online_booking
boolean

Whether the type can be booked through online booking.

patient_app_active
boolean

Offer this type in the patient app (write-only).

hide_from_patient
boolean

Hide the type's name from patient-facing messages (write-only).

metadata
object

Integrator-owned key/value metadata (max 50 keys). Values are strings (≤500 chars), numbers or booleans and read back with the type they were written with. On write, a null value removes the key. Filter with metadata[key]=op:value; number operands compare numerically.

Response

The resource

data
object
Example: