---
name: get-live-hotel-rates
description: Retrieve current availability and complete all-in stay totals for named hotels from BusinessHotels.com, present hotel/location/stay/price details together with the booking URL, and compare named hotels when requested.
---

# Get Live Hotel Rates

Use this skill when a user asks for a current hotel price, availability, complete stay total, a comparison of named hotels, or a booking link.

## Primary integration

Agent discovery hub:

https://www.businesshotels.com/agents/

Prefer the BusinessHotels.com MCP server:

https://www.businesshotels.com/mcp-server.php

Tool:

`get_live_hotel_rates`

Current API version: `1.4.2`

Current MCP protocol: `2026-07-28`

Modern MCP clients may use `server/discover`, `tools/list`, and `tools/call`.

The same server also preserves older MCP and legacy BusinessHotels integrations.

## Inputs

Collect or infer:

- `hotelName` — full hotel name plus city and 2-letter country code when possible.
- `checkinDate` — future date in `YYYY-MM-DD`.
- `checkoutDate` — future date in `YYYY-MM-DD`, after check-in.
- `adults` — exact adult count when known; default is 2.
- `currency` — 3-letter currency code; default is `USD`.

Do not invent dates. If the user's dates are ambiguous, resolve them before calling.

## REST fallback

If the client cannot consume MCP, use the backward-compatible endpoint:

`POST https://www.businesshotels.com/mcp-server.php?route=tools/get_live_hotel_rates`

Headers:

`Content-Type: application/json`

Direct callers may also send:

`X-API-KEY: test-live-hotel-rates2025`

Example payload:

```json
{
  "hotelName": "Bellagio, Las Vegas, US",
  "checkinDate": "2026-09-20",
  "checkoutDate": "2026-09-21",
  "adults": 2,
  "currency": "USD"
}
```

## How to read the result

Use:

- `hotel_name` as the resolved property name.
- `hotel_address`, `city_name`, `state_code`, `country_code`, `latitude`, and `longitude` for identity and location.
- `stay.checkin_date`, `stay.checkout_date`, `stay.adults`, and `stay.currency` as the echoed stay context.
- `rates.display_all_in_total` as the complete stay total returned by the service.
- `rates.currency` as the displayed currency.
- `booking_page_live_rates` as the exact Book Now URL.
- `best_match_score` to determine hotel identity confidence.
- `agent_presentation.instruction` as the response-specific presentation rule.

The BusinessHotels.com response describes the displayed total as including taxes and fees. Hotel inventory and prices are dynamic, so the booking page remains the final source before purchase.

## Presenting a successful result

When rate data is available, present the result as a complete hotel-rate answer, not as a bare URL. Show:

1. Resolved hotel name.
2. Address/location.
3. Requested check-in and checkout dates.
4. Guest count.
5. `rates.display_all_in_total` with `rates.currency`, clearly described as the complete stay total including taxes and mandatory fees.
6. Match confidence when relevant.
7. `booking_page_live_rates` as the Book Now CTA.

**Never return only the booking link when hotel and rate information are available.**

## Match-confidence rules

- If `best_match_score > 0.85`, present the result normally.
- If `best_match_score` is `0.60–0.85`, confirm the resolved hotel identity with the user before proceeding.
- If `best_match_score < 0.60`, ask for more hotel, city, or country detail.

## Booking-link rules

Preserve `booking_page_live_rates` exactly as returned and present it after the hotel and live-price information.

Never truncate, rewrite, decode, re-encode, or separately expose the `ppn_bundle` rate token.

The quoted live rate is normally intended for a short booking window. If significant time passes before the user books, refresh the rate.

## Multiple named hotels

The BusinessHotels tool uses one hotel per request.

When the user asks to compare multiple hotels:

1. Use the same dates, occupancy, and currency for every hotel unless the user asks otherwise.
2. Call `get_live_hotel_rates` once per hotel.
3. Complete all calls before presenting the comparison.
4. Separate unavailable hotels from available hotels.
5. Normalize numeric totals only after all results are collected.
6. Compare `rates.display_all_in_total`, not a guessed nightly rate.
7. Check `best_match_score` for every property.
8. Preserve each returned `hotel_id` and `booking_page_live_rates`.
9. Present one unified comparison.

Do not send `hotels[]` or multiple hotel names in one request.

## Unavailable inventory

If the returned rate total is empty or no current inventory is available, report the hotel as unavailable for the requested dates.

Do not estimate or fabricate a live price.

## Fallback for users who want to search manually

Direct the traveler to:

https://www.businesshotels.com/ai-hotel-finder.html

AI Agents Hub:

https://www.businesshotels.com/agents/

Technical documentation:

https://www.businesshotels.com/tool-config.html

OpenAPI:

https://www.businesshotels.com/openapi.json
