Skip to content

Bookings VenueAPI (4.10.0)

Bookings VenueAPI is a RESTful, OpenAPI-based interface that enables seamless, standardized booking operations across diverse venue management systems (RMS).

Designed for maximum interoperability, the API allows platforms to search, discover, and book venues regardless of the underlying technology stack.

Key capabilities include:

  • Retrieving venue data and availability in real-time
  • Creating bookings through a unified interface
  • Supporting both direct bookings and inquiry-based workflows
  • Enabling venues and distributors to discover each other via a dynamic, service-driven marketplace

The API supports RBAC-secured OAuth2 to ensure role-based access control and secure data transactions. Built for SaaS environments, this service offers scalable, multi-tenant integrations for distribution platforms, booking engines, and RMS providers.

Download OpenAPI description
Languages
Servers
Staging
https://api-staging.bookabletech.com/
Production
https://api.bookabletech.com/
Operations

Booking

Information about the booking

Operations

Request

Security
Staging or Production
Path
compositeIdstringrequired

The unique identifier of the venue/product.

Headers
X-Partner-Referencestring

Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope.

Example: bottomlessbrunch.com
X-Correlation-IDstring

An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.

Example: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA
X-Booking-Sourcestring

Identifies the source or channel through which the booking was created. Valid values include:

  • "email" - Booking created via email integration
  • "phone" - Booking created via phone integration
  • "api" - Booking created via API (default if not provided)
  • "webhook" - Booking created via webhook integration
  • "js-tag" - Booking created via JavaScript tag integration
  • "chatbot" - Booking created via chatbot integration
  • "puller" - Booking created via puller synchronization
  • "portal" - Booking created via portal integration

If not provided, defaults to "api" in the application logic.

Enum"email""phone""api""webhook""js-tag""chatbot""puller""portal"
Example: api
Bodyapplication/jsonrequired
firstNamestringrequired

The first name for the booking.

Example: "John"
lastNamestringrequired

The last name for the booking.

Example: "Doe"
partySizeinteger>= 1required

The number of people the booking is for.

Example: 4
datestring or null(date)required

The date of the booking, in the format YYYY-MM-DD.

Example: "2025-02-15"
timestring or null(time)required

The time of the booking, in the format HH:mm.

Example: "18:30"
typestring(AvailabilityType)required

Specifies how an operators time slot can be handled. A value of book indicates the slot is available for instant confirmation, while request means the slot requires manual approval through an enquiry-based process.

Enum"book""request"
Example: "request"
durationinteger or null

The duration of the booking in minutes.

Example: 90
emailstring(email)^\S+@\S+\.\S+$required

The guest’s email address.

Example: "john.doe@example.com"
phonestringrequired

The guest’s phone number.

Example: 1234567890
notesstring or null

Any additional booking notes or special requests.

Example: "Please prepare a birthday cake."
adminNotesArray of strings or null

Internal notes or comments specific to the distributor.

commentsArray of strings or null

Additional comments or notes provided by the distributor.

labelsArray of strings or null

A list of labels or tags associated with the booking.

preordersArray of objects or null(PreorderRequest)

a list of preorder packages associated with the booking.

preorderMenusArray of objects or null(PreorderMenuRequest)

a list of preorder menus associated with the booking.

partnerBookingIdstring or null

Optional field that stores a reference code or unique identifier provided by an external system, used to link or synchronize records across platforms.

curl -i -X POST \
  'https://api-staging.bookabletech.com/venues/{compositeId}/booking' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Booking-Source: api' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: bottomlessbrunch.com' \
  -d '{
    "firstName": "John",
    "lastName": "Doe",
    "partySize": 4,
    "date": "2025-02-15",
    "time": "18:30",
    "type": "request",
    "duration": 90,
    "email": "john.doe@example.com",
    "phone": 1234567890,
    "notes": "Please prepare a birthday cake.",
    "adminNotes": [
      "string"
    ],
    "comments": [
      "string"
    ],
    "labels": [
      "string"
    ],
    "preorders": [
      {
        "productId": "62692e90d2cf1f163744efc4",
        "packageId": "62692e90d2cf1f163744efc4",
        "quantity": 2
      }
    ],
    "preorderMenus": [
      {
        "menuId": "62692e90d2cf1f163744efc4"
      }
    ],
    "partnerBookingId": "string"
  }'

Responses

Success created

Bodyapplication/json
idstring
Example: "29|X9|275cc44dd2e2496fba44857c9257443a|B"
Response
application/json
{ "id": "29|X9|275cc44dd2e2496fba44857c9257443a|B" }

Request

Returns a paginated list of all bookings.

Security
Staging or Production
Query
cursorstring

A pagination cursor indicating the starting point for the next set of results. If not provided, the first page of results will be returned.

Headers
X-Partner-Referencestring

Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope.

Example: bottomlessbrunch.com
X-Correlation-IDstring

An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.

Example: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA
curl -i -X GET \
  'https://api-staging.bookabletech.com/venues/bookings?cursor=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: bottomlessbrunch.com'

Responses

A list of bookings

Bodyapplication/json
dataArray of objects(Bookings)

The list of bookings

cursorstring

A cursor that can be used to retrieve the next page of results. If null or absent, there are no further pages.

Response
application/json
{ "data": [ {} ], "cursor": "string" }

Request

Returns a specific booking by its unique ID.

Security
Staging or Production
Path
bookingIdstringrequired

Unique identifier of the booking

Headers
X-Partner-Referencestring

Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope.

Example: bottomlessbrunch.com
X-Correlation-IDstring

An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.

Example: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA
curl -i -X GET \
  'https://api-staging.bookabletech.com/venues/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: bottomlessbrunch.com'

Responses

Reservation details

Bodyapplication/json
idstring(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring(The Composite ID)

A globally unique identifier for the venue/product.

datestring(date)(Reservation Date)

The date of the booking.

timestring(time)(Reservation Time)

The time of the booking.

partySizeinteger(int32)(Party Size)

Number of guests for the booking.

statusstring(Status)

Indicates the current status of the booking:

  • Pending: The booking request has been received but not yet processed.
  • InProgress: The enquiry has been received and assigned but is not yet confirmed.
  • Confirmed: The booking has been confirmed.
  • Cancelled: The booking was cancelled or rejected.
  • Deleted: The booking has been deleted from the system.
  • Lost: The booking was not completed before its scheduled date.
Enum"Pending""InProgress""Confirmed""Cancelled""Deleted""Lost"
firstNamestring(First Name)

Guest's first name.

lastNamestring(Last Name)

Guest's last name.

emailstring(email)(Email)

Email address of the guest.

phonestring(Phone)

Phone number of the guest.

companystring(Company)

Company name if the booking is business-related.

locationobject(Location)
durationinteger(int32)(Duration)

Duration of the booking in minutes.

productTypestring(Product Type)

Type of product or service reserved.

notesstring(Notes)

Additional notes for the booking.

createdDatestring(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring(date-time)(Last Updated)

Timestamp of the last booking update.

preordersArray of objects

List of preordered packages for the booking.

preorderMenusArray of objects

List of preordered menus for the booking.

partnerBookingIdstring(Partner Booking Reference)

A custom booking identifier provided by the distributor (partner). This ID is submitted when creating a booking via API or Portal and serves as the partner’s own reference code for cross-system tracking.

operatorBookingIdstring(Operator Booking ID)

The booking identifier generated by the operator’s RMS platform (e.g., SevenRooms, Collins, Zonal). This ID uniquely identifies the reservation within the operator’s system and is displayed in the portal instead of the composite ID.

referencestring(Reference (deprecated))Deprecated

Legacy reference code for the booking. This field is deprecated and will be removed in future versions. Please use operatorBookingId instead.

Response
application/json
{ "id": "string", "compositeId": "string", "date": "2019-08-24", "time": "14:15:22Z", "partySize": 0, "status": "Pending", "reference": "string", "firstName": "string", "lastName": "string", "email": "user@example.com", "phone": "string", "company": "string", "location": { "area": "string", "city": "string", "lat": 0.1, "lng": 0.1, "street": "string", "postCode": "string", "gPlace": "string" }, "duration": 0, "productType": "string", "notes": "string", "createdDate": "2019-08-24T14:15:22Z", "lastUpdate": "2019-08-24T14:15:22Z", "preorders": [ {} ], "preorderMenus": [ {} ], "partnerBookingId": "string", "operatorBookingId": "string" }

Request

Security
Staging or Production
Path
bookingIdstringrequired

The unique identifier of the booking.

Headers
X-Partner-Referencestring

Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope.

Example: bottomlessbrunch.com
X-Correlation-IDstring

An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.

Example: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA
Bodyapplication/jsonrequired
compositeIdstringrequired

The unique identifier of the venue/product.

Example: "29|X9|275cc44dd2e2496fba44857c9257443a|e4d909c290d0fb1ca068ffaddf22cbd0"
firstNamestringrequired

The first name for the booking.

Example: "John"
lastNamestringrequired

The last name for the booking.

Example: "Doe"
partySizeinteger>= 1required

The number of people the booking is for.

Example: 4
datestring or null(date)required

The date of the booking, in the format YYYY-MM-DD.

Example: "2025-02-15"
timestring or null(time)required

The time of the booking, in the format HH:mm.

Example: "18:30"
durationinteger or null

The duration of the booking in minutes.

Example: 120
emailstring(email)^\S+@\S+\.\S+$required

The guest’s email address.

Example: "john.doe@example.com"
phonestringrequired

The guest’s phone number.

Example: 1234567890
notesstring or null

Any additional booking notes or special requests.

Example: "Please prepare a birthday cake."
curl -i -X PUT \
  'https://api-staging.bookabletech.com/venues/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: bottomlessbrunch.com' \
  -d '{
    "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|e4d909c290d0fb1ca068ffaddf22cbd0",
    "firstName": "John",
    "lastName": "Doe",
    "partySize": 4,
    "date": "2025-02-15",
    "time": "18:30",
    "duration": 120,
    "email": "john.doe@example.com",
    "phone": 1234567890,
    "notes": "Please prepare a birthday cake."
  }'

Responses

Reservation details

Bodyapplication/json
idstring(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring(The Composite ID)

A globally unique identifier for the venue/product.

datestring(date)(Reservation Date)

The date of the booking.

timestring(time)(Reservation Time)

The time of the booking.

partySizeinteger(int32)(Party Size)

Number of guests for the booking.

statusstring(Status)

Indicates the current status of the booking:

  • Pending: The booking request has been received but not yet processed.
  • InProgress: The enquiry has been received and assigned but is not yet confirmed.
  • Confirmed: The booking has been confirmed.
  • Cancelled: The booking was cancelled or rejected.
  • Deleted: The booking has been deleted from the system.
  • Lost: The booking was not completed before its scheduled date.
Enum"Pending""InProgress""Confirmed""Cancelled""Deleted""Lost"
firstNamestring(First Name)

Guest's first name.

lastNamestring(Last Name)

Guest's last name.

emailstring(email)(Email)

Email address of the guest.

phonestring(Phone)

Phone number of the guest.

companystring(Company)

Company name if the booking is business-related.

locationobject(Location)
durationinteger(int32)(Duration)

Duration of the booking in minutes.

productTypestring(Product Type)

Type of product or service reserved.

notesstring(Notes)

Additional notes for the booking.

createdDatestring(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring(date-time)(Last Updated)

Timestamp of the last booking update.

preordersArray of objects

List of preordered packages for the booking.

preorderMenusArray of objects

List of preordered menus for the booking.

partnerBookingIdstring(Partner Booking Reference)

A custom booking identifier provided by the distributor (partner). This ID is submitted when creating a booking via API or Portal and serves as the partner’s own reference code for cross-system tracking.

operatorBookingIdstring(Operator Booking ID)

The booking identifier generated by the operator’s RMS platform (e.g., SevenRooms, Collins, Zonal). This ID uniquely identifies the reservation within the operator’s system and is displayed in the portal instead of the composite ID.

referencestring(Reference (deprecated))Deprecated

Legacy reference code for the booking. This field is deprecated and will be removed in future versions. Please use operatorBookingId instead.

Response
application/json
{ "id": "string", "compositeId": "string", "date": "2019-08-24", "time": "14:15:22Z", "partySize": 0, "status": "Pending", "reference": "string", "firstName": "string", "lastName": "string", "email": "user@example.com", "phone": "string", "company": "string", "location": { "area": "string", "city": "string", "lat": 0.1, "lng": 0.1, "street": "string", "postCode": "string", "gPlace": "string" }, "duration": 0, "productType": "string", "notes": "string", "createdDate": "2019-08-24T14:15:22Z", "lastUpdate": "2019-08-24T14:15:22Z", "preorders": [ {} ], "preorderMenus": [ {} ], "partnerBookingId": "string", "operatorBookingId": "string" }

Request

Security
Staging or Production
Path
bookingIdstringrequired

Unique identifier of the booking

Headers
X-Partner-Referencestring

Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope.

Example: bottomlessbrunch.com
X-Correlation-IDstring

An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.

Example: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA
curl -i -X DELETE \
  'https://api-staging.bookabletech.com/venues/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: bottomlessbrunch.com'

Responses

Booking cancelled successfully

Response
No content