Cloudbeds API (v1.2)

Welcome to the documentation for Cloudbeds API Version v1.2! If you are looking to learn how to use the Cloudbeds API to access guest information, reservations, or similar data for your Cloudbeds customers, then you've come to the right place.

In this document you will find all the API methods we provide along with explanations for parameters and response examples.

If you have questions about different implementation steps (e.g. how to implement OAuth 2.0), please refer to our Integrations Portal.

Be sure to subscribe to the monthly Cloudbeds API announcement mailing list to receive information on new additions and improvements to the Cloudbeds API and related developer tools.

Endpoint: https://api.cloudbeds.com/api/v1.2/{method}

HTTPS: Our API requires HTTPS. We'll respond with an appropriate error if you're not using it.

Request Format: HTTP GET, POST and PUT (Content-Type: application/x-www-form-urlencoded)

Response Format: JSON

Response Header: X-Request-ID is added to response headers in all calls to help accelerate support and troubleshooting.

Run in Postman use this link to access our Public collection in Postman.

Download OpenAPI description
Languages
Servers
Mock server
https://tbg-api-docs.vacatia.com/_mock/cloudbeds/
https://api.cloudbeds.com/api/v1.2/

Authentication

Operations

Adjustment

Operations

AllotmentBlocks

Operations

AppSettings

Operations

Currency

Operations

CustomFields

Operations

Dashboard

Operations

Emails

Operations

Groups

Operations

Guest

Operations

Hotel

Operations

HouseAccount

Operations

Housekeeping

Operations

Integration

Operations

Invoices

Operations

Item

Operations

Package

Operations

Payment

Operations

Rate

Operations

Reservation

Operations

Room

Operations

getRoomsFeesAndTaxes

Request

Get applicable fees and tax to a booking. This is meant to be used on checkout to display to the guest.

Query
propertyIDstring

Property ID

startDatestring(date)required

Check-in date

endDatestring(date)required

Check-out date

roomsTotalnumberrequired

Total value of the rooms to be booked, with included taxes

roomsCountintegerrequired

Number of rooms to be booked

curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getRoomsFeesAndTaxes?endDate=2019-08-24&propertyID=string&roomsCount=0&roomsTotal=0&startDate=2019-08-24' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataobject

Details of the fees and taxes applicable

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": { "fees": [], "taxes": [], "roomsTotalWithoutTaxes": 0, "grandTotal": 0 }, "message": "string" }

postRoomAssign

Request

Assign/Reassign a room on a guest reservation

Bodyapplication/x-www-form-urlencoded
propertyIDstring or null

Property ID

reservationIDstring

Reservation identifier

subReservationIDstring or null

Sub Reservation identifier

newRoomIDstring

Room ID of the room that will be assigned.

roomTypeIDstring or null

Room Type ID of the room that will be assigned. Need to be informed in case of assignment.

oldRoomIDstring or null

Room ID of the room that was assigned. Need to be informed in case of reassignment.

overrideRatesboolean or null

Deprecated. Please use adjustPrice instead. Setting overrideRates=true will have the opposite of the effect that the name implies. It will cause the rates to NOT be overridden, but instead to be recalculated based on the new room assignment.

Default false
adjustPriceboolean or null

If room assignment would result in an upcharge or discount, this parameter needs to be set to true to approve the charges. If not set, the rate will retain its original value.

Default false
curl -i -X POST \
  https://tbg-api-docs.vacatia.com/_mock/cloudbeds/postRoomAssign \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d propertyID=string \
  -d reservationID=string \
  -d subReservationID=string \
  -d newRoomID=string \
  -d roomTypeID=string \
  -d oldRoomID=string \
  -d overrideRates=false \
  -d adjustPrice=false

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "message": "string" }

postRoomCheckIn

Request

Check-in a room already assigned for a guest

Bodyapplication/x-www-form-urlencoded
propertyIDstring or null

Property ID

reservationIDstring

Reservation identifier

subReservationIDstring or null

Sub Reservation identifier, allows for granular control over what room is being checked-in. If sent, roomID is ignored.

roomIDstring or null

Room ID of the room that will be checked-in.

curl -i -X POST \
  https://tbg-api-docs.vacatia.com/_mock/cloudbeds/postRoomCheckIn \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d propertyID=string \
  -d reservationID=string \
  -d subReservationID=string \
  -d roomID=string

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "message": "string" }

postRoomCheckOut

Request

Check-out a room already assigned for a guest. If all rooms are checked out, the reservation status will update accordingly to "Checked Out" as well.

Bodyapplication/x-www-form-urlencoded
propertyIDstring or null

Property ID

reservationIDstring

Reservation identifier

subReservationIDstring or null

Sub Reservation identifier, allows for granular control over what room is being checked out. If sent, roomID is ignored.

roomIDstring or null

Room ID of the room that will be checked out.

curl -i -X POST \
  https://tbg-api-docs.vacatia.com/_mock/cloudbeds/postRoomCheckOut \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d propertyID=string \
  -d reservationID=string \
  -d subReservationID=string \
  -d roomID=string

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "message": "string" }

getReservationRoomDetails

Request

Returns information about particular room in reservation by its subReservationID

Query
propertyIDstring

Property ID

subReservationIDstringrequired

Sub Reservation ID of the specific assigned room

curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getReservationRoomDetails?propertyID=string&subReservationID=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

dataobject

Details for the rooms assigned on the selected date

Response
application/json
{ "success": true, "message": "string", "data": { "reservationID": "string", "subReservationID": "string", "roomID": "string", "roomName": "string", "dormRoomName": "string", "guestID": "string", "guestName": "string", "roomStatus": "cancelled", "roomTypeID": "string", "roomTypeName": "string", "roomTypeIsVirtual": true, "maxGuests": 0, "adults": 0, "children": 0, "guests": [] } }

postRoomBlock

Request

Adds a room block to the selected property.

Bodyapplication/x-www-form-urlencoded
propertyIDstring or null

Property ID

roomBlockTypestring

Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of service block

Enum"blocked""out_of_service"
roomBlockReasonstring

Room block reason

startDatestring(date)

Room block start date

endDatestring(date)

Room block end date

roomsArray of objects

All rooms for room block. When multiple rooms are submitted they will be created under the same roomBlockID.

curl -i -X POST \
  https://tbg-api-docs.vacatia.com/_mock/cloudbeds/postRoomBlock \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d propertyID=string \
  -d roomBlockType=blocked \
  -d roomBlockReason=string \
  -d startDate=2019-08-24 \
  -d endDate=2019-08-24 \
  -d 'rooms=[object Object]'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

propertyIDstring

Property ID

roomBlockIDstring

Room block ID

roomBlockTypestring

Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of service block

Enum"blocked""out_of_service"
roomBlockReasonstring

Room block reason

startDatestring(date)

Room block start date

endDatestring(date)

Room block end date

roomsArray of objects

All rooms for room block

messagestring

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "propertyID": "string", "roomBlockID": "string", "roomBlockType": "blocked", "roomBlockReason": "string", "startDate": "2019-08-24", "endDate": "2019-08-24", "rooms": [ {} ], "message": "string" }

getRoomBlocks

Request

Returns a list of all room blocks considering the informed parameters.

Query
propertyIDstring

Property ID

roomBlockIDstring

Room block ID

roomTypeIDstring

Room type ID

roomIDstring

Room ID

startDatestring(date)

date"] Start date - will filter for any room blocks that include this date (Date range must be one month or less)

Default "Todays"
endDatestring(date)

date"] End date - will filter for any room blocks that include this date (Date range must be one month or less)

Default "Todays"
pageNumberinteger

Page number

Default 1
pageSizeinteger

Page size

Default 20
curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getRoomBlocks?endDate=Todays&pageNumber=1&pageSize=20&propertyID=string&roomBlockID=string&roomID=string&roomTypeID=string&startDate=Todays' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataArray of objects

Room block details

messagestring

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": [ {} ], "message": "string" }

putRoomBlock

Request

Updates a room block.

Bodyapplication/x-www-form-urlencoded
propertyIDstring or null

Property ID

roomBlockIDstring

Room block ID

roomBlockReasonstring or null

Room block reason

startDatestring or null(date)

Room block start date

endDatestring or null(date)

Room block end date

roomsArray of objects or null

All rooms for room block. When multiple rooms are submitted they will be created under the same roomBlockID.

curl -i -X PUT \
  https://tbg-api-docs.vacatia.com/_mock/cloudbeds/putRoomBlock \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d propertyID=string \
  -d roomBlockID=string \
  -d roomBlockReason=string \
  -d startDate=2019-08-24 \
  -d endDate=2019-08-24 \
  -d 'rooms=[object Object]'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

propertyIDstring

Property ID

roomBlockIDstring

Room block ID

roomBlockTypestring

Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of service block

Enum"blocked""out_of_service"
roomBlockReasonstring

Room block reason

startDatestring(date)

Room block start date

endDatestring(date)

Room block end date

roomsArray of objects

All rooms for room block

messagestring

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "propertyID": "string", "roomBlockID": "string", "roomBlockType": "blocked", "roomBlockReason": "string", "startDate": "2019-08-24", "endDate": "2019-08-24", "rooms": [ {} ], "message": "string" }

deleteRoomBlock

Request

Deletes a room block

Query
propertyIDstring

Property ID

roomBlockIDstringrequired

Room block ID

curl -i -X DELETE \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/deleteRoomBlock?propertyID=string&roomBlockID=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

messagestring

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "message": "string" }

getRoomTypes

Request

Returns a list of room types filtered by the selected parameters ### Group account support

Query
propertyIDsstring

Property ID list, comma-separated, i.e. 37,345,89

roomTypeIDsstring

Room Type ID list, If more than one, send as comma-separated, i.e. 37,345,89

startDatestring(date)

Check-in date. Required for the rates to be returned.

endDatestring(date)

Check-out date. Required for the rates to be returned.

adultsinteger

Number of adults. Required for the rates to be returned.

childreninteger

Number of children. Required for the rates to be returned.

detailedRatesboolean

If detailed rates are expected

Default false
roomTypeNamestring

Room type name, used to filter

propertyCitystring

Hotel city, used to filter

propertyNamestring

Hotel name, used to filter

maxGuestsstring

Max number of guests, used to filter

pageNumberinteger

Page number

Default 1
pageSizeinteger

Page size

Default 20
curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getRoomTypes?adults=0&children=0&detailedRates=false&endDate=2019-08-24&maxGuests=string&pageNumber=1&pageSize=20&propertyCity=string&propertyIDs=string&propertyName=string&roomTypeIDs=string&roomTypeName=string&startDate=2019-08-24' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataArray of objects

Room Types details

countinteger

Number of results in this page

totalinteger

Total number of results

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": [ {} ], "count": 0, "total": 0, "message": "string" }

getAvailableRoomTypes

Request

Returns a list of room types with availability considering the informed parameters ### Group account support

Query
propertyIDsstring

Property ID list, comma-separated, i.e. 37,345,89

startDatestring(date)required

Check-In date.

endDatestring(date)required

Check-Out date.

roomsintegerrequired

Number of rooms.

Default 1
adultsintegerrequired

Number of adults.

Default 1
childrenintegerrequired

Number of children.

promoCodestring

Promotional code

detailedRatesboolean

If detailed rates are expected

Default false
sortstring

Sort parameter

Enum"room_name""hotel_name""room_price""hotel_stars"
orderstring
Default "asc"
Enum"asc""desc"
minRatenumber

Minimum daily rate. Used to filter results

maxRatenumber

Maximum daily rate. Used to filter results

pageNumberinteger

Page number

Default 1
pageSizeinteger

Page size

Default 20
curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getAvailableRoomTypes?adults=1&children=0&detailedRates=false&endDate=2019-08-24&maxRate=0&minRate=0&order=asc&pageNumber=1&pageSize=20&promoCode=string&propertyIDs=string&rooms=1&sort=room_name&startDate=2019-08-24' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataArray of objects

Room Types details

roomCountinteger

Number of results (room types) returned

countinteger

Number of results (properties) returned

totalinteger

Total number of results (properties)

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": [ {} ], "roomCount": 0, "count": 0, "total": 0, "message": "string" }

getRooms

Request

Returns a list of all rooms considering the informed parameters. If Check-in/out dates are sent, only unassigned rooms are returned. ### Group account support

Query
propertyIDsstring

Property ID list, comma-separated, i.e. 37,345,89

roomTypeIDstringrequired

Room type ID, comma-separated, i.e. 37,345,89

roomTypeNameShortstringrequired

Room Type (short-version)

startDatestring(date)

Initial stay date. If sent, only returns unassigned rooms in this period. If not sent, will return all rooms available in property. Necessary if endDate is sent.

endDatestring(date)

Final stay date. Necessary if startDate is sent.

includeRoomRelationsinteger

Determines whether room relations info should be included in the response

Default 0
pageNumberinteger

Page number

Default 1
pageSizeinteger

Page size

Default 20
curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getRooms?endDate=2019-08-24&includeRoomRelations=0&pageNumber=1&pageSize=20&propertyIDs=string&roomTypeID=string&roomTypeNameShort=string&startDate=2019-08-24' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataArray of objects

Room Types details

countinteger

Number of results (properties) returned

totalinteger

Total number of results, can be more than what was returned

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": [ {} ], "count": 0, "total": 0, "message": "string" }

getRoomsUnassigned

Request

Returns a list of unassigned rooms in the property. Call is alias of getRooms. Please check its documentation for parameters, response and example. ### Group account support

Query
propertyIDsstring

List of property IDs, comma-separated, i.e. 37,345,89

curl -i -X GET \
  'https://tbg-api-docs.vacatia.com/_mock/cloudbeds/getRoomsUnassigned?propertyIDs=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

200 Response

Bodyapplication/json
successboolean

Returns if the request could be completed

dataArray of objects

Room Types details

countinteger

Number of results (properties) returned

totalinteger

Total number of results, can be more than what was returned

messagestring or null

To be used in case any error occurs (if success = false). If success = true, it does not exist.

Response
application/json
{ "success": true, "data": [ {} ], "count": 0, "total": 0, "message": "string" }

Taxes and Fees

Operations

User

Operations