Configuration APIs

Configuration APIs are GET request APIs that can be used to retrieve hotel and guest metadata. These APIs act as a dependency to the booking and self-service APIs. In order to access the Configuration APIs you will need to have access to the Configuration scope.


All of the configuration APIs are secured by OAuth. The following should be included within the header of all your requests in order to gain access to the data:

  • Authorization - An active bearer token.
    • Note: Tokens are unique to a specific hotel chain. If your application works with more than one hotel chain within Rover Connect you will need to make sure that the bearer token corresponds to the hotel chain you attempting to retrieve data for.
  • API-Version - An API-Version should always be included within your request. (e.g. "1.0")

Available APIs:


All of the Configuration APIs are prefixed with the following URL:

https://api.stayntouch.com/connect/



List of Hotels (hotels)

GET

Description

This method will return a paginated list of all the hotels in a specified chain with details.

Request

The following can be used as GET parameters to filter your response:

  • code (string) - Use this parameter to filter your response to include only the hotel with the specified code.
    • Note: the hotel code is different from the hotel "id". The code is an alphanumeric unique identifier. If you would like to retrieve a hotel by its id use the (/hotels/id) method.
  • page (integer - default: 1) - If the per_page parameter is also set or your chain consists of more than 25 hotels your response will become paginated. This parameter can be used to access a specific page within the pagination.
  • per_page (integer - default: 25) - Use this parameter to set number of results you want in each page of the response.

Response

JSON Response
{
	"results": [
		{
			"id": 105,
			"code": "ZAMS",
			"name": "Zoku Amsterdam",
			"uuid": "28073bb7-690d-11e6-861e-04018298a601",
			"check_in_time": "16:00",
			"check_out_time": "12:00",
			"address": {
				"address1": "Weesperstraat 105",
				"address2": null,
				"address3": null,
				"city": "Amsterdam",
				"state": null,
				"postal_code": "1018 VN",
				"country": "NL"
			},
			"phone": "+31 55 555 55 55",
			"main_contact": {
				"first_name": "John",
				"last_name": "Smith",
				"email": "info@stayntouch.com",
				"phone": "0031555555555"
			},
			"currency_code": "GBP"
		}
	],
	"total_count": 20
}

Media type: application/json

Type: object

  • id: (integer)
    • Hotel Identifier
  • code: (string)
    • Hotel Code
  • name: (string)
    • Hotel Name
  • uuid: (string)
    • UUID - Universal Unique Identifier
  • check_in_time: (time-only)
    • Check-In start time (All times are local to the properties themselves. The time will be returned as 24-hr time.)
  • check_out_time: (time-only)
    • Check-out start time (All times are local to the properties themselves. The time will be returned as 24-hr time.)
  • address: (object)
    • address1: (string)
      • Address line 1 of 3
    • address2: (string)
      • Address line 2 of 3
    • address3: (string)
      • Address line 3 of 3
    • city: (string)
      • Hotel City
    • state: (string)
      • Hotel State
    • postal_code: (string)
      • Hotel Zip Code
    • country: (string)
      • Country abbreviated (ISO)
  • phone: (string)
    • Hotel Main Phone
  • main_contact: (object)
    • first_name: (string)
      • Hotel Main Contact First Name
    • last_name: (string)
      • Hotel Main Contact Last Name
    • email: (string)
      • Hotel Main Contact Email
    • phone(string)
      • Hotel Main Contact Phone Number
  • currency_code: (string)
    • Hotel Standard Currency (identified by code)
  • total_count: (integer)
    • Total number of active hotels in the chain
      • The total_count can be used for pagination purposes. If a hotel is not set as active it will not be counted here. Note: If the request filters the results by hotel code the total_count will automatically be 1. 

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.

Property Overview (hotels/id)

GET

Description

This method will return the information for a hotel queried by its id.

Request

There are no query parameters for this method.

Response

JSON Response
{
	"id": 105,
	"code": "ZAMS",
	"name": "Zoku Amsterdam",
	"uuid": "28073bb7-690d-11e6-861e-04018298a601",
	"check_in_time": "16:00",
	"check_out_time": "12:00",
	"address": {
		"address1": "Weesperstraat 105",
		"address2": null,
		"address3": null,
		"city": "Amsterdam",
		"state": null,
		"postal_code": "1018 VN",
		"country": "NL"
	},
	"phone": "+31 55 555 55 55",
	"main_contact": {
		"first_name": "John",
		"last_name": "Smith",
		"email": "info@stayntouch.com",
		"phone": "0031555555555"
	},
	"currency_code": "GBP"
}

Media type: application/json

Type: object

  • id: (integer)
    • Hotel Identifier
  • code: (string)
    • Hotel Code
  • name: (string)
    • Hotel Name
  • uuid: (string)
    • UUID - Universal Unique Identifier
  • check_in_time: (time-only)
    • Check-In start time (All times are local to the properties themselves. The time will be returned as 24-hr time.)
  • check_out_time: (time-only)
    • Check-out start time (All times are local to the properties themselves. The time will be returned as 24-hr time.)
  • address: (object)
    • address1: (string)
      • Address line 1 of 3
    • address2: (string)
      • Address line 2 of 3
    • address3: (string)
      • Address line 3 of 3
    • city: (string)
      • Hotel City
    • state: (string)
      • Hotel State
    • postal_code: (string)
      • Hotel Zip Code
    • country: (string)
      • Country abbreviated (ISO)
  • phone: (string)
    • Hotel Main Phone
  • main_contact: (object)
    • first_name: (string)
      • Hotel Main Contact First Name
    • last_name: (string)
      • Hotel Main Contact Last Name
    • email: (string)
      • Hotel Main Contact Email
    • phone(string)
      • Hotel Main Contact Phone Number
  • currency_code: (string)
    • Hotel Standard Currency (identified by code)


Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Credit Card Types (hotels/id/credit_card_types)

GET

Description

This method will return an array of credit card types (and their respective codes) accepted at a specific hotel queried by the hotel id. These codes are useful when add a payment method to a reservation.

Request

There are no query parameters for this method.

Response

JSON Response
{
	"results": [
		{
			"code": "AX",
			"name": "American Express"
		},
		{
			"code": "DC",
			"name": "Diners Club"
		},
		{
			"code": "DS",
			"name": "Discover"
		},
		{
			"code": "VA",
			"name": "Visa"
		}
	]
}

Media type: application/json

Type: object

  • results: (object)
    • code: (string)
      • CC Type Code
    • name: (string)
      • Name of Credit Card

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Check In Queue Information (hotels/id/queue_details)

GET

Description

When reservations are checked in and there are no available rooms for that room-type, the reservation is placed into a reservation queue. As soon as a room is inspected and cleaned, the reservation will be assigned a room. This method shows you the status of the queue categorized by room type. You can retrieve the queue details for a single room type by passing in URL parameters.

Request

The following may be used as GET parameters:

  • room_type_id: (integer) - Use this parameter to filter the response to include only a specific room type.

Response

JSON Response
{
	"results": {
		"total_queue_count": 0,
		"total_available_count": 130,
		"room_types": [
			{
				"id": 488,
				"queue_count": 0,
				"available_count": 8
			}
		]
	}
}

Media type: application/json

Type: object

  • results: (object)
    • total_queue_count: (integer)
      • Total number of reservations in queue across all room types
    • total_available_count: (integer)
      • Total number of rooms that are ready to be assigned across all room types.
    • room_types: (object)
      • id: (integer)
        • Room type identifier
      • queue_count: (integer)
        • Total number of reservations that are ready to be assigned
      • available_count: (integer)
        • Total number of rooms that are ready to be assinged for this room type

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Hotel Rates (hotels/id/rates)

GET

Description

This method shows you the available rates for a specific hotel.

Request

The following may be used as GET parameters:

  • code (integer) - Use this parameter to filter the response to include only a specific rate code.
  • page (integer - default: 1) - If the per_page parameter is also set or the hotel consists of more than 25 rates your response will become paginated. This parameter can be used to access a specific page within the pagination.
  • per_page (integer - default: 25) - Use this parameter to set number of results you want in each page of the response.

Response

JSON Response
{
	"results": [
		{
			"id": 3218,
			"code": "30212child",
			"name": "30212child",
			"description": "test",
			"currency_code": "GBP"
		},
		{
			"id": 3358,
			"code": "30212copytest",
			"name": "30212copytest",
			"description": "test",
			"currency_code": "GBP"
		}
	],
	"total_count": 140
}

Media type: application/json

Type: object

  • results: (object)
    • id: (integer)
      • Rate identifier
    • code: (string)
      • Rate code
    • name: (string)
      • Name of the rate
    • description: (string)
      • Rate description
    • currency_code: (string)
      • Rate currency
  • total_count: (integer)
    • Total number of active hotel rates
      • The total_count can be used for pagination purposes. If a rate is not active it will not be counted here. Note: If the request filters the results by rate code the total_count will automatically be 1.

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Single Rate Information (rates/id)

GET

Description

This method returns the details of a specific rate.

Request

There are no query parameters for this method.

Response

JSON Response
{
	"id": 3218,
	"code": "30212child",
	"name": "30212child",
	"description": "test",
	"currency_code": "GBP"
}

Media type: application/json

Type: object

  • id: (integer)
    • Rate identifier
  • code: (string)
    • Rate code
  • name: (string)
    • Name of the rate
  • description: (string)
    • Rate description
  • currency_code: (string)
    • Rate currency

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no rate within the chain that has the specified ID.

Hotel Room Types (hotels/id/room_types)

GET

Description

This method returns a paginated list of all of a hotel's room types.

Request

The following may be used as GET parameters:

  • code: (integer) - Use this parameter to filter the response to include only a specific room type code.
  • page (integer - default: 1) - If the per_page parameter is also set or the hotel consists of more than 25 room types your response will become paginated. This parameter can be used to access a specific page within the pagination.
  • per_page (integer - default: 25) - Use this parameter to set number of results you want in each page of the response.

Response

JSON Response
{
	"results": [
		{
			"id": 315,
			"code": "1DLK",
			"name": "1. Deluxe King",
			"description": "Deluxe Room with large King Bed - modern decor, great city views. Separate lounge area & business corner.",
			"max_occupancy": 3,
			"image_url": "https://8ebd8b3dcdf6d6f8887d-4d1e022461cbaa577307930af1386d20.ssl.cf2.rackcdn.com/ZOKU/ZAMS/room_types/315/images/original/image20170728033052.png?1501227052",
			"suite": false,
			"pseudo": false
		},
		{
			"id": 525,
			"code": "07",
			"name": "10. 00007",
			"description": "",
			"max_occupancy": 4,
			"image_url": "",
			"suite": false,
			"pseudo": false
		}
	],
	"total_count": 32
}

Media type: application/json

Type: object

  • results: (object)
    • id: (integer)
      • Room type ID
    • code: (string)
      • Room type code
    • name: (string)
      • Room type name
    • description: (string)
      • Room type description
    • max_occupany: (integer)
      • Maximum occupancy for given room type
    • image_url: (string)
      • URL for image of room type
    • suite: (boolean)
      • Whether the room type is a suite
        • Note: Suite rooms are configurations that group mutiple rooms so that they can be booked as one room.
    • pseudo: (boolean)
      • Whether the room type is pseudo
  • total_count: (integer)
    • Total number of room types
      • The total_count can be used for pagination purposes. If a room type is not active it will not be counted here. Note: If the request filters the results by room type code the total_count will automatically be 1.

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Single Room Type (room_types/id)

GET

Description

This method returns the details of a single room type queried by its id.

Request

There are no query parameters for this method.

Response

JSON Response
{
	"id": 315,
	"code": "1DLK",
	"name": "1. Deluxe King",
	"description": "Deluxe Room with large King Bed - modern decor, great city views. Separate lounge area & business corner.",
	"max_occupancy": 3,
	"image_url": "https://8ebd8b3dcdf6d6f8887d-4d1e022461cbaa577307930af1386d20.ssl.cf2.rackcdn.com/ZOKU/ZAMS/room_types/315/images/original/image20170728033052.png?1501227052",
	"suite": false,
	"pseudo": false
}

Media type: application/json

Type: object

  • id: (integer)
    • Room type ID
  • code: (string)
    • Room type code
  • name: (string)
    • Room type name
  • description: (string)
    • Room type description
  • max_occupany: (integer)
    • Maximum occupancy for given room type
  • image_url: (string)
    • URL for image of room type
  • suite: (boolean)
    • Whether the room type is a suite
      • Note: Suite rooms are configurations that group mutiple rooms so that they can be booked as one room.
  • pseudo: (boolean)
    • Whether the room type is pseudo

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no room type within the chain that has the specified ID.

Room(s) Information (hotels/id/rooms)

GET

Description

This method returns a paginated list of all of a hotel's rooms.

Request

The following may be used as GET parameters:

  • number: (string) - Use this parameter to filter the response to include only a specific room number.
  • page (integer - default: 1) - If the per_page parameter is also set or the hotel consists of more than 25 rooms your response will become paginated. This parameter can be used to access a specific page within the pagination.
  • per_page (integer - default: 25) - Use this parameter to set number of results you want in each page of the response.


Response

JSON Response
{
	"results": [
		{
			"id": 13425,
			"number": "00007",
			"room_type_id": 474,
			"status": "INSPECTED",
			"service_status": "IN_SERVICE",
			"occupied": false
		},
		{
			"id": 13111,
			"number": "0012",
			"room_type_id": 464,
			"status": "INSPECTED",
			"service_status": "IN_SERVICE",
			"occupied": true
		}
	],
	"total_count": 216
}

Media type: application/json

Type: object

  • results: (object)
    • id: (integer)
      • Room identifier
    • number: (string)
      • Room number as seen by the end-user
    • room_type_id: (integer)
      • Room type identifier
    • status: (one of CLEAN, INSPECTED, DIRTY, OO, OS, PICKUP)
      • Housekeeping status
    • service_status: (one of IN_SERVICE, OUT_OF_ORDER, OUT_OF_SERVICE)
      • Service status
    • occupied: (boolean)
      • Whether the room is occupied
  • total_count: (integer)
    • Total number of active rooms in the hotel
      • The total_count can be used for pagination purposes. If a room is not active it will not be counted here. Note: If the request filters the results by room number the total_count will automatically be 1.

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no hotel within the chain that has the specified ID.

Single Room Information (rooms/id)

GET

Description

This method returns the details for a specific room.

Request

There are no query parameters for this method.

Response

JSON Response
{
	"id": 13425,
	"number": "00007",
	"room_type_id": 474,
	"status": "INSPECTED",
	"service_status": "IN_SERVICE",
	"occupied": false
}

Media type: application/json

Type: object

  • id: (integer)
    • Room identifier
  • number: (string)
    • Room number as seen by the end-user
  • room_type_id: (integer)
    • Room type identifier
  • status: (one of CLEAN, INSPECTED, DIRTY, OO, OS, PICKUP)
    • Housekeeping status
  • service_status: (one of IN_SERVICE, OUT_OF_ORDER, OUT_OF_SERVICE)
    • Service status
  • occupied: (boolean)
    • Whether the room is occupied

Possible Errors

  • UNAUTHORIZED (401)
    • Missing API Version - This error will occur if you did not include an API-Version within your request header. An API-Version is always expected and required.
  • UNAUTHORIZED (401)
    • Invalid or expired access token - This error will occur if there was a problem with the access token that you included within your request header.
      • If your access token has expired, which occurs every 30 days, you can request a new one using (/oauth/token) and passing in the refresh token you received previously.
      • You will receive this error if you are attempting to gain access to a hotel chain for which the given access token does not correspond.
  • INVALID_RECORD (404)
    • This error will occur if there is no room within the chain that has the specified ID.