Skip to main content
An amenity assigned to a hotel and returned under hotel.amenityCategories[].amenities[] by both hotel endpoints. Hotel amenities are grouped by category, and categories without assigned amenities are omitted. Its code references an amenity nested in one of the category groups returned by the amenity dictionary. The remaining properties describe access, distance, options, opening hours, and a localized guest note. To interpret the value, find the matching code in GET /api/v2/amenity-categories under data[].amenities[]. The parent category provides the amenity’s category and the matching entry’s detailKinds determines which properties are included. Properties that are not supported by that amenity are omitted. category is returned once on the parent hotel amenity group, by code. The amenity’s label and detailKinds are dictionary metadata and are not repeated inside each hotel’s amenity value by default. Request expand=amenityLabels to inline the localized label on the category, the amenity, and each selected option. Each localized note value is limited to 200 characters. When the dictionary returns detailKinds: [], the amenity is presence-only and its value contains only code. For an aquapark with detailKinds: [proximity, access, opening_hours], a hotel response can contain:
For an amenity whose detailKinds include options, the amenity dictionary lists every available option. The hotel value contains only the selected options, by code:
With expand=amenityLabels each selected option also carries its localized label:
Fields mapped from detailKinds remain present even when they are not filled: scalars are null, arrays are empty, opening hours use { "continuous": false, "blocks": [] }, and requested localized note values are null. Requested localized keys follow Accept-Language. proximity says where the amenity is: in-hotel (inside the hotel building), connecting (an adjacent building linked by an internal passage), or nearby (a short distance away, with proximityMeters giving the approximate distance). access says whether using the amenity costs extra: included (covered by the stay price), conditional (included subject to stated conditions), or paid (available for an additional charge).

A structured amenity assigned to a hotel. Hotel responses contain only assigned amenities. Apart from code (and label with expand=amenityLabels), only the fields mapped from the corresponding entry under the amenity dictionary response data[].amenities[] are present.

code
string
required

References an Amenity.code.

Example:

"sauna"

label
object

Localized amenity label. Present only with expand=amenityLabels.

Example:
proximity
enum<string> | null

Where the amenity is located relative to the hotel. Present when detailKinds includes proximity; null when supported but not filled. in-hotel is inside the hotel building, connecting is an adjacent building linked by an internal passage, and nearby is a short distance away (see proximityMeters).

Available options:
in-hotel,
connecting,
nearby
proximityMeters
number | null

Present with proximity. Contains a distance when proximity is nearby; otherwise null.

Required range: 0 <= x <= 1000000
access
enum<string> | null

Present when detailKinds includes access. Null when supported but not filled. included means no additional charge, conditional means inclusion depends on stated conditions, and paid means an additional charge applies.

Available options:
included,
conditional,
paid
options
object[]

Amenity-specific choices selected for this hotel, by code only. Present when detailKinds includes options. Empty when the amenity supports choices but none are selected. Resolve labels against the dictionary.

openingHours
object

Present when detailKinds includes opening_hours. When supported but not filled, returns continuous: false with an empty blocks array.

note
object

Present when detailKinds includes note. Localized supplementary information for guests. Locale values are at most 200 characters and are null when the requested translation is not filled.

Example: