Skip to main content
SpaPortal stores selected text fields in multiple locales. Send Accept-Language to choose the localized values you want:
API v2 accepts BCP 47 language tags in requests. Supported response locale keys are cs-CZ, de, en, and ru. Regional request tags are matched to the closest supported locale. For example, de-DE and de-AT both return localized fields under de. Localized response fields are objects keyed by supported response locale:
The response includes Content-Language with the locale tags returned.

Language ranges

Use these request values to select localized fields: Quality values (;q=) order the returned keys. Tags with q=0 are ignored. * takes its own quality value. For example, de, *;q=0.5 returns de first, followed by cs-CZ, en, and ru. A locale you list with q=0 is never added by *, so en;q=0, * returns every locale except en. When Accept-Language is omitted or is *, the API returns all supported locale keys for that field. Some HTTP clients, such as Node.js fetch, send Accept-Language: * when you do not set the header. When the header contains only unsupported languages, the API returns cs-CZ.

Missing translations

A requested key is always present in a localized field. For most fields, a missing or empty translation is returned as null. The following fields have explicit fallback behavior:
  • Hotel and visit type names, including the hotel and visitType references inside price minima, fall back to the Czech value. A visit type always has a Czech name; a hotel name is null only when the hotel has no Czech name.
  • Image alt falls back to the name of the hotel, room type, or visit type the image belongs to. Unlike other localized fields, an explicitly stored empty alt remains "" to represent a decorative image. See Images.
Room type name is a plain string shared by all languages. Accept-Language does not change it. The room’s description and dictionary labels remain localized.