> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.nowbookit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reservations

> Read a venue's availability and create, list, read, amend and cancel its reservations.

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:

```
/api/reservations/venue/{venueId}/...
```

## 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.

| Field | Form | Meaning |
| - | - | - |
| `startDate` / `endDate` on availability | `2026-09-01` or `2026-09-01T18:00:00` | A whole day, or one exact venue-local instant |
| `startDate` / `endDate` on list | `2026-09-01` | A calendar date. A time component is not accepted |
| `localBookingDateAndTime` | `2026-09-01T18:30:00` | The venue-local slot. A time component is required |
| `bookingDateTime` on a reservation | `2026-08-24T14:00:00` | Venue-local wall clock |
| `createdAt`, `updatedAt`, `paidAt`, `dueBy` | `2026-08-24T04:15:22.481Z` | Absolute instants |

Date ranges are **inclusive at both ends**, and `endDate` always defaults to `startDate`.

## Typical flow

**1. Fetch the vocabularies**

[Tags](/platform/reservation/get-tags) and [reservation statuses](/platform/reservation/get-reservation-statuses) are per-venue reference data. Cache them; they change rarely.

**2. Ask what's available**

[Get Availability](/platform/reservation/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](/platform/reservation/create-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](/platform/reservation/get-reservation) by the `id` the create returned, or [list](/platform/reservation/list-reservations) a date range.

**5. Amend or cancel it**

[Update a Reservation](/platform/reservation/update-reservation) changes the time, party size, status or guest details. [Cancel a Reservation](/platform/reservation/cancel-reservation) releases its table.

## Endpoints

> **[Get Availability](/platform/reservation/get-availability)**
>
> `GET` bookable services, sections and times

> **[List Reservations](/platform/reservation/list-reservations)**
>
> `GET` a venue's reservations by date range

> **[Get a Reservation](/platform/reservation/get-reservation)**
>
> `GET` one reservation by id

> **[Create a Reservation](/platform/reservation/create-reservation)**
>
> `POST` a reservation and allocate a table

> **[Update a Reservation](/platform/reservation/update-reservation)**
>
> `PATCH` an existing reservation

> **[Cancel a Reservation](/platform/reservation/cancel-reservation)**
>
> `POST` a cancellation and release the table

> **[List Venue Tags](/platform/reservation/get-tags)**
>
> `GET` a venue's guest tags

> **[Reservation Statuses](/platform/reservation/get-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:

```json Validation failure — 400 theme={null}
{
  "code": "ValidationError",
  "message": "Query parameters failed validation",
  "requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90",
  "errors": {
    "partySize": ["partySize must be at least 1"],
    "endDate": ["endDate must be on or after startDate"]
  }
}
```

The create, update and cancel endpoints return a narrower shape for `409` and `501` responses:

```json Conflict — 409 theme={null}
{
  "detail": "No table can seat 2 at the requested time"
}
```

Always quote `requestId` when reporting a problem.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.