Skip to content

TMS Gateway API (1.0.0-SNAPSHOT)

API for registering operators and managing their TMS credentials. Once configured, operators and their venues become available for booking operations via the Bookings API.

This API provides endpoints to:

  • Register, retrieve, update, and deregister operators
  • Manage TMS credentials for each operator

Supported TMS Systems:

  • Collins (CO) - BearerToken authentication
  • SevenRooms (SR) - ClientCredentials authentication
  • Zonal (ZO) - BaseAuth authentication

Authentication Fields by TMS Type:

TMSAuth TypeRequired Fields
Collins (CO)BearerTokenbearer, externalOperatorId
SevenRooms (SR)ClientCredentialsclientId, secretId
Zonal (ZO)BaseAuthclientId, secretId
Download OpenAPI description
Languages
Servers
Production
https://api.bookabletech.com
Sandbox
https://api-sandbox.bookabletech.com

Operators are the hospitality businesses (e.g. Stonegate, Nightcap, Big Table Group) whose venues you want to make bookable through your integration. Registering an operator is the first step before connecting any TMS credentials.

Operations

Request

Retrieve a list of all operators in the system.

Security
Production(Required scopes:
venue-group:read
)
or Sandbox(Required scopes:
venue-group:read
)
curl -i -X GET \
  https://api.bookabletech.com/operators \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of operators successfully retrieved

Bodyapplication/jsonArray [
idintegerrequired

The unique identifier of the operator

Example: 1
businessNamestringrequired

Business name of the operator

Example: "Acme Restaurant Group"
createdAtstring(date-time)required

Timestamp when the operator was created

Example: "2025-01-10T08:00:00Z"
updatedAtstring(date-time)required

Timestamp when the operator was last updated

Example: "2025-02-15T10:30:00Z"
]
Response
application/json
[ { "id": 1, "businessName": "Acme Restaurant Group", "createdAt": "2025-01-10T08:00:00Z", "updatedAt": "2025-02-15T10:30:00Z" }, { "id": 2, "businessName": "Downtown Dining Co.", "createdAt": "2025-01-12T09:30:00Z", "updatedAt": "2025-01-12T09:30:00Z" } ]

Request

Create a new operator with the provided details.

Security
Production(Required scopes:
venue-group:create
)
or Sandbox(Required scopes:
venue-group:create
)
Bodyapplication/jsonrequired
businessNamestring[ 1 .. 255 ] charactersrequired

Business name of the operator

Example: "New Restaurant Group"
partnerSourcestring or null[ 1 .. 255 ] characters

Partner source identifier. This is required for partner users. This will be used to track bookings that come from your integration with this operator. If you have been working with the operator already, it is likely they already have created a label for your channel. Please ask for this to continue to use the same partnerSource.

Example: "Partner Trading Name"
curl -i -X POST \
  https://api.bookabletech.com/operators \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "businessName": "New Restaurant Group",
    "partnerSource": "Partner Trading Name"
  }'

Responses

Operator successfully created

Bodyapplication/json
idintegerrequired

The unique identifier of the operator

Example: 1
businessNamestringrequired

Business name of the operator

Example: "Acme Restaurant Group"
createdAtstring(date-time)required

Timestamp when the operator was created

Example: "2025-01-10T08:00:00Z"
updatedAtstring(date-time)required

Timestamp when the operator was last updated

Example: "2025-02-15T10:30:00Z"
Response
application/json
{ "id": 3, "businessName": "New Restaurant Group", "createdAt": "2025-02-20T14:00:00Z", "updatedAt": "2025-02-20T14:00:00Z" }

Request

Retrieve the details of a specific operator by its ID.

Security
Production(Required scopes:
venue-group:read
)
or Sandbox(Required scopes:
venue-group:read
)
Path
operatorIdintegerrequired

The unique identifier of the operator

Example: 1
curl -i -X GET \
  https://api.bookabletech.com/operators/1 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Operator successfully retrieved

Bodyapplication/json
idintegerrequired

The unique identifier of the operator

Example: 1
businessNamestringrequired

Business name of the operator

Example: "Acme Restaurant Group"
createdAtstring(date-time)required

Timestamp when the operator was created

Example: "2025-01-10T08:00:00Z"
updatedAtstring(date-time)required

Timestamp when the operator was last updated

Example: "2025-02-15T10:30:00Z"
Response
application/json
{ "id": 1, "businessName": "Acme Restaurant Group", "createdAt": "2025-01-10T08:00:00Z", "updatedAt": "2025-02-15T10:30:00Z" }

Request

Update the details of an existing operator.

Security
Production(Required scopes:
venue-group:update
)
or Sandbox(Required scopes:
venue-group:update
)
Path
operatorIdintegerrequired

The unique identifier of the operator

Example: 1
Bodyapplication/jsonrequired
businessNamestring[ 1 .. 255 ] charactersrequired

Updated business name of the operator

Example: "Updated Restaurant Group Name"
curl -i -X PUT \
  https://api.bookabletech.com/operators/1 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "businessName": "Updated Restaurant Group Name"
  }'

Responses

Operator successfully updated

Bodyapplication/json
idintegerrequired

The unique identifier of the operator

Example: 1
businessNamestringrequired

Business name of the operator

Example: "Acme Restaurant Group"
createdAtstring(date-time)required

Timestamp when the operator was created

Example: "2025-01-10T08:00:00Z"
updatedAtstring(date-time)required

Timestamp when the operator was last updated

Example: "2025-02-15T10:30:00Z"
Response
application/json
{ "id": 1, "businessName": "Updated Restaurant Group Name", "createdAt": "2025-01-10T08:00:00Z", "updatedAt": "2025-02-20T15:45:00Z" }

Request

Remove an operator from the system.

Security
Production(Required scopes:
venue-group:delete
)
or Sandbox(Required scopes:
venue-group:delete
)
Path
operatorIdintegerrequired

The unique identifier of the operator

Example: 1
curl -i -X DELETE \
  https://api.bookabletech.com/operators/1 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Operator successfully deleted

Credentials connect a registered operator to their TMS. Each credential set tells Bookable how to authenticate with a specific TMS on the operator's behalf — unlocking real-time availability and booking capability for that operator's venues. An operator may hold credentials for multiple TMS systems (e.g. Collins for some venues, SevenRooms for others).

Operations