Skip to main content
POST
Create an appointment

Authorizations

Authorization
string
header
required

Your v3 API key, e.g. ask_live_…

Headers

X-Subaccount-Id
string

Target subaccount for the request. Required unless the API key is authorized for exactly one subaccount (then it defaults to that one). Alternatively pass subaccount_id (or legacy location_id) in the request body. Omitting it on a multi-subaccount key returns 400 subaccount_required.

Body

application/json
start_time
string<date-time>
required

Appointment start (ISO datetime).

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
contact_name
string
end_time
string
address
string
status
enum<string>

Appointment status: SCHEDULED, CONFIRMED, CANCELLED, COMPLETED, NO_SHOW, RESCHEDULED.

Available options:
SCHEDULED,
CONFIRMED,
CANCELLED,
COMPLETED,
NO_SHOW,
RESCHEDULED
subaccount_id
string

Target subaccount id. Prefer the X-Subaccount-Id header; this body field is a fallback.

location_id
string

Alias for subaccount_id (GHL location id).

Response

Success

data
object
required
request_id
string
required
error
null