Skip to main content
GET
Use this endpoint to build a property detail page, or any place that needs static information about a hotel around a booking flow. It returns content from the Unifystays catalogue and never calls a supplier, so it is fast and safe to cache. It contains no prices and no room availability: for those, call Get Room Options after the guest picks the hotel and dates.

Request Example

hotelId is the Unifystays hotel ID from Search Hotels or Destination Autocomplete. An unknown or non-numeric ID returns 404. Content is returned in English.

Response Example

Field guide

Every list is null (not an empty array) when the hotel has no data for it. Check for null before iterating.

Caching

Content changes rarely and the call has no price or availability in it. Cache it by hotel_id with an expiry that suits your product (a few hours to a day is a sensible default). Use your own expiry: the response does not tell you when the content last changed.
Content does not guarantee a current price, room availability or a bookable rate. Room-level details (photos, beds, size) come with the offers from Get Room Options, grouped by room type.

Next step

Use Get Room Options once the guest has chosen the hotel and stay details.

Authorizations

x-api-key
string
header
required

Environment-specific API key created in the Unifystays portal

Headers

X-Unifystays-Contract-Version
enum<string>
default:2

Hotel API contract version. Optional: 2 is the current version and the default.

Available options:
2
X-Unifystays-Currency
string

ISO 4217 currency for display amounts (display_ledger, display_amount, commercial_display). Optional: defaults to your organization's display currency, USD unless configured. Read pricing.display_currency in the response.

Required string length: 3
Example:

"EUR"

Path Parameters

hotelId
string
required

Unifystays hotel ID from hotel search or destination autocomplete (numeric string). Unknown or non-numeric IDs return 404.

Example:

"10001"

Response

Hotel content returned successfully.

success
boolean
required

Always true on a 200 response.

Example:

true

message
string
required

Human-readable status. Do not parse it.

Example:

"Hotel content fetched successfully"

data
object
required

The hotel content.