openapi: 3.2.0
info:
title: Rooms API
description: Contains Rooms API specification
contact:
name: Connectivity Team
url: https://connect.booking.com
email: connectivity@booking.com
version: '1.3'
servers:
- url: https://supply-xml.booking.com/
description: Test using live endpoint
tags:
- name: rooms-api
description: Create, update, retrieve and delete property units
paths:
/rooms-api/properties/{property-id}/units:
get:
tags:
- rooms-api
summary: Get units
description: Get all active units for a property
operationId: getUnits
parameters:
- name: property-id
in: path
required: true
schema:
type: integer
format: int32
- name: debug_info
in: query
description: Enable debug to return $.unit_name_fallback field in response
required: false
schema:
type: string
default: 'false'
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponseListUnit'
post:
tags:
- rooms-api
summary: Create unit
description: Create new unit for a property
operationId: createUnit
parameters:
- name: property-id
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UnitCreate'
examples:
MULTI_ROOM_UNIT_W_MANY_ROOMS:
description: Create a Villa with 2 bedrooms and a living room with sofa
value:
configuration:
unit_type_id: 31
rooms:
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 6
bed_count: 1
- bed_type_id: 1
bed_count: 1
is_default_configuration: true
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 1
bed_count: 3
is_default_configuration: true
- type: LIVING_ROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 5
bed_count: 1
is_default_configuration: true
- type: LIVING_ROOM_SUBROOM
unit_name_id: 4180
number_of_units: 5
smoking_policy: SMOKING_AND_NONSMOKING
size:
value: 155
unit: SQM
partner_reference_name: Example two-bedroom villa
floor_numbers_located_on:
- 2
occupancy_details:
max_guests: 5
max_adults: 5
max_children: 4
max_infants: 4
max_infants_on_top: 0
extra_beds_configuration:
extra_beds: 1
cribs: 0
is_crib_and_extra_bed_allowed: false
MULTI_ROOM_UNIT_W_BEDROOM_ONLY:
description: Create a one-bedroom Apartment with a living room
value:
configuration:
unit_type_id: 1
rooms:
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
is_default_configuration: true
- type: LIVING_ROOM_SUBROOM
unit_name_id: 865
number_of_units: 5
smoking_policy: SMOKING
size:
value: 155
unit: SQM
partner_reference_name: Example single-bedroom apartment
floor_numbers_located_on:
- 2
occupancy_details:
max_guests: 3
max_adults: 3
max_children: 2
max_infants: 0
max_infants_on_top: 2
extra_beds_configuration:
extra_beds: 1
cribs: 1
is_crib_and_extra_bed_allowed: true
MULTI_ROOM_UNIT_W_MINIMAL_REQUIRED_FIELDS:
description: Create a one-bedroom Suite with minimum required fields
value:
configuration:
unit_type_id: 5
rooms:
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
is_default_configuration: true
unit_name_id: 746
SINGLE_ROOM_UNIT_W_MULTIPLE_BED_CONFIGS:
description: Create a Double with multiple bed configurations
value:
configuration:
unit_type_id: 9
rooms:
- type: GUEST_ROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
is_default_configuration: true
- beds:
- bed_type_id: 1
bed_count: 2
is_default_configuration: false
unit_name_id: 255
number_of_units: 20
smoking_policy: NONSMOKING
size:
value: 24
unit: SQM
partner_reference_name: Example double with multiple bed configurations
floor_numbers_located_on:
- 1
- 2
- 3
- 4
- 5
occupancy_details:
max_guests: 2
max_adults: 2
max_children: 1
max_infants: 1
max_infants_on_top: 0
extra_beds_configuration:
extra_beds: 0
cribs: 1
is_crib_and_extra_bed_allowed: false
SINGLE_ROOM_UNIT_W_SINGLE_BED_CONFIG:
description: Create a Studio with a single bed configuration
value:
configuration:
unit_type_id: 12
rooms:
- type: GUEST_ROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
is_default_configuration: true
unit_name_id: 1147
number_of_units: 20
smoking_policy: NONSMOKING
size:
value: 24
unit: SQM
partner_reference_name: Example studio with a single bed configuration
occupancy_details:
max_guests: 2
max_adults: 2
max_children: 1
max_infants: 1
max_infants_on_top: 0
extra_beds_configuration:
extra_beds: 0
cribs: 1
is_crib_and_extra_bed_allowed: false
SINGLE_ROOM_UNIT_W_MINIMUM_REQUIRED_FIELDS:
description: Create a Single with minimum required fields
value:
configuration:
unit_type_id: 10
rooms:
- type: GUEST_ROOM
bed_configurations:
- beds:
- bed_type_id: 1
bed_count: 1
is_default_configuration: true
unit_name_id: 69
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponseUnit'
/rooms-api/properties/{property-id}/units/{unit-id}:
delete:
tags:
- rooms-api
summary: Delete unit
description: Delete existing unit for a property
operationId: deleteUnit
parameters:
- name: property-id
in: path
required: true
schema:
type: integer
format: int32
- name: unit-id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponseObject'
patch:
tags:
- rooms-api
summary: Update unit
description: Update existing unit for a property
operationId: updateUnit
parameters:
- name: property-id
in: path
required: true
schema:
type: integer
format: int32
- name: unit-id
in: path
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Unit'
examples:
MULTI_ROOM_ADD_BED:
description: Add additional single bed to bedroom for multi-room unit
value:
configuration:
unit_type_id: 1
rooms:
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
- bed_type_id: 1
bed_count: 1
is_default_configuration: true
- type: LIVING_ROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 5
bed_count: 1
is_default_configuration: true
MULTI_ROOM_REMOVE_BED:
description: Remove beds from a living room for multi-room unit
value:
configuration:
unit_type_id: 1
rooms:
- type: BEDROOM_SUBROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
- bed_type_id: 1
bed_count: 1
is_default_configuration: true
- type: LIVING_ROOM_SUBROOM
SINGLE_ROOM_BED_CONFIG:
description: Add additional bed configuration for mono-room unit
value:
configuration:
unit_type_id: 9
rooms:
- type: GUEST_ROOM
bed_configurations:
- beds:
- bed_type_id: 3
bed_count: 1
is_default_configuration: true
- beds:
- bed_type_id: 1
bed_count: 2
is_default_configuration: false
OBJECT_TYPE_FIELDS:
description: Update size, occupancy and extra beds configuration for any unit type
value:
size:
value: 99
unit: SQM
occupancy_details:
max_guests: 5
max_adults: 5
max_children: 4
max_infants: 4
max_infants_on_top: 0
extra_beds_configuration:
extra_beds: 2
cribs: 1
is_crib_and_extra_bed_allowed: true
SIMPLE_FIELDS:
description: Update unit name, number of units, smoking policy and partner reference name for any unit type
value:
unit_name_id: 2273
number_of_units: 3
smoking_policy: SMOKING
partner_reference_name: Example reference name
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponseObject'
/rooms-api/properties/{property-id}/deleted-units:
get:
tags:
- rooms-api
summary: Get deleted units (read only)
description: Get all deleted units for a property (read only)
operationId: getDeletedUnits
parameters:
- name: property-id
in: path
required: true
schema:
type: integer
format: int32
- name: debug_info
in: query
description: Enable debug to return $.unit_name_fallback field in response
required: false
schema:
type: string
default: 'false'
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponseListUnit'
components:
schemas:
ApiResponseUnit:
properties:
ruid:
type: string
writeOnly: true
data:
$ref: '#/components/schemas/Unit'
warnings:
type: array
items:
$ref: '#/components/schemas/ApiError'
errors:
type: array
items:
$ref: '#/components/schemas/ApiError'
meta:
$ref: '#/components/schemas/ResponseMeta'
ApiError:
properties:
message:
type: string
code:
type: integer
format: int32
description: ''
details:
type: object
properties:
fields:
type: array
description: ''
items:
type: string
description:
type: string
ExtraBedsConfiguration:
description: Extra bed & crib options
properties:
extra_beds:
type: integer
format: int32
description: Number of extra beds you can provide
maximum: 100
minimum: 0
cribs:
type: integer
format: int32
description: Number of cribs you can provide
maximum: 100
minimum: 0
is_crib_and_extra_bed_allowed:
type: boolean
description: Both extra beds and cribs can be provided (true) or only one of the options (false)?
required:
- cribs
- extra_beds
- is_crib_and_extra_bed_allowed
ApiResponseObject:
properties:
ruid:
type: string
writeOnly: true
data:
type: 'null'
description: ''
warnings:
type: array
items:
$ref: '#/components/schemas/ApiError'
errors:
type: array
items:
$ref: '#/components/schemas/ApiError'
meta:
$ref: '#/components/schemas/ResponseMeta'
Room:
properties:
type:
type: string
description: '
BEDROOM_SUBROOM or LIVING_ROOM_SUBROOM, at least one of the rooms must have bedsGUEST_ROOMtrue) or only one of the options (false)?
BedConfiguration:
description: '$.bed_types[*].is_active)$.unit_type[*].id and $.unit_type[*].is_active) for unit creation/update$.unit_type[*].valid_property_categories)$.unit_names)debug_info as true to retrieve the generated unit name (see $.unit_name_fallback)EN_GB locale) for any unit name ID, including those missing in meta (for debug purposes only; read only)
UnitCreate:
description: Unit creation schema; use meta endpoint for fetching relevant meta data
properties:
configuration:
$ref: '#/components/schemas/Configuration'
unit_name_id:
type: integer
format: int32
description: '$.unit_names)debug_info as true to retrieve the generated unit name (see $.unit_name_fallback)