Skip to main content
A hotel contains identity, contact details, images, buildings, localized content, structured accommodation rules, meal services, medical indications, the procedures it offers, staff languages, and hotel-level amenities. Localized values return only the keys selected by Accept-Language. name falls back to the Czech value when a requested translation is missing. Other localized fields preserve the requested key and return null when its translation is missing, except image alt, which falls back to the localized hotel name.

Buildings

buildings lists every physical building in the hotel’s configured order, including buildings with no assigned room types. Both GET /api/v2/hotels and GET /api/v2/hotels/{hotelId} always include this array. You do not need an expand parameter. A hotel with one building returns one item; a hotel without configured buildings returns []. Each item contains id, localized name, and localized label (a short description). Match id to a room type’s building.id, including rooms embedded with expand=roomTypes. Both texts follow Accept-Language: missing or blank translations return null without falling back to Czech. The label object is present even when no description is set. For example, with Accept-Language: cs-CZ,en:

Embedded room types

Use expand=roomTypes to include the hotel’s enabled, non-draft room types. Both the hotel list and detail exclude disabled rooms. Request GET /api/v2/room-types?hotelId={hotelId}&disabled=all if you need the hotel’s complete non-draft catalog, including disabled rooms. Without this expansion, the hotel response does not include room types. See Expand for examples.

Images

Each entry in images uses the shared image fields: build srcset from the returned variants and fall back to url. A missing alt translation falls back to the localized hotel name; an empty string marks a decorative image.

Structured profile

shortDescription is the localized short hotel description (up to 400 characters per locale). channelContent.tagline is a localized tagline for sales channels, up to 100 characters per locale. It is the same for every public key. accommodationRules always contains check-in and check-out ranges, the children policy, and the pets policy. The children policy includes whether children are accepted and an optional minimum age. The pets policy includes whether pets are accepted, an optional minimum stay, per-night fees in CZK and EUR, and localized conditions (up to 300 characters per locale). The feePerNight.czk and feePerNight.eur values are major-unit amounts, not Money objects. An unset time or optional numeric value is null. mealServices always contains breakfast, lunch, and dinner. Each meal reports whether it is enabled, its optional serving time, its service method (buffet, served, or null when unset), whether drinks are included, and a localized drinks note (up to 200 characters per locale). indications is an ordered array of medical indication codes. The hotel specializes in treating the listed areas: staffLanguages contains the ISO 639-1 codes of the languages spoken by hotel staff: cs (Czech), en (English), de (German), and ru (Russian).

Amenities

amenityCategories lists the amenities assigned to the hotel, grouped by category. See Assigned amenities for the structure and labels.

Procedures

procedures lists the procedures the hotel offers, in its configured order, each code once. Items use the Procedure object without a count. An empty array means the hotel publishes no procedures. The list is independent of what a package includes: a package’s treatment says which procedures its guests receive. Join the two by code.

Prices

priceFrom holds the lowest prices the hotel sells for arrivals from today onward, per currency. Each currency has the hotel-wide group all and the category groups health and wellness, each with the two independent Price from minima. A category group is omitted when it has no buyable offer; all is present whenever the currency is. priceFrom is null when the hotel has no buyable offer at all. Every minimum names its hotel and visitType. Open the package with the same public key to show its details. Prices defines which offers qualify and how to compare the groups.

Fields

id
string
required
Pattern: ^[0-9a-fA-F]{24}$
name
object
required

Localized hotel name (plain text). A missing translation falls back to the Czech name.

Example:
shortDescription
object
required

Localized short hotel description (plain text). Each locale value is at most 400 characters.

Example:
channelContent
object
required
stars
integer | null
required
Required range: 1 <= x <= 5
address
object
required
email
string<email> | null
required
phoneNumber
string | null
required
url
string<uri> | null
required
images
object[]
required
buildings
object[]
required

All physical buildings in configured order, including buildings with no assigned room types. Always included without expand, even for a single building; empty when none are configured. Match each id to a room type's building.id.

accommodationRules
object
required
mealServices
object
required
Example:
indications
enum<string>[]
required

Medical indications the hotel specializes in, in display order.

Available options:
musculoskeletal,
cardiovascular,
dermatology,
digestion_metabolism,
nervous_system,
prevention,
gynecology,
oncology_aftercare,
diabetes
procedures
object[]
required

Procedures the hotel offers, in configured order, each code once. Independent of the procedures a package includes.

staffLanguages
enum<string>[]
required

Languages spoken by hotel staff.

Available options:
cs,
en,
de,
ru
amenityCategories
object[]
required

Amenities assigned to the hotel, grouped by category. See Assigned amenities.

Example:
priceFrom
object | null
required

Lowest prices the hotel sells for arrivals from today onward, per currency: across all packages (all) and per category (health, wellness), each with two independent minima. A currency is present only when it has a buyable offer. Null when the hotel has none. See Prices.

roomTypes
object[]

Embedded only when expand=roomTypes; otherwise fetch them via GET /room-types?hotelId={hotelId}. Each item omits the nested hotel block (it is this hotel).