Reservation

Update a reservation's details

put/api/v1/restaurants/{restaurant_id}/reservations/{reservation_id}

Request

  • Base URL: https://gotable.app
  • URL: https://gotable.app/api/v1/restaurants/{restaurant_id}/reservations/{reservation_id}
  • Auth: HTTP bearer

Path parameters

restaurant_idinteger required
reservation_idinteger required

Request body

datestring date nullable

Required for reservations without a type or "Reservation" type. Can be omitted for "WalkIn" reservations.

timestring nullable

Time (HH:MM) of reservation. Required for reservations without a type or "Reservation" type.

party_sizeinteger

Number of guests in the party.

guest_namestring nullable

Primary guest's name

guest_emailstring nullable

Primary guest's email address

guest_telephonestring nullable

Primary guest's telephone

commentsstring nullable

Primary guest's comments for the reservation.

duration_in_minutesinteger nullable

The duration of the reservation in minutes

table_idsinteger[] nullable

IDs of tables to assign to this reservation. Any ID that doesn't belong to this restaurant is silently dropped.

table_lockboolean nullable

Set to true to pin the assigned tables and prevent auto-reassignment.

Example request

{
  "time": "18:00",
  "party_size": 2,
  "guest_name": "John Doe",
  "guest_email": "john.doe@example.com",
  "guest_telephone": "+31612345678",
  "comments": "One of our guests is vegan.",
  "duration_in_minutes": 90,
  "table_ids": [
    101,
    102
  ]
}

Response

With a valid API token

idinteger

The unique ID of the reservation

offer_idinteger nullable

The unique ID of the offer this reservation is booked under

restaurant_idinteger

The unique ID of the restaurant

created_atstring datetime

The datetime the reservation was created

updated_atstring datetime

The datetime the reservation was last updated

datestring date

Reservation date (YYYY-MM-DD)

timestring

Reservation time (HH:MM)

duration_in_minutesinteger

The duration of the reservation in minutes

starts_atstring datetime

The datetime of the start of the reservation in ISO 8601 format

ends_atstring datetime

The datetime of the end of the reservation in ISO 8601 format

party_sizeinteger

Number of guests in the party

state'pending' | 'rejecting' | 'rejected' | 'confirmed' | 'checked_in' | 'checked_out' | 'cancelling' | 'cancelled' | 'expired' | 'pushed' | 'reconfirmed' | 'skipped'

Current status of the reservation

guest_namestring nullable

Primary guest's name

guest_emailstring nullable

Primary guest's email address

guest_telephonestring nullable

Primary guest's telephone

commentsstring nullable

Primary guest's comments for the reservation.

tagsstring[]

An array of tags for the reservation.

table_idsinteger[]

An array of table IDs of the tables assigned to this reservation.

table_lockboolean

A boolean that determines if tables for this reservation will be pinned. When set to true, tables will not be assigned or reassigned by the auto-allocation system.

Example response

{
  "id": 98765,
  "offer_id": 45678,
  "restaurant_id": 12345,
  "created_at": "2026-09-15T06:18:20+02:00",
  "updated_at": "2026-09-15T06:18:20+02:00",
  "date": "2026-09-15",
  "time": "18:00",
  "duration_in_minutes": 90,
  "starts_at": "2026-09-15T18:00:00+02:00",
  "ends_at": "2026-09-15T19:30:00+02:00",
  "party_size": 2,
  "state": "confirmed",
  "guest_name": "John Doe",
  "guest_email": "john.doe@example.com",
  "guest_telephone": "+31612345678",
  "comments": "One of our guests is vegan.",
  "tags": [
    "vip",
    "soja",
    "halal"
  ],
  "invited_guests": [
    {
      "primary": true,
      "guest_id": 98765,
      "name": "John Doe",
      "email": "john.doe@example.com",
      "access_token": "d3d49d51bc9bdedbf2ae3fc38899c9f22a8958d68a4d5819a59756660d0aab4aa51b95df29197af6",
      "links": [
        {
          "url": "https://gotable.app/api/v1/restaurants/12345/guests/98765",
          "rel": "guest",
          "method": "GET"
        },
        {
          "url": "https://gotable.app/reservations/98765?access_token=d3d49d51bc9bdedbf2ae3fc38899c9f22a8958d68a4d5819a59756660d0aab4aa51b95df29197af6",
          "rel": "guest-reservation-view",
          "method": "GET"
        }
      ]
    }
  ],
  "tables": [
    {
      "id": 98765,
      "label": "Tafel 1",
      "section": "Terras"
    }
  ],
  "table_ids": [
    101,
    102
  ],
  "payment": {
    "amount": {
      "cents": 4000,
      "currency_iso": "EUR"
    },
    "provider": "Mollie",
    "state": "paid"
  },
  "notes": [
    {
      "id": 12345,
      "author_id": 12345,
      "author_name": "John Doe",
      "content": "John Doe"
    }
  ],
  "links": [
    {
      "url": "https://gotable.app/api/v1/restaurants/12345/reservations/98765",
      "rel": "self",
      "method": "GET"
    },
    {
      "url": "https://gotable.app/reservations/98765?access_token={access_token}",
      "rel": "guest-reservation-view",
      "method": "GET"
    },
    {
      "url": "https://gotable.app/api/v1/restaurants/12345/reservations/98765/cancel",
      "rel": "cancel",
      "method": "PUT"
    },
    {
      "url": "https://gotable.app/api/v1/restaurants/12345",
      "rel": "restaurant",
      "method": "GET"
    },
    {
      "url": "https://gotable.app/api/v1/restaurants/12345/offers/45678",
      "rel": "offer",
      "method": "GET"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.