Room types
Read a hotel's static room-type catalog without choosing stay dates or guests.
Overview
Returns room names, descriptions, sizes, bed configurations, photos, facilities, and bathroom and smoking metadata in English. The catalog is independent of stay dates and occupancy. A room type is a category, not a physical room or a stock count.
For prices, bookable rate plans, and availability, use Room availability & rates. Room-type id values match that endpoint's room IDs, so you can join static content to a dated quote.
GET https://api.stayapi.com/v1/booking/hotel/room-typesAuthenticate with x-api-key: YOUR_API_KEY. Standard account quota applies.
Query parameters
| Parameter | Type | Description |
|---|---|---|
hotel_id | Positive integer, required | Booking.com hotel ID, for example 346648 (Angsana Laguna Phuket). |
No dates, occupancy, currency, language, sorting, filtering, or pagination parameters. If you have a URL, first use URL to ID. Related hotel details describe the property as a whole.
Response fields
success: true on success;retrieved_at: retrieval timestamp.data.hotel_info: hotelidandname.data.room_types: array of distinct room types. An empty catalog is valid and does not mean sold out.- Each type has a string
id; nullablename,description,room_type_id(source classification), and numericroom_size_m2. is_smoking: nullable boolean;bathroom_count: nullable integer;bathroom_attributes: nullable object with nullableis_ensuiteandis_external. Preserve source values; zero is not a capacity estimate.bed_configurations: nullable array of objects with nullablebedsarrays. A bed has nullablebed_typeandcount. Bed counts do not establish maximum guest capacity.photos: nullable array of objects with stringid, nullableurl, and nullablethumbnail_url.facilities: nullable array of groups with nullablecategoryandfacilitiesarrays. Facility entries have stringidand nullablename.data.metadata.total_room_types: count of returned types, never physical rooms or available stock.
Unknown optional values are null; explicitly empty arrays remain []. No prices, dates, availability flags, physical inventory counts, or inferred capacity are returned. Content can change as the hotel updates its listing.
Errors
Errors use non-2xx RFC 7807 Problem Details: 422 for missing or invalid hotel_id; 502 for unavailable or invalid source data (including an unrecognized hotel ID); 503 for temporary service unavailability; 504 for timeout; 500 for unexpected processing errors. Authentication and quota errors follow the standard account contract.
Error responses use application/problem+json. A 2xx response always indicates success.
MCP
Use booking_hotel_room_types with a numeric-string hotel_id or a full canonical Booking hotel url, such as https://www.booking.com/hotel/th/angsana-laguna-phuket.html. Supply at least one; hotel_id takes precedence. The tool returns the same success envelope. See MCP setup.
Observed response excerpt: one of 15 room types. Other types and optional fields are omitted for readability.