Get hotel rates
sabre_hotel_rates_codedThe authoritative rate list for one hotel through the agency's reservation access: returned rates with room and bed type, the stay total in the hotel's currency (total_after_tax is the amount quoted; total_after_tax_excl_fees excludes fees), what is included (breakfast), excluded or unknown mandatory fees where stated, the cancellation deadline and penalty in words, deposit or prepayment terms, and the benefits attached to preferred-partner rates (daily breakfast, property credit where offered, upgrade on arrival subject to availability, early check-in / late check-out). hotel_name and chain_code come from the search result and select the partner rates; a call without either is refused before anything is sent. loyalty_id is the guest's own number with the hotel's loyalty programme (IHG One Rewards, Hilton Honors, World of Hyatt, I Prefer, Marriott Bonvoy): it is sent to the hotel with the search so any member offer the hotel makes this guest can come back (no discount is guaranteed), and a rate found this way carries the number and books only with the same loyalty_id. Hilton Honors, World of Hyatt, IHG One Rewards, I Prefer and Marriott Bonvoy member rates are listed without a number; Marriott Bonvoy member rates come back at some Marriott properties (about 2% under the public rate where measured). Rows marked members-only book only from a search made with the guest's number. rooms=2 prices two rooms and the returned rate_key then covers both. Rooms with different guest arrangements need separate one-room quotes and payment links before booking; the combined rate key cannot be reused. Family rate searches use the actual adults, children and child_ages. A chosen row that reads "Family occupancy verified for this rate" has verified occupancy for the party on its "Requested family for this rate" line; other rows in the list may still be unverified. The selected row's family_quote_token travels unchanged with its own rate_key into the payment-link request. The direct family booking preserves the quoted party. Deposits, prepayment and non-refundable rates follow the normal payment and cancellation consent flow. Unverified occupancy or no suitable family rate needs Jay's help at jay@flybest.org. An adults-only search is an alternative only when the traveller explicitly chooses an adults-first booking: free cancellation and no deposit or prepayment, with children and their charges still pending advisor confirmation. It is not an automatic substitute for a family quote. A comparison uses the same room/product, rate plan, dates, currency, benefits and cancellation/payment terms; the difference between the lists' lowest prices is not a child surcharge. An unchanged matching total does not establish that every child extra is free. Child policy, maximum occupancy and extra-person or extra-bed charges appear only where the rate text states them. An advisor request includes hotel, dates, room/rate preference, adult count and children's ages; sending an e-mail requires the traveller's explicit request. Results start with a note for the traveller about booking in this conversation and end with a short reminder. The traveller can confirm their chosen option in this chat to receive its secure payment page. A membership question appears near the start when the hotel has a known loyalty programme and no number was supplied.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | how many rooms at this property for these dates. Totals cover ALL of them for the whole stay; per_room_total is on each row beside it. adults/children/child_ages then describe EVERY room. | |
| adults | No | ||
| check_in | Yes | YYYY-MM-DD | |
| children | No | number of children, sent together with child_ages of the same length (the call is refused otherwise — Sabre answers children-without-ages with 200 and zero rates, which is indistinguishable from sold out. Omitting children means every price returned is an ADULTS-ONLY price. | |
| currency | No | 3-letter code for the DISPLAY conversion shown beside each rate (default USD). The hotel's OWN currency is always what is quoted and what gets charged — this only changes the ≈ estimate, e.g. CNY for a client who thinks in RMB. Allowed: USD CNY HKD TWD EUR GBP JPY SGD AUD CAD CHF THB KRW. Anything else is REFUSED, because Sabre answers an unknown code with 200 and ZERO rates (measured 2026-09-12) — indistinguishable from sold out. | |
| max_rows | No | rows to return, default 60, up to 400. The cap is ours, not Sabre's, and rows come cheapest-first — so a short answer lost the DEAREST rows. Check `truncated` in the reply before concluding a programme has no suites | |
| check_out | Yes | YYYY-MM-DD | |
| chain_code | Yes | from sabre_hotel_search — drives programme selection | |
| child_ages | No | e.g. [10, 8]. Check occupancy.children_honoured in the result: many properties accept and then ignore children, and the total comes back adults-only. | |
| hotel_code | Yes | Sabre hotel code | |
| hotel_name | Yes | from sabre_hotel_search — drives programme selection | |
| loyalty_id | No | the guest's own membership number with this hotel's loyalty programme (Marriott Bonvoy, IHG One Rewards, Hilton Honors, World of Hyatt…), as on the card, no chain code. It is sent to the hotel with the search so any member offer the hotel makes this guest can come back (no discount is guaranteed); every rate found this way carries the number into the booking and books only with the same loyalty_id. Hilton Honors, World of Hyatt, IHG One Rewards, I Prefer and Marriott Bonvoy member rates are listed without it, marked members-only (Marriott's at some properties only). | |
| with_perks | No | fetch the benefit text (breakfast/credit/upgrade) for the cheapest rows — one extra Sabre call each | |
| perks_top_n | No | how many rows per programme (default 5) | |
| room_contains | No | keep only rows whose room/plan text contains this, e.g. "suite" or "villa". Applied BEFORE the row cap, so this is how you reach a room type that prices above the cheap rooms | |
| cheapest_first | No | false sorts dearest first — the other way to surface suites | |
| negotiated_only | No | keep ONLY programme-negotiated rows and drop the public ones. On a property with several plans per room the public half is what pushes suites out of the window | |
| room_occupancies | No | one entry per room, in room order, when the rooms differ. Without rooms, the number of entries is the room count; with rooms, the two must agree. Mutually exclusive with adults/children/child_ages. Different guest arrangements need separate one-room quotes and payment links before booking; the combined rate key cannot be reused. |