RoomRates API
When a user selects a hotel from search results, the Rooms & Rates API fetches all available rooms and rates from every supplier configured in your channel, deduplicates them, and returns a structured response. This is the most complex API in the engine — understanding what each object means before you implement will save significant time.
The five response objects — read this first
Raw room data from every configured supplier. If 5 suppliers return the same king room, you will see it 5 times here. Do not use this directly for rendering — use standardisedRooms instead.
Raw rate data across all suppliers. In a single-room search, one recommendation maps to one rate. In a multi-room search, one recommendation can map to multiple rates — because some suppliers bundle all rooms into one rate ID, while others issue a separate rate ID per room.
Always check occupancies inside each rate to confirm how many rooms it covers and which room it belongs to.
ZentrumHub's deduped, unique rate plans. One recommendation equals the cheapest available rate across all suppliers for a specific combination of room type, board basis, and refundability. This is where the engine's core deduplication logic surfaces. The recommendationId is what you pass to the Price API.
Mapping-service-normalised unique rooms. From 50 raw room entries across 10 suppliers, you get the actual 5 unique rooms here — deduplicated and normalised into consistent names and attributes. Only present if you have subscribed to the mapping service. Required for multi-supplier setups.
The developer-friendly object that clubs standardised rooms with their available rate plan options. Each entry gives you a room, its rate plans, and a pre-calculated total that already accounts for multi-room rate bundling across suppliers. Sorted cheapest to highest.
Use this as your primary data source for the room selection UI. It removes the need to manually cross-reference recommendations against standardisedRooms.
Multi-room searches — important detail
When searching for more than one room, some suppliers return a single rate ID covering all rooms together, while others return individual rate IDs per room. A single recommendation can therefore contain multiple rate IDs.
occupancies inside each rate object to confirm how many rooms it covers. standardisedRoomGroups handles this for you automatically — the total field already sums across all rate IDs in the group, regardless of how the supplier bundled them.
Using the mapping service
standardisedRooms and standardisedRoomGroups will not appear in the response. You will need to use rooms and cross-reference via roomId in occupancies instead. For single-supplier accounts this is manageable; for multi-supplier it creates significant implementation overhead.
Token
Error codes
| Code | Message |
|---|---|
| 4001 | Invalid data in request — refer to fields[] for details |
| 4004 | The hotel you selected is sold out |
| 5000 | Unknown system error — contact support with the correlationId |
Interactive Explanation of room and rates
HTL_001srch_xyz2025-06-101 × 2 adults✓ Applies markup rules
✓ Identifies suppliers
✓ Fires parallel calls
| Rate plan | HB | RH | EX | TBO | BK | Winner |
|---|---|---|---|---|---|---|
| 👑 King Room Non-refundable · Room only |
$142 | $138 | $155 | $145 | $149 | $138 RateHawk |
Why RateHawk wins: 5 suppliers returned this combo. RateHawk's $138 is the lowest. This becomes one recommendation with a unique recommendationId. | ||||||
| 👑 King Room Refundable · Room only |
$161 | — | $174 | $163 | — | $161 HotelBeds |
Why HotelBeds wins: 3 suppliers returned refundable king. HotelBeds at $161 is cheapest. Refundable and non-refundable are always kept as separate recommendations — never merged. | ||||||
| 👑 King Room Non-refundable · Breakfast |
— | $154 | — | — | — | $154 RateHawk |
Only one supplier: Only RateHawk returned breakfast for king. They win by default at $154. Board basis is always a separate recommendation. | ||||||
| 🛍 Double Room Non-refundable · Room only |
$118 | $112 | — | $121 | — | $112 RateHawk |
Why RateHawk wins: 3 suppliers returned non-refundable double. RateHawk's $112 is cheapest. | ||||||
| 🛍 Double Room Refundable · Room only |
— | — | — | — | $115 | $115 Booking.com |
Only one supplier: Only Booking.com offered a refundable double. They win at $115. | ||||||
| ✨ Junior Suite Non-refundable · Room only |
— | — | $198 | — | $205 | $198 Expedia |
Why Expedia wins: 2 suppliers returned the suite. Expedia's $198 beats Booking.com's $205. | ||||||
recommendationId to the Pricing API when the user selects a rate.REC_001 · roomId: R1REC_002 · roomId: R1REC_003 · roomId: R1REC_004 · roomId: R2REC_005 · roomId: R2REC_006 · roomId: R3roomId linking back to the standardised room.deduplicates
R1R2R3total. No cross-referencing. No summing. Click a room to expand.R1 · 3 optionsREC_001 → pass to Pricing APIREC_002REC_003R2 · 2 optionsREC_004 → pass to Pricing APIREC_005R3 · 1 optionREC_006 → pass to Pricing APIUpdated 21 days ago