Skip to content

Bookings API (7.0.0)

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

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 TMS providers.

Download OpenAPI description
Languages
Servers
Live
https://api.bookabletech.com
Sandbox
https://api-sandbox.bookabletech.com

Venue

Information about venue

Operations

Retrieve a list of venues

Request

Returns a paginated list of venues available to the authenticated user or system. This endpoint supports page-based pagination to efficiently retrieve large sets of results.

Security
Live(Required scopes:
venue:read
)
or Sandbox(Required scopes:
venue:read
)
Query
venueNamestring[ 2 .. 100 ] characters

Filter venues by name. Supports partial matching (case-insensitive). Example: "dishoom" will match "Dishoom Covent Garden".

Example: venueName=dishoom
venueGroupNamestring[ 2 .. 100 ] characters

Filter venues by group or chain name. Supports partial matching (case-insensitive). Example: "gordon ramsay" will match all Gordon Ramsay restaurants.

Example: venueGroupName=gordon ramsay
featuresArray of strings[ 1 .. 10 ] items

Filter venues by features. Supports multiple values separated by commas. Available features include: dog_friendly, wifi, parking, wheelchair_accessible, tv_sports, live_music, karaoke, pool_table, romantic, casual, family_friendly, quiet, lively, italian, asian, vegetarian, seafood, etc.

Example: features=dog_friendly,wifi,romantic
contentstring[ 3 .. 200 ] characters

Filter venues by description content. Supports partial matching (case-insensitive). Searches within the venue's content/description field.

Example: content=bombay cuisine
productNamestring[ 2 .. 100 ] characters

Filter venues by product/experience name. Supports partial matching (case-insensitive). Searches within product names and experience names.

Example: productName=dining room
productCategoryArray of strings[ 1 .. 10 ] items

Filter venues by product categories. Supports multiple values separated by commas. Only returns venues that have active products in the specified categories. Supports partial matching (case-insensitive).

Example: productCategory=lunch,dinner,brunch
bookingDaysArray of strings(DayOfWeek)[ 1 .. 7 ] items

Filter venues by available booking days. Supports multiple values separated by commas. Use day names (monday, tuesday, wednesday, thursday, friday, saturday, sunday).

Items Enum"sunday""monday""tuesday""wednesday""thursday""friday""saturday"
Example: bookingDays=monday,tuesday,friday
areastring[ 2 .. 100 ] characters

Filter venues by area/location. Supports partial matching (case-insensitive). Searches within the venue's area field.

Example: area=covent garden
citystring[ 2 .. 100 ] characters

Filter venues by city. Supports partial matching (case-insensitive).

Example: city=london
streetstring[ 3 .. 200 ] characters

Filter venues by street address. Supports partial matching (case-insensitive). Searches within the venue's street address field.

Example: street=upper st martin
venueTypesArray of strings[ 1 .. 10 ] items

Filter venues by type. Supports multiple values separated by commas. Available types include: restaurant, bar, cafe, hotel, pub, club, etc.

Example: venueTypes=restaurant,bar
datestring(date)

Filter venues by booking rules for a specific date. Format: ISO 8601 (YYYY-MM-DD). Returns venues that accept bookings on the specified date according to their booking rules. When both 'date' and 'bookingDays' filters are provided, the 'date' filter takes precedence and overrides the 'bookingDays' filter.

Example: date=2025-10-15
timestring or null(time)

Filter venues by booking rules at a specific time. Format: 24-hour (HH:MM). Returns venues that accept bookings at the specified time according to their booking rules. Must be used in conjunction with the date parameter.

Example: time=19:30
fieldsstring

Field selection using Google Fields syntax. Comma-separated list of top-level Venue fields to include. Use parentheses to select sub-fields of complex objects. When omitted, all fields are returned (backwards compatible).

Examples:

  • fields=id,name,location,products
  • fields=id,name,location(lat,lng,city),products(compositeId,productName,category)
  • fields=id,name,products(compositeId,productName,availabilityRules(from,to))

Valid top-level fields: id, name, venueGroupName, content, phone_number, website, reservable, location, types, photos, is_active, created_at, updated_at, products, preorders, opening_times

Example: fields=id,name,location(lat,lng,city),products(compositeId,productName,category)
pageNumberinteger>= 1

The index of the page to return (default is 1).

Default 1
pageSizeinteger[ 1 .. 100 ]

The number of items to return per page (default is 20, max is 100).

Default 20
sortBystring

The field to sort results by. Defaults to 'Default' (composite ID ordering).

  • default: Sort by composite ID (venue_group_id, rms_id, venue_id)
  • name: Sort venues alphabetically by name
  • city: Sort venues by city name, then by venue name
  • area: Sort venues by area, then by venue name
  • venueGroup: Sort venues by venue group name (requires venueGroupName filter)
  • relevance: Sort by semantic similarity using vector embeddings (requires at least one embedding filter: venueName, content, or features with semantic search enabled)
Default "default"
Enum"default""name""city""area""venueGroup""relevance"
Example: sortBy=name
sortDirectionstring

The direction to sort results. Defaults to 'ASC'.

  • ASC: Ascending order (A-Z, 0-9, most similar to least similar for relevance)
  • DESC: Descending order (Z-A, 9-0, least similar to most similar for relevance)
Default "ASC"
Enum"ASC""DESC"
Example: sortDirection=ASC
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.

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.bookabletech.com/venues?venueName=dishoom&venueGroupName=gordon+ramsay&features=dog_friendly%2Cwifi%2Cromantic&content=bombay+cuisine&productName=dining+room&productCategory=lunch%2Cdinner%2Cbrunch&bookingDays=monday%2Ctuesday%2Cfriday&area=covent+garden&city=london&street=upper+st+martin&venueTypes=restaurant%2Cbar&date=2025-10-15&time=19%3A30&fields=id%2Cname%2Clocation%28lat%2Clng%2Ccity%29%2Cproducts%28compositeId%2CproductName%2Ccategory%29&pageNumber=1&pageSize=20&sortBy=name&sortDirection=ASC' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

A list of venues was successfully retrieved.

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
metaobject
dataArray of objects(Venue)required

A list of venue records for the current page.

data[].​idstring or null

Unique identifier for the venue.

data[].​namestring or null

The name of the venue.

data[].​venueGroupNamestring or null

The name of the venue group or chain that this venue belongs to.

data[].​contentstring or null

Description or additional content about the venue.

data[].​phone_numberstring or null

The contact phone number of the venue.

data[].​websitestring or null(uri)

The official website of the venue.

data[].​reservableboolean or null

Indicates if the venue can be reserved.

data[].​locationobject or null(Location)
data[].​typesArray of strings or null

A list of types that categorize the venue.

data[].​photosArray of strings or null

A collection of photo URLs representing the venue.

data[].​updated_atstring or null(date-time)

Timestamp when the venue was last updated.

data[].​productsArray of objects or null(Product)

List of products available at the venue.

data[].​preordersobject(VenuePreorders)

Pre-order options available at the venue, including packages and menus.

data[].​opening_timesobject or null

Opening times for the venue, including weekly schedule and specific date overrides.

Example: {"monday":{"status":true,"open":"10:00","close":"23:00","notes":"","private_hire":false},"tuesday":{"status":true,"open":"10:00","close":"23:00","notes":"","private_hire":false},"2025-12-25":{"status":false,"open":"","close":"","notes":"Closed for Christmas"}}
data[].​is_activeboolean or nullDeprecated

Indicates if the venue is currently active.

Default true
data[].​created_atstring or null(date-time)Deprecated

Timestamp when the venue was created.

Response
{ "meta": { "currentPage": 1, "pageSize": 20, "totalItems": 2, "totalPages": 1 }, "data": [ {} ] }

Get the venue

Request

Retrieve a list of venues.

Security
Live(Required scopes:
venue:read
)
or Sandbox(Required scopes:
venue:read
)
Path
venueIdstringrequired

The id of venue

Example: 29|X9|275cc44dd2e2496fba44857c9257443a
Query
fieldsstring

Field selection using Google Fields syntax. Comma-separated list of top-level Venue fields to include. Use parentheses to select sub-fields of complex objects. When omitted, all fields are returned (backwards compatible).

Examples:

  • fields=id,name,location,products
  • fields=id,name,location(lat,lng,city),products(compositeId,productName,category)
  • fields=id,name,products(compositeId,productName,availabilityRules(from,to))

Valid top-level fields: id, name, venueGroupName, content, phone_number, website, reservable, location, types, photos, is_active, created_at, updated_at, products, preorders, opening_times

Example: fields=id,name,location(lat,lng,city),products(compositeId,productName,category)
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.

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.bookabletech.com/venues/29|X9|275cc44dd2e2496fba44857c9257443a?fields=id%2Cname%2Clocation%28lat%2Clng%2Ccity%29%2Cproducts%28compositeId%2CproductName%2Ccategory%29' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

Schema for the response returned when retrieving a list of venues.

Body
idstring or null

Unique identifier for the venue.

namestring or null

The name of the venue.

venueGroupNamestring or null

The name of the venue group or chain that this venue belongs to.

contentstring or null

Description or additional content about the venue.

phone_numberstring or null

The contact phone number of the venue.

websitestring or null(uri)

The official website of the venue.

reservableboolean or null

Indicates if the venue can be reserved.

locationobject or null(Location)
typesArray of strings or null

A list of types that categorize the venue.

photosArray of strings or null

A collection of photo URLs representing the venue.

updated_atstring or null(date-time)

Timestamp when the venue was last updated.

productsArray of objects or null(Product)

List of products available at the venue.

preordersobject(VenuePreorders)

Pre-order options available at the venue, including packages and menus.

opening_timesobject or null

Opening times for the venue, including weekly schedule and specific date overrides.

Example: {"monday":{"status":true,"open":"10:00","close":"23:00","notes":"","private_hire":false},"tuesday":{"status":true,"open":"10:00","close":"23:00","notes":"","private_hire":false},"2025-12-25":{"status":false,"open":"","close":"","notes":"Closed for Christmas"}}
is_activeboolean or nullDeprecated

Indicates if the venue is currently active.

Default true
created_atstring or null(date-time)Deprecated

Timestamp when the venue was created.

Response
{ "id": "29|X9|275cc44dd2e2496fba44857c9257443a", "name": "Dishoom", "venueGroupName": "Dishoom Group", "content": "An Indian restaurant.", "phone_number": "+441234567890", "website": "https://dishoom.com", "reservable": true, "location": { "area": "Covent Garden", "city": "London", "lat": 51.5118, "lng": -0.1236, "street": "12 Upper St Martin's Lane", "postCode": "WC2H 9FB" }, "types": [ "restaurant", "bar" ], "products": [ {} ] }

Check venue availability

Request

Security
Live(Required scopes:
venue:read
)
or Sandbox(Required scopes:
venue:read
)
Path
compositeIdstringrequired

The unique identifier of the venue or product.

Query
AvailabilityRequestobject(AvailabilityRequest)
fieldsstring

Field selection using Google Fields syntax. Comma-separated list of top-level AvailabilityResponse fields to include. Use parentheses to select sub-fields of complex objects. When omitted, all fields are returned (backwards compatible).

Examples:

  • fields=name,times
  • fields=times(time,duration,type)
  • fields=name,deposit,policy,times(time,duration,preOrderItems)

Valid top-level fields: name, deposit, policy, cancellationPolicy, times

Example: fields=name,times(time,duration,type)
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.

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.bookabletech.com/venues/{compositeId}/availability?partySize=1&children=2&date=2019-08-24&startTime=14%3A15%3A22Z&endTime=14%3A15%3A22Z&duration=0&minimumSpend=0.1&under18s=true&occasionTypes=Christmas+Party&promotedEvents=true&accessibility=true&servesFood=true&includeUnavailable=true&fields=name%2Ctimes%28time%2Cduration%2Ctype%29' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

Success response

Body
namestring or null

The name of the available booking option.

depositnumber or null(float)

The deposit amount required for the booking.

policystring or null

General policy details regarding the booking.

autoConfirmRuleobject or null(AutoConfirmRule)

Defines the criteria for automatically confirming bookings without manual intervention.

cancellationPolicystring or null

Terms and conditions for canceling the booking.

timesArray of objects or null
noAvailabilityReasonstring or null

Populated only when times is empty. Human-readable message explaining why no availability was found for the requested parameters.

noAvailabilityCodestring or null

Populated only when times is empty. Machine-readable code indicating why no availability was found. Known values: NO_AVAILABILITY, NO_ELIGIBLE_PRODUCTS, FILTERED_BY_OPERATOR_RULES, FILTERED_BY_CAPACITY. New values may be added in future without prior notice — treat unknown values as a generic no-availability condition.

Response
{ "name": "Dinner", "deposit": 10, "policy": "Please arrive on time.", "cancellationPolicy": "Cancel 48h before or a fee applies.", "times": [ {}, {}, {} ] }

Create a new booking

Request

Security
Live(Required scopes:
venue-booking:create
)
or Sandbox(Required scopes:
venue-booking:create
)
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.

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 adults the booking is for.

Example: 4
childreninteger or null

The number of children included in the booking. Note: not all TMS providers support a distinction between adults and children. When unsupported, children may be added to the total party size or ignored entirely.

Example: 2
datestring or null(date)required

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

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

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

Example: "19:00"
typestring or null(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: "+441234567890"
notesstring or null

Any additional booking notes or special requests.

Example: "Birthday celebration"
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.

preordersobject or null(PreorderContainer)

Container for all preorder items (packages and menus)

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.

Example: "ext-ref-123"
spaceIdinteger or null

Optional space ID to book. When provided, overrides automatic area selection by the TMS. Obtain valid space IDs from the spaces array returned in the availability response time slots.

depositAmountnumber or null(float)

Optional deposit amount to charge for this booking. When provided, the payment call is made to the RMS for this exact amount. When absent, no payment is processed.

curl -i -X POST \
  'https://api.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: string' \
  -d '{
    "firstName": "John",
    "lastName": "Doe",
    "partySize": 4,
    "date": "2025-06-15",
    "time": "19:00",
    "type": "book",
    "duration": 90,
    "email": "john.doe@example.com",
    "phone": "+441234567890",
    "notes": "Birthday celebration",
    "partnerBookingId": "ext-ref-123"
  }'

Responses

Success created

Body
idstring or null(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring or null(The Composite ID)

A globally unique identifier for the venue/product.

datestring or null(date)(Reservation Date)

The date of the booking.

timestring or null(time)(Reservation Time)

The time of the booking.

partySizeinteger or null(int32)(Party Size)

Number of guests for the booking.

statusstring or null(Booking 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"
Example: "Confirmed"
firstNamestring or null(First Name)

Guest's first name.

lastNamestring or null(Last Name)

Guest's last name.

emailstring or null(email)(Email)

Email address of the guest.

phonestring or null(Phone)

Phone number of the guest.

venueGroupNamestring or null(Venue Group Name)

The name of the venue group that the booked venue belongs to.

locationobject or null(Location)
durationinteger or null(int32)(Duration)

Duration of the booking in minutes.

productNamestring or null(Product Type)

Name of the product or service reserved.

notesstring or null(Notes)

Additional notes for the booking.

createdDatestring or null(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring or null(date-time)(Last Updated)

Timestamp of the last booking update.

preordersobject or null

Preordered items for the booking

partnerBookingIdstring or null(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 or null(Operator Booking ID)

The booking identifier generated by the operator's TMS 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.

depositAmountnumber or null(float)(Deposit Amount)

The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest.

areaobject or null(Booking Area)

Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS.

referencestring or null(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
{ "id": "29|X9|69b3e37eb35cb412b60f3737", "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|69b3e389b35cb412b60f3738", "date": "2025-06-15", "time": "19:00", "partySize": 4, "status": "Confirmed", "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "phone": "+441234567890", "venueGroupName": "Dishoom Group", "location": { "city": "London", "area": "Covent Garden", "street": "12 Upper St Martin's Lane", "postCode": "WC2H 9FB" }, "duration": 90, "productName": "Dinner", "notes": "Birthday celebration", "createdDate": "2025-05-01T10:00:00Z", "lastUpdate": "2025-05-01T10:00:00Z", "partnerBookingId": "ext-ref-123", "operatorBookingId": "op-ref-456" }

Retrieve a list of bookings

Request

Returns a paginated list of all bookings.

Security
Live(Required scopes:
venue-booking:read
)
or Sandbox(Required scopes:
venue-booking:read
)
Query
compositeIdstring or null

Filter bookings by the unique composite identifier. This parameter supports two filtering modes:

  • Filter by venue: Provide a 3-part composite ID (venueGroupId|rmsId|venueId) to retrieve all bookings for a specific venue, regardless of product.
  • Filter by product: Provide a complete 4-part composite ID (venueGroupId|rmsId|venueId|productId) to retrieve bookings for a specific product within a venue.
Example: compositeId=29|X9|275cc44dd2e2496fba44857c9257443a
firstNamestring or null

Filter bookings by customer first name (partial match).

lastNamestring or null

Filter bookings by customer last name (partial match).

emailstring or null

Filter bookings by customer email (partial match).

partnerBookingIdstring or null

Filter bookings by partner booking reference ID.

operatorBookingIdstring or null

Filter bookings by operator booking reference ID.

datestring or null(date)

Filter bookings by exact booking date (YYYY-MM-DD).

dateFromstring or null(date)

Filter bookings from this date onwards (inclusive, YYYY-MM-DD).

dateTostring or null(date)

Filter bookings up to this date (inclusive, YYYY-MM-DD).

statusstring or null(Booking Status)

Filter bookings by status.

Enum"Pending""InProgress""Confirmed""Cancelled""Deleted""Lost"
Example: status=Confirmed
fieldsstring

Field selection using Google Fields syntax. Comma-separated list of top-level Booking fields to include. Use parentheses to select sub-fields of complex objects. When omitted, all fields are returned (backwards compatible).

Examples:

  • fields=id,compositeId,date,time,status
  • fields=id,date,partySize,firstName,lastName,email
  • fields=id,compositeId,date,preorders(packages,menus)

Valid top-level fields: id, compositeId, date, time, partySize, status, firstName, lastName, email, phone, venueGroupName, location, duration, productName, notes, createdDate, lastUpdate, preorders, partnerBookingId, operatorBookingId

Example: fields=id,compositeId,date,time,partySize,status,firstName,lastName,email
pageNumberinteger or null>= 1

The index of the page to return (default is 1).

pageSizeinteger or null[ 1 .. 100 ]

The number of items to return per page (default is 20, max is 100).

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.

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.bookabletech.com/venues/bookings?compositeId=29%2CX9%2C275cc44dd2e2496fba44857c9257443a&firstName=string&lastName=string&email=string&partnerBookingId=string&operatorBookingId=string&date=2019-08-24&dateFrom=2019-08-24&dateTo=2019-08-24&status=Confirmed&fields=id%2CcompositeId%2Cdate%2Ctime%2CpartySize%2Cstatus%2CfirstName%2ClastName%2Cemail&pageNumber=1&pageSize=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

A list of bookings

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
metaobject
dataArray of objects(Bookings)required

The list of bookings

data[].​idstring or null(The Booking ID)

A globally unique identifier for the booking.

data[].​compositeIdstring or null(The Composite ID)

A globally unique identifier for the venue/product.

data[].​datestring or null(date)(Reservation Date)

The date of the booking.

data[].​timestring or null(time)(Reservation Time)

The time of the booking.

data[].​partySizeinteger or null(int32)(Party Size)

Number of guests for the booking.

data[].​statusstring or null(Booking 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"
Example: "Confirmed"
data[].​firstNamestring or null(First Name)

Guest's first name.

data[].​lastNamestring or null(Last Name)

Guest's last name.

data[].​emailstring or null(email)(Email)

Email address of the guest.

data[].​phonestring or null(Phone)

Phone number of the guest.

data[].​venueGroupNamestring or null(Venue Group Name)

The name of the venue group that the booked venue belongs to.

data[].​locationobject or null(Location)
data[].​durationinteger or null(int32)(Duration)

Duration of the booking in minutes.

data[].​productNamestring or null(Product Type)

Name of the product or service reserved.

data[].​notesstring or null(Notes)

Additional notes for the booking.

data[].​createdDatestring or null(date-time)(Created Date)

Timestamp when the booking was created.

data[].​lastUpdatestring or null(date-time)(Last Updated)

Timestamp of the last booking update.

data[].​preordersobject or null

Preordered items for the booking

data[].​partnerBookingIdstring or null(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.

data[].​operatorBookingIdstring or null(Operator Booking ID)

The booking identifier generated by the operator's TMS 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.

data[].​depositAmountnumber or null(float)(Deposit Amount)

The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest.

data[].​areaobject or null(Booking Area)

Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS.

data[].​referencestring or null(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
{ "meta": { "currentPage": 1, "pageSize": 20, "totalItems": 2, "totalPages": 1 }, "data": [ {}, {} ] }

Retrieve a booking by ID

Request

Returns a specific booking by its unique ID.

Security
Live(Required scopes:
venue-booking:read
)
or Sandbox(Required scopes:
venue-booking:read
)
Path
bookingIdstringrequired

Unique identifier of the booking

Query
fieldsstring

Field selection using Google Fields syntax. Comma-separated list of top-level Booking fields to include. Use parentheses to select sub-fields of complex objects. When omitted, all fields are returned (backwards compatible).

Examples:

  • fields=id,compositeId,date,time,status
  • fields=id,date,partySize,firstName,lastName,email
  • fields=id,compositeId,date,preorders(packages,menus)

Valid top-level fields: id, compositeId, date, time, partySize, status, firstName, lastName, email, phone, venueGroupName, location, duration, productName, notes, createdDate, lastUpdate, preorders, partnerBookingId, operatorBookingId

Example: fields=id,compositeId,date,time,partySize,status,firstName,lastName,email
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.

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.bookabletech.com/venues/bookings/{bookingId}?fields=id%2CcompositeId%2Cdate%2Ctime%2CpartySize%2Cstatus%2CfirstName%2ClastName%2Cemail' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

Reservation details

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
idstring or null(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring or null(The Composite ID)

A globally unique identifier for the venue/product.

datestring or null(date)(Reservation Date)

The date of the booking.

timestring or null(time)(Reservation Time)

The time of the booking.

partySizeinteger or null(int32)(Party Size)

Number of guests for the booking.

statusstring or null(Booking 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"
Example: "Confirmed"
firstNamestring or null(First Name)

Guest's first name.

lastNamestring or null(Last Name)

Guest's last name.

emailstring or null(email)(Email)

Email address of the guest.

phonestring or null(Phone)

Phone number of the guest.

venueGroupNamestring or null(Venue Group Name)

The name of the venue group that the booked venue belongs to.

locationobject or null(Location)
durationinteger or null(int32)(Duration)

Duration of the booking in minutes.

productNamestring or null(Product Type)

Name of the product or service reserved.

notesstring or null(Notes)

Additional notes for the booking.

createdDatestring or null(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring or null(date-time)(Last Updated)

Timestamp of the last booking update.

preordersobject or null

Preordered items for the booking

partnerBookingIdstring or null(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 or null(Operator Booking ID)

The booking identifier generated by the operator's TMS 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.

depositAmountnumber or null(float)(Deposit Amount)

The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest.

areaobject or null(Booking Area)

Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS.

referencestring or null(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
{ "id": "29|X9|69b3e37eb35cb412b60f3737", "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|69b3e389b35cb412b60f3738", "date": "2025-06-15", "time": "19:00", "partySize": 4, "status": "Confirmed", "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "phone": "+441234567890", "venueGroupName": "Dishoom Group", "location": { "city": "London", "area": "Covent Garden", "street": "12 Upper St Martin's Lane", "postCode": "WC2H 9FB" }, "duration": 90, "productName": "Dinner", "notes": "Birthday celebration", "createdDate": "2025-05-01T10:00:00Z", "lastUpdate": "2025-05-01T10:00:00Z", "partnerBookingId": "ext-ref-123", "operatorBookingId": "op-ref-456" }

Update an existing booking by ID

Request

Security
Live(Required scopes:
venue-booking:update
)
or Sandbox(Required scopes:
venue-booking:update
)
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.

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|69b3e389b35cb412b60f3738"
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-06-15"
timestring or null(time)required

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

Example: "19:00"
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: "+441234567890"
notesstring or null

Any additional booking notes or special requests.

Example: "Birthday celebration"
curl -i -X PUT \
  'https://api.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: string' \
  -d '{
    "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|69b3e389b35cb412b60f3738",
    "firstName": "John",
    "lastName": "Doe",
    "partySize": 4,
    "date": "2025-06-15",
    "time": "19:00",
    "duration": 90,
    "email": "john.doe@example.com",
    "phone": "+441234567890",
    "notes": "Birthday celebration"
  }'

Responses

Reservation details

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
idstring or null(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring or null(The Composite ID)

A globally unique identifier for the venue/product.

datestring or null(date)(Reservation Date)

The date of the booking.

timestring or null(time)(Reservation Time)

The time of the booking.

partySizeinteger or null(int32)(Party Size)

Number of guests for the booking.

statusstring or null(Booking 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"
Example: "Confirmed"
firstNamestring or null(First Name)

Guest's first name.

lastNamestring or null(Last Name)

Guest's last name.

emailstring or null(email)(Email)

Email address of the guest.

phonestring or null(Phone)

Phone number of the guest.

venueGroupNamestring or null(Venue Group Name)

The name of the venue group that the booked venue belongs to.

locationobject or null(Location)
durationinteger or null(int32)(Duration)

Duration of the booking in minutes.

productNamestring or null(Product Type)

Name of the product or service reserved.

notesstring or null(Notes)

Additional notes for the booking.

createdDatestring or null(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring or null(date-time)(Last Updated)

Timestamp of the last booking update.

preordersobject or null

Preordered items for the booking

partnerBookingIdstring or null(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 or null(Operator Booking ID)

The booking identifier generated by the operator's TMS 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.

depositAmountnumber or null(float)(Deposit Amount)

The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest.

areaobject or null(Booking Area)

Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS.

referencestring or null(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
{ "id": "29|X9|69b3e37eb35cb412b60f3737", "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|69b3e389b35cb412b60f3738", "date": "2025-06-15", "time": "19:00", "partySize": 4, "status": "Confirmed", "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "phone": "+441234567890", "venueGroupName": "Dishoom Group", "location": { "city": "London", "area": "Covent Garden", "street": "12 Upper St Martin's Lane", "postCode": "WC2H 9FB" }, "duration": 90, "productName": "Dinner", "notes": "Birthday celebration", "createdDate": "2025-05-01T10:00:00Z", "lastUpdate": "2025-05-01T10:00:00Z", "partnerBookingId": "ext-ref-123", "operatorBookingId": "op-ref-456" }

Update a booking

Request

Partially updates a booking using JSON Patch operations as defined in RFC 6902. This endpoint allows you to perform granular updates on a booking without sending the entire resource. Supported operations include:

  • add: Add a new field or append to an array
  • remove: Remove a field or array element
  • replace: Update an existing field value Read-only Fields (cannot be patched):
  • /id, /compositeId, /status, /reference, /venueGroupName, /location/*, /productName, /createdDate, /lastUpdate

Patchable Fields:

  • /date - Change booking date (format: YYYY-MM-DD)
  • /time - Change booking time (format: HH:MM)
  • /duration - Update duration in minutes
  • /partySize - Change number of guests
  • /firstName - Update guest first name
  • /lastName - Update guest last name
  • /email - Update guest email
  • /phone - Update guest phone number
  • /notes - Update booking notes
  • /partnerBookingId - Update partner booking reference
  • /operatorBookingId - Update operator booking ID Preorders - Packages:
  • /preorders/packages - Add/remove entire packages array
  • /preorders/packages/- - Add a package to the end of the array
  • /preorders/packages/{packageId} - Replace/remove a specific package by ID
  • /preorders/packages/{packageId}/quantity - Update quantity by package ID Note: For packages, only id and quantity can be modified. Other fields (name, description, type, price) are read-only. Package IDs are alphanumeric strings (e.g., "5de64c68ce9583458c447544"). Index-based paths are NOT supported. Preorders - Menus:
  • /preorders/menus - Add/remove entire menus array
  • /preorders/menus/- - Add a menu to the end of the array
  • /preorders/menus/{menuId} - Replace/remove a specific menu by ID
  • /preorders/menus/{menuId}/quantity - Update menu quantity by ID
  • /preorders/menus/{menuId}/items - Replace entire items array for a menu
  • /preorders/menus/{menuId}/items/- - Add an item to a menu
  • /preorders/menus/{menuId}/items/{itemId} - Replace/remove a menu item by ID
  • /preorders/menus/{menuId}/items/{itemId}/quantity - Update item quantity by ID Note: For menu items, only id and quantity can be modified. The name field is read-only. Menu and Item IDs are alphanumeric strings (e.g., "5de64c68ce9583458c447544"). Index-based paths are NOT supported. Examples: Update guest information:
  { "op": "replace", "path": "/email", "value": "newemail@example.com" },
  { "op": "replace", "path": "/phone", "value": "+44 20 7946 0958" }
] ```
Update booking date and time: ```json [
  { "op": "replace", "path": "/date", "value": "2025-12-25" },
  { "op": "replace", "path": "/time", "value": "19:30" }
] ```
Add a package to preorders: ```json [
  { "op": "add", "path": "/preorders/packages/-", "value": { "id": "5de64c68ce9583458c447544", "quantity": 2 } }
] ```
Update package quantity: ```json [
  { "op": "replace", "path": "/preorders/packages/5de64c68ce9583458c447544/quantity", "value": 5 }
] ```
Remove a package: ```json [
  { "op": "remove", "path": "/preorders/packages/5de64c68ce9583458c447544" }
] ```
Add a menu with items: ```json [
  {
    "op": "add",
    "path": "/preorders/menus/-",
    "value": {
      "id": "5de64c68ce9583458c447abc",
      "quantity": 3,
      "items": [
        { "id": "5de64c68ce9583458c447001", "quantity": 1 },
        { "id": "5de64c68ce9583458c447002", "quantity": 2 }
      ]
    }
  }
] ```
Add item to existing menu: ```json [
  { "op": "add", "path": "/preorders/menus/5de64c68ce9583458c447abc/items/-", "value": { "id": "5de64c68ce9583458c447003", "quantity": 1 } }
] ```
Update menu item quantity: ```json [
  { "op": "replace", "path": "/preorders/menus/5de64c68ce9583458c447abc/items/5de64c68ce9583458c447001/quantity", "value": 2 }
] ```
Security
Live(Required scopes:
venue-booking:update
)
or Sandbox(Required scopes:
venue-booking:update
)
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.

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/json-patch+jsonrequired

Array of JSON Patch operations to apply to the booking

Array [
opstringrequired

The operation to perform

Enum"add""remove""replace"
Example: "replace"
pathstring^\/.*required

JSON Pointer (RFC 6901) to the target location in the document. Must start with / and use / as path separator.

Example: "/status"
valueany

The value to use for the operation. Required for add, replace, and test operations. Can be any valid JSON value (string, number, boolean, object, array, null).

Example: "Confirmed"
]
curl -i -X PATCH \
  'https://api.bookabletech.com/venues/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json-patch+json' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string' \
  -d '[
    {
      "op": "replace",
      "path": "/email",
      "value": "newemail@example.com"
    },
    {
      "op": "replace",
      "path": "/firstName",
      "value": "John"
    }
  ]'

Responses

Booking successfully updated

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
idstring or null(The Booking ID)

A globally unique identifier for the booking.

compositeIdstring or null(The Composite ID)

A globally unique identifier for the venue/product.

datestring or null(date)(Reservation Date)

The date of the booking.

timestring or null(time)(Reservation Time)

The time of the booking.

partySizeinteger or null(int32)(Party Size)

Number of guests for the booking.

statusstring or null(Booking 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"
Example: "Confirmed"
firstNamestring or null(First Name)

Guest's first name.

lastNamestring or null(Last Name)

Guest's last name.

emailstring or null(email)(Email)

Email address of the guest.

phonestring or null(Phone)

Phone number of the guest.

venueGroupNamestring or null(Venue Group Name)

The name of the venue group that the booked venue belongs to.

locationobject or null(Location)
durationinteger or null(int32)(Duration)

Duration of the booking in minutes.

productNamestring or null(Product Type)

Name of the product or service reserved.

notesstring or null(Notes)

Additional notes for the booking.

createdDatestring or null(date-time)(Created Date)

Timestamp when the booking was created.

lastUpdatestring or null(date-time)(Last Updated)

Timestamp of the last booking update.

preordersobject or null

Preordered items for the booking

partnerBookingIdstring or null(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 or null(Operator Booking ID)

The booking identifier generated by the operator's TMS 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.

depositAmountnumber or null(float)(Deposit Amount)

The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest.

areaobject or null(Booking Area)

Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS.

referencestring or null(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
{ "id": "29|X9|69b3e37eb35cb412b60f3737", "compositeId": "29|X9|275cc44dd2e2496fba44857c9257443a|69b3e389b35cb412b60f3738", "date": "2025-06-15", "time": "19:00", "partySize": 4, "status": "Confirmed", "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "phone": "+441234567890", "venueGroupName": "Dishoom Group", "location": { "city": "London", "area": "Covent Garden", "street": "12 Upper St Martin's Lane", "postCode": "WC2H 9FB" }, "duration": 90, "productName": "Dinner", "notes": "Birthday celebration", "createdDate": "2025-05-01T10:00:00Z", "lastUpdate": "2025-05-01T10:00:00Z", "partnerBookingId": "ext-ref-123", "operatorBookingId": "op-ref-456" }

Cancel a booking by ID

Request

Security
Live(Required scopes:
venue-booking:delete
)
or Sandbox(Required scopes:
venue-booking:delete
)
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.

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.bookabletech.com/venues/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

Booking cancelled successfully

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Response
No content

Retrieve all product categories

Request

Returns a list of all available product categories used to classify venue products (e.g., Breakfast, Lunch, Dinner, Afternoon Tea).

Security
Live(Required scopes:
venue:read
)
or Sandbox(Required scopes:
venue:read
)
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.

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.bookabletech.com/venues/category \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
  -H 'X-Partner-Reference: string'

Responses

A list of product categories

Headers
X-RateLimit-Limitinteger

Maximum number of requests allowed per window.

Example: 200
X-RateLimit-Remaininginteger

Number of requests remaining in the current window.

Example: 150
X-RateLimit-Resetinteger(int64)

Unix timestamp (seconds since epoch) when the current rate-limit window resets.

Example: 1741651200
Body
dataArray of objects(ProductCategory)required

List of available product categories

data[].​slugstringrequired

URL-friendly identifier for the category, typically lowercase with underscores or hyphens

Example: "lunch"
data[].​namestringrequired

Display name of the product category

Example: "Lunch"
Response
{ "data": [ {}, {}, {} ] }

Booking

Information about the booking

Operations