> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spaportal.cz/llms.txt
> Use this file to discover all available pages before exploring further.

# Amenity value

> A structured amenity selected for a hotel.

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](/api/amenities). 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`](/api/expand) to inline the localized `label` on the
category, the amenity, and each selected option.

Each localized `note` value is limited to 200 characters.

| Dictionary detail kind | Meaningful amenity value field                                                                |
| ---------------------- | --------------------------------------------------------------------------------------------- |
| `proximity`            | `proximity` and `proximityMeters`; the distance is non-null only when `proximity` is `nearby` |
| `access`               | `access`                                                                                      |
| `options`              | amenity-specific `options` selected for the hotel, by `code`                                  |
| `opening_hours`        | `openingHours`                                                                                |
| `note`                 | localized `note`                                                                              |

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:

```json theme={null}
{
  "code": "aquapark",
  "proximity": "nearby",
  "proximityMeters": 250,
  "access": "included",
  "openingHours": {
    "continuous": false,
    "blocks": [
      {
        "days": ["monday", "tuesday", "wednesday"],
        "from": "09:00",
        "to": "21:00"
      }
    ]
  }
}
```

For an amenity whose `detailKinds` include `options`, the
[amenity dictionary](/api/amenities) lists every available option. The hotel
value contains only the selected options, by `code`:

```json theme={null}
{
  "code": "sauna",
  "options": [{ "code": "finnish" }, { "code": "steam" }]
}
```

With [`expand=amenityLabels`](/api/expand) each selected option also carries its
localized `label`:

```json theme={null}
{
  "code": "sauna",
  "options": [
    { "code": "finnish", "label": { "cs-CZ": "Finská sauna", "en": "Finnish sauna" } },
    { "code": "steam", "label": { "cs-CZ": "Parní lázeň", "en": "Steam bath" } }
  ]
}
```

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`](/api/localization).

`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).
