OctoTable API
  • 👋Welcome to OctoTable's API documentation
  • Getting Started with the API Collection in Postman
  • Create Clients
    • 🆕How to create clients
  • Authentication
    • 🔑Create Token
  • Getting started with reservations
    • 🍴Create your restaurant
    • 🍽️Manage your rooms
      • 🪑Manage your tables and booking components
      • 📅Manage your services
    • 📝Manage your reservations
      • 🗓️Get booking!
      • ⁉️Where are my slots?
    • ⚠️Error Manual
      • Overview
      • Error reasons
Powered by GitBook
On this page
  • 🔍 Find all reservations
  • 🔍 Find reservation ny ID
  • 🆕 Create a new reservation
  • 🟢 Enable Google Engine
  • 🔄 Update a reservation
  • 🔄 Check in
  • 🔄 Check out
  • 🔄 Update status
  • 🗑️ Delete a reservation
  1. Getting started with reservations
  2. Manage your reservations

Get booking!

APIs for managing reservations, including creating, updating, and canceling table bookings within the restaurant

PreviousManage your reservationsNextWhere are my slots?

Last updated 21 days ago

ℹ️ The Booking Engine is the core feature, allowing customers to make reservations, choose rooms, slot times, number of persons and cancel existing bookings. ⚙️ Use the base resource URL for the following examples, or

https://api.octorate.com/octotable-pms/api/v2

🔍 Find all reservations

GET /reservations

Retrieves a list of all reservations for the specified property (e.g., restaurant) using the property ID

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Query params

Name
Type
Description

next_cursor

string

Pagination cursor

limit

int

Elements limit per page

start_date

date [YYYY-MM-DD]

Start day of search

[HH:MM:SS]

Starting hour of the reservation

end_date

date [YYYY-MM-DD]

End day of search

status[]

[WAITING, ACCEPTED, CANCELLED, CONFIRMED, EXPIRED, PREPAY, OUTOFORDER, REJECTED]

The status of reservation

text_search

string

The text search by customer name, last name or phone number

service_ids[]

[int]

The id list of services

room_ids[]

[int]

The id list of rooms

incoming

Boolean

Search criteria to retrieve incoming reservations

arrived

Boolean

Search criteria to retrieve arrived reservations

departed

Boolean

Search criteria to retrieve departed reservations

Response

{
  "data": [
    {
      "id": 32992280,
      "pax": 2,
      "status": "CANCELLED",
      "customer": {
        "id": 33942074,
        "first_name": "Adam",
        "last_name": "Devis",
        "email": "adam.devis@email.com",
        "phone": "3332211456"
      },
      "service": {
        "id": 33841,
        "name": "Custom dinner"
      },
      "channel": "OCTOTABLE_ADMIN",
      "room": {
        "id": 23288,
        "name": "Sala Nuova"
      },
      "end_date": "2025-05-15T14:00:00",
      "last_status_change": "2025-05-14T17:06:46",
      "notes": "",
      "special_request": "",
      "start_date": "2025-05-15",
      "start_hour": "13:00:00",
      "tables": [
        {
          "id": 197934,
          "name": "T8",
          "bookable": true,
          "free": true,
          "group": false,
          "online": true,
          "room_id": 23288
        }
      ],
      "waiting_list": false
    },
    {
      "id": 32992285,
      "pax": 2,
      "status": "CANCELLED",
      "customer": {
        "id": 33942079,
        "first_name": "Adam 2",
        "last_name": "Devis 2",
        "email": "adam.devis@email.com",
        "phone": "3332211456"
      },
      "service": {
        "id": 33841,
        "name": "Custom dinner"
      },
      "channel": "OCTOTABLE_ADMIN",
      "room": {
        "id": 23288,
        "name": "Sala Nuova"
      },
      "end_date": "2025-05-15T14:00:00",
      "last_status_change": "2025-05-14T17:09:40",
      "notes": "",
      "special_request": "",
      "start_date": "2025-05-15",
      "start_hour": "13:00:00",
      "tables": [
        {
          "id": 197934,
          "name": "T8",
          "bookable": true,
          "free": true,
          "group": false,
          "online": true,
          "room_id": 23288
        }
      ],
      "waiting_list": false
    },
    {
      "id": 32992293,
      "pax": 2,
      "status": "CANCELLED",
      "customer": {
        "id": 33942086,
        "first_name": "Adam 2",
        "last_name": "Devis 2",
        "email": "adam.devis@email.com",
        "phone": "3332211456"
      },
      "service": {
        "id": 33841,
        "name": "Custom dinner"
      },
      "channel": "OCTOTABLE_ADMIN",
      "room": {
        "id": 23288,
        "name": "Sala Nuova"
      },
      "end_date": "2025-05-15T14:00:00",
      "last_status_change": "2025-05-14T17:09:44",
      "start_date": "2025-05-15",
      "start_hour": "13:00:00",
      "tables": [
        {
          "id": 197934,
          "name": "T8",
          "bookable": true,
          "free": true,
          "group": false,
          "online": true,
          "room_id": 23288
        }
      ],
      "waiting_list": false
    }
  ]
}

🔍 Find reservation ny ID

GET /reservations/{reservation_id}

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Response

{
    "data": [
        {
            "id": 31753958,
            "pax": 2,
            "status": "CONFIRMED",
            "customer": {
                "id": 33499559,
                "first_name": "Adam",
                "last_name": "Devis",
                "email": "adam.devis@email.com",
                "phone": "3332211456"
            },
            "service": {
                "id": 30911,
                "name": "Lunch"
            },
            "channel": "OCTOTABLE_ADMIN",
            "room": {
                "id": 21344,
                "name": "Secondary dining room"
            },
            "end_date": "2024-12-14T14:30:00",
            "start_day": "2024-12-14",
            "start_hour": "13:30:00",
            "tables": [
                {
                    "id": 172246,
                    "name": "T8",
                    "bookable": true,
                    "free": true,
                    "group": false,
                    "room_id": 21344
                }
            ],
            "waiting_list": false
        }
    ]
}

🆕 Create a new reservation

POST /reservations

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Body

Name
Type
Description

start_date

date [YYYY-MM-DD]

The start date

start_hour

time [HH:mm:ss]

The start hour

pax

int

The number of person

channel

enum [OCTOTABLE_BOOK, OCTOTABLE_ADMIN]

OCTOTABLE_BOOK: This indicates reservations made through the Booking Engine. resents reservations made through Reserve with Google. OCTOTABLE_ADMIN: Refers to self reservations.

customer

Customer

The customer who makes the reservation

customer.first_name

string

The customers first name

customer.last_name

string

The customer last name

customer.email

string

The customers email

customer.phone

string

The customers phone

service_id

int

The id of the selected service

room_id

int

The id of the selected room

table_ids

[int]

The list of ids of the selected tables

waiting_list

boolean

Keep reservation in waiting list

Response

{
  "data": [
    {
      "id": 31753956,
      "pax": 2,
      "status": "WAITING",
      "customer": {
        "id": 33499557,
        "first_name": "Adam",
        "last_name": "Devis",
        "email": "adam.devis@email.com",
        "phone": "3332211456"
      },
      "service": {
        "id": 30907,
        "name": "Pranzo nuovo"
      },
      "channel": "OCTOTABLE_ADMIN",
      "room": {
        "id": 21343,
        "name": "main dining room"
      },
      "end_date": "2024-12-12T13:30:00",
      "start_date": "2024-12-12",
      "start_hour": "12:30:00",
      "tables": [
        {
          "id": 172245,
          "name": "T8",
          "bookable": true,
          "free": true,
          "group": false,
          "room_id": 21343
        }
      ],
      "waiting_list": false
    }
  ]
}

🟢 Enable Google Engine

POST /reservations/google

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Body

Name
Type
Description

enable_google_engine

boolean

Enable the google engine

Response

{
  "status": "ACCEPTED"
}

🔄 Update a reservation

PUT /reservations/{reservation_id}

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Body

Name
Type
Description

start_day

date [YYYY-MM-DD ]

The start day

start_hour

time [HH:mm:ss]

The start hour

pax

int

The number of person

service_id

int

The id of the selected service

room_id

int

The id of the selected room

table_ids

[int]

The list of ids of the selected tables

Response

{
    "data": [
        {
            "id": 31753936,
            "pax": 2,
            "status": "CONFIRMED",
            "customer": {
                "id": 3255826,
                "first_name": "John",
                "last_name": "Smith",
                "email": "john.smith@demo.com",
                "phone": "55555555555"
            },
            "service": {
                "id": 17884,
                "name": "Breakfast"
            },
            "channel": "OCTOTABLE_ADMIN",
            "start_day": "2024-10-30",
            "start_hour": "18:00:00"
        }
    ]
}

🔄 Check in

PATCH /reservations/{reservation_id}/checkin

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Query params

Name
Type
Description

undo

boolean

Undo check in if it has been made by mistake

Response

{
    "data": [
        {
            "id": 31753956,
            "pax": 2,
            "status": "ACCEPTED",
            "customer": {
                "id": 33499557,
                "first_name": "Adam",
                "last_name": "Devis",
                "email": "adam.devis@email.com",
                "phone": "3332211456"
            },
            "service": {
                "id": 30907,
                "name": "Pranzo nuovo"
            },
            "channel": "OCTOTABLE_ADMIN",
            "room": {
                "id": 21343,
                "name": "main dining room"
            },
            "checkin_date": "2024-12-12T17:04:04.564",
            "end_date": "2024-12-12T13:30:00",
            "expiration_date": "2024-12-12T17:13:49",
            "start_day": "2024-12-12",
            "start_hour": "12:30:00",
            "tables": [
                {
                    "id": 172245,
                    "name": "T8",
                    "bookable": true,
                    "free": true,
                    "group": false,
                    "room_id": 21343
                }
            ],
            "waiting_list": false
        }
    ]
}

🔄 Check out

PATCH /reservations/{reservation_id}/checkout

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Query param

Name
Type
Description

undo

boolean

Undo check out if it has been made by mistake

Response

{
    "data": [
        {
            "id": 31753958,
            "pax": 2,
            "status": "CONFIRMED",
            "customer": {
                "id": 33499559,
                "first_name": "Adam",
                "last_name": "Devis",
                "email": "adam.devis@email.com",
                "phone": "3332211456"
            },
            "service": {
                "id": 30911,
                "name": "Lunch"
            },
            "channel": "OCTOTABLE_ADMIN",
            "room": {
                "id": 21344,
                "name": "Secondary dining room"
            },
            "end_date": "2024-12-14T14:30:00",
            "start_day": "2024-12-14",
            "start_hour": "13:30:00",
            "tables": [
                {
                    "id": 172246,
                    "name": "T8",
                    "bookable": true,
                    "free": true,
                    "group": false,
                    "room_id": 21344
                }
            ],
            "waiting_list": false
        }
    ]
}

🔄 Update status

PATCH /reservations/{reservation_id}

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Query param

Name
Type
Description

status

enum

The status of the reservation in waiting list

Response

{
    "data": [
        {
            "id": 31753956,
            "pax": 2,
            "status": "WAITING",
            "customer": {
                "id": 33499557,
                "first_name": "Adam",
                "last_name": "Devis",
                "email": "adam.devis@email.com",
                "phone": "3332211456"
            },
            "service": {
                "id": 30907,
                "name": "Pranzo nuovo"
            },
            "channel": "OCTOTABLE_ADMIN",
            "room": {
                "id": 21343,
                "name": "main dining room"
            },
            "end_date": "2024-12-12T13:30:00",
            "start_day": "2024-12-12",
            "start_hour": "12:30:00",
            "tables": [
                {
                    "id": 172245,
                    "name": "T8",
                    "bookable": true,
                    "free": true,
                    "group": false,
                    "room_id": 21343
                }
            ],
            "waiting_list": false
        }
    ]
}

🗑️ Delete a reservation

DELETE /reservations/{reservation_id}

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Property

<your_property_id>

Response

{
    "data": [
        172221
    ]
}

Retrieves a reservations by its ID

Creates a new reservation for the specified property using the provided reservation details

Activates the Google Engine for a specified property

Update an existing reservation

Customers check-in

Customers check out

Update the status of the reservation in waiting list. If on the waiting list, the reservation should become accepted, declined, or confirmed

Delete a reservation

📝
🗓️
start_hour
see the complete collection
see more
see more
see more
see more
see more
see more
see more
see more
see more