Skip to main content
An availability result is an offer, not a reservation. Use the hold endpoint when the customer selects a time. The returned hold_token is required by the submit endpoint.
Creating a hold is rate limited to 20 requests per 10 minutes per IP address and 500 requests per 10 minutes per tenant. A limited response includes Retry-After.

Path parameters

string
required
Your booking page token (booking slug or lead token).

Create a hold

Send the offer_token from the selected availability slot. If you are replacing a hold already stored by your client, also send its hold_token as previous_hold_token.
string
required
The short-lived token attached to the selected availability slot.
string
The current hold token when the customer changes their selection. The old hold is released before the new one is created.
The API permits one active public hold per workspace and visitor IP. Creating another hold automatically releases that visitor’s previous active hold, even when previous_hold_token is omitted.

Create response

string
The token to send to POST /submit.
string
Held appointment start time as an ISO 8601 timestamp.
string
Held appointment end time as an ISO 8601 timestamp.
string
When the hold expires as an ISO 8601 timestamp.
Submit before expires_at. Do not derive a fixed countdown in your integration because the business controls the hold duration.

Release a hold

Release the hold when the customer clears their selected time or leaves a flow where you can run cleanup. Expired holds release capacity automatically, so client cleanup is helpful but not required for correctness.
Request
A release request returns:
Response
The response is idempotent: it also returns released: true when the hold was already released, expired, or omitted.

Errors

Get availability

Back: get short-lived slot offers.

Submit booking

Next: commit the held booking.