Skip to main content
GET
/
hotels
/
{hotelId}
Get a hotel
curl --request GET \
  --url https://spaportal.cz/api/v2/hotels/{hotelId} \
  --header 'X-SpaPortal-Public-Key: <api-key>'
{
  "id": "66f16191f739705faa020001",
  "name": {
    "cs-CZ": "Pawlik",
    "de": "Pawlik-Aquaforum"
  },
  "stars": 4,
  "address": {
    "addressLine": "<string>",
    "city": "<string>",
    "postalCode": "<string>",
    "countryCode": "CZ"
  },
  "phoneNumber": "<string>",
  "description": {
    "cs-CZ": "Superior dvouluzkovy pokoj",
    "de": "Superior Doppelzimmer"
  },
  "commercialSlogan": {
    "cs-CZ": "Superior dvouluzkovy pokoj",
    "de": "Superior Doppelzimmer"
  },
  "equipment": {
    "cs-CZ": "Superior dvouluzkovy pokoj",
    "de": "Superior Doppelzimmer"
  },
  "services": {
    "cs-CZ": "Superior dvouluzkovy pokoj",
    "de": "Superior Doppelzimmer"
  },
  "images": [
    {
      "url": "<string>",
      "thumbnailUrl": "<string>"
    }
  ],
  "priceFrom": {
    "CZK": {
      "perNight": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "perNightOriginal": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "minimumStay": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "minimumStayOriginal": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "guests": 2,
      "minimumNights": 2
    },
    "EUR": {
      "perNight": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "perNightOriginal": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "minimumStay": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "minimumStayOriginal": {
        "amountMinor": 180000,
        "currencyExponent": 2
      },
      "guests": 2,
      "minimumNights": 2
    }
  },
  "amenities": [
    {
      "code": "wellness.sauna"
    },
    {
      "code": "connectivity.wifi"
    },
    {
      "code": "parking.parking",
      "quantity": 40
    },
    {
      "code": "pools.indoor_pool",
      "condition": "seasonal"
    }
  ],
  "roomTypes": [
    {
      "id": "66f16191f739705faa020003",
      "hotelId": "66f16191f739705faa020001",
      "code": "SUPERIOR-DBL",
      "category": {
        "cs-CZ": "Superior dvouluzkovy pokoj",
        "de": "Superior Doppelzimmer"
      },
      "beds": 2,
      "facilities": [
        "shower",
        "toilet"
      ],
      "images": [
        {
          "url": "<string>",
          "thumbnailUrl": "<string>"
        }
      ],
      "description": {
        "cs-CZ": "Superior dvouluzkovy pokoj",
        "de": "Superior Doppelzimmer"
      },
      "amenities": [
        {
          "code": "comfort.air_conditioning"
        },
        {
          "code": "connectivity.wifi"
        }
      ],
      "hotel": {
        "id": "66f16191f739705faa020001",
        "name": {
          "cs-CZ": "Pawlik",
          "de": "Pawlik-Aquaforum"
        },
        "stars": 4
      }
    }
  ]
}
Draft — not yet available. This is a work-in-progress contract for an endpoint that is not implemented yet. It may change before release; do not build against it.

Authorizations

X-SpaPortal-Public-Key
string
header
required

See Authentication for how to obtain and send your public key.

Headers

Accept-Language
string

Comma-separated BCP 47 language tags selecting which locale keys localized fields return. When omitted, all locale keys are returned. See Localization for details.

Example:

"cs-CZ,de"

X-Request-Id
string

Optional client-provided request identifier echoed in error responses.

Path Parameters

hotelId
string
required

Hotel id.

Pattern: ^[0-9a-fA-F]{24}$

Query Parameters

expand
enum<string>

Expand related resources inline. Set to roomTypes to embed the hotel's room types in the response (otherwise fetch them separately via GET /room-types?hotelId={hotelId}).

Available options:
roomTypes

Response

The hotel.

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

"66f16191f739705faa020001"

name
object
required

Localized hotel name (plain text). Falls back to the default locale (cs-CZ) when a requested locale has no value, so it is never null.

Example:
{
"cs-CZ": "Pawlik",
"de": "Pawlik-Aquaforum"
}
stars
integer | null
required
Required range: 1 <= x <= 5
Example:

4

address
object
required
phoneNumber
string | null
required
description
object
required

Localized description (Markdown).

Example:
{
"cs-CZ": "Superior dvouluzkovy pokoj",
"de": "Superior Doppelzimmer"
}
commercialSlogan
object
required

Localized marketing slogan (plain text).

Example:
{
"cs-CZ": "Superior dvouluzkovy pokoj",
"de": "Superior Doppelzimmer"
}
equipment
object
required

Localized equipment description.

Example:
{
"cs-CZ": "Superior dvouluzkovy pokoj",
"de": "Superior Doppelzimmer"
}
services
object
required

Localized services description.

Example:
{
"cs-CZ": "Superior dvouluzkovy pokoj",
"de": "Superior Doppelzimmer"
}
images
object[]
required
priceFrom
object
required

Indicative cheapest ("from") price for the hotel, or null when no active price list applies.

amenities
object[]

Draft — not yet implemented. The hotel's amenities. Resolve each code against GET /amenities for its label, category and scope.

Example:
[
{ "code": "wellness.sauna" },
{ "code": "connectivity.wifi" },
{ "code": "parking.parking", "quantity": 40 },
{
"code": "pools.indoor_pool",
"condition": "seasonal"
}
]
roomTypes
object[]

Draft. The hotel's room types. 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).