Rooms And Rates

🛏️ Rooms and Rates API

The Rooms and Rates API provides detailed information about hotel rooms and their pricing to help users find the best available options.

The API organizes room and rate data into multiple options, where each option represents a bookable set of rooms. Each rate option includes comprehensive details such as:

  • Room information
  • Occupancy
  • Room category
  • Meal option
  • Pricing
  • Cancellation policies
  • And more

➡️ It’s important to proceed with a specific option for booking, as only the rate and rooms from that chosen option will be booked.

🔑 Key Identifier

Each rate option includes a unique ID called recommendationId, which is required for booking.

📦 Key Components of API Response

  • Rooms – Contains room name, description, facilities, bed configuration, and size.
  • Options – Each represents a specific rate. Includes recommendationId.
  • Standardized Rooms – Ensures data consistency by normalizing room details across suppliers.
  • Board Basis - Standardized meal-plan info for each rate (e.g. Room Only, Bed & Breakfast, Half Board).

This API enables seamless integration and provides structured, accurate hotel room pricing information.

📘 API Reference: Rooms and Rates API Documentation


🥘 Board Basis (Field Deep Dive)

Each rate returned in the Rooms and Rates response carries its own boardBasis, since different rates for the same room can have different meal plans (e.g. Room Only vs Bed & Breakfast vs Half Board for the same standardized room).

Field in API Response

boardBasis is an object present on every rate - results.options[].rate.boardBasis.

FieldTypeDescription
boardBasisobjectContainer for meal-plan info on a rate
boardBasis.descriptionstringRaw/near-raw text describing what's included (may include extra context like discounts, pax applicability, etc.). Free text, not standardized.
boardBasis.typestringThe standardized board basis bucket, one of the fixed values. This is the field integrations should key off for filtering/display logic.

Example:

"boardBasis": {
  "description": "Room only",
  "type": "RoomOnly"
}

boardBasis.type – Unique Types List

type valueMeaning
RoomOnlyNo meals included
BedAndBreakfastRoom + breakfast included
HalfBoardBreakfast + one more meal (usually dinner) included
FullBoardBreakfast + lunch + dinner included
AllInclusiveAll meals + (typically) drinks/snacks included

This is a closed/fixed list — every rate's boardBasis.type must be one of these 5 values.

Usage – Filters & Standardization of Board Basis

Filters: System filter/sort results by meal plan using boardBasis.type (e.g. "Only Bed & Breakfast options" or "Only Room Only"). Filtering must never be done on boardBasis.description — only on boardBasis.type.
Standardization logic: Volt maps each raw meal-plan string to one of the 5 fixed type values. Examples of raw strings mapped to the same standardized type:
RoomOnly: "Room Only", "ROOM ONLY", "room only", "Accomodation only", "Accommodation Only"
BedAndBreakfast: "Free breakfast", "Breakfast buffet", "BED AND BREAKFAST", "Bed & Breakfast", "Continental breakfast", "Breakfast Included", "room with breakfast"
HalfBoard: "Half board", "HALF BOARD", "breakfast and dinner"
FullBoard: "Full board", "FULL BOARD"
AllInclusive: "All Inclusive", "All-inclusive", "All Included"

boardBasis.description -

The description field is closer to the raw text and is not guaranteed to be a clean meal-plan phrase — it can carry extra context that has no bearing on type. Below are real patterns grouped by the categories flagged for review:

CategorySample Raw DescriptionStandardizes To
Rules (discounts/policies bundled into the description, unrelated to the meal itself)"10% discount on food & beverages,10% discount on laundry,room only"RoomOnly
"15% discount on food & beverages,10% discount on spa,15% discount on laundry,room only"RoomOnly
"complimentary room upgrade (subject to availability),room only"RoomOnly
"welcome drink on arrival,free stay for the kid,room only"RoomOnly
Views (room-view text mixed into the board-basis description)"premium mountain view room with private balcony room only"RoomOnly
"standard hill view room with breakfast"BedAndBreakfast
"royal deluxe with valley view with breakfast and dinner"HalfBoard
"garden luxury room with breakfast (garden access with mountain view)"BedAndBreakfast
Meal types (explicit meal-plan wording)Breakfast-only phrasing: "Free breakfast", "Breakfast buffet", "Continental breakfast", "BedAndBreakfast"BedAndBreakfast
Half board phrasing: "Free dinner, Breakfast buffet", "breakfast and dinner"HalfBoard
Full board / all-inclusive phrasing: "Full board", "All Inclusive", "All Included"FullBoard / AllInclusive
No-meal phrasing: "nomeal", "Only Bed", "No breakfast service"RoomOnly
Applicability / pax (meal entitlement tied to number of guests)"Breakfast for 2"BedAndBreakfast
"complimentary breakfast will be provided for 2 pax per room."BedAndBreakfast
"Breakfast Included for Adults Only!"BedAndBreakfast
"Breakfast Included for Adults and Child."BedAndBreakfast
"compulsory buffet breakfast, breakfast supplement applicable from 23rd December to 2nd January INR 350/- per person and child within age group of 6 to 12 years INR 175/- per child per day."BedAndBreakfast

Usage – What to show end users
boardBasis.type is what should drive filters, badges/icons, and any comparison logic (e.g. sort by meal plan, "Free Breakfast" badge).
boardBasis.description can be shown as supplementary text under the rate (e.g. small print), since it may contain useful context (pax limits, discounts, exact hotel wording) that type doesn't capture



Did this page help you?