Skip to main content
Ask a venue what it can offer, then book it. The Reservation API exposes a venue’s live availability — services, sections and bookable times for a given party size — and the reservations made against it.

Venue scoping

Every endpoint is scoped to one venue, which is named in the path rather than in a query string or body:

Times, dates and timezones

Every wall-clock value in this API is in the venue’s own timezone, and no value is ever converted to or from UTC. Date ranges are inclusive at both ends, and endDate always defaults to startDate.

Typical flow

1

Fetch the vocabularies

Tags and reservation statuses are per-venue reference data. Cache them; they change rarely.
2

Ask what's available

Get Availability for the party size and date range. The response carries the serviceId, sectionId and menuOptionId values the next step needs.
3

Create the reservation

Create a Reservation with the ids you were given. A slot that has gone in the meantime returns 409 rather than double-booking.
4

Read it back

Get a Reservation by the id the create returned, or list a date range.
5

Amend or cancel it

Update a Reservation changes the time, party size, status or guest details. Cancel a Reservation releases its table.

Endpoints

Get Availability

GET bookable services, sections and times

List Reservations

GET a venue’s reservations by date range

Get a Reservation

GET one reservation by id

Create a Reservation

POST a reservation and allocate a table

Update a Reservation

PATCH an existing reservation

Cancel a Reservation

POST a cancellation and release the table

List Venue Tags

GET a venue’s guest tags

Reservation Statuses

GET the statuses a venue uses

Errors

Validation failures and missing resources return a consistent envelope. errors is present only on a validation failure, keyed by field path:
Validation failure — 400
The create, update and cancel endpoints return a narrower shape for 409 and 501 responses:
Conflict — 409
Always quote requestId when reporting a problem.