BusinessHotels.com | Universal Agentic API (MCP/UCP/REST)
MCP (Model Context Protocol) 1.0 UCP (Universal Control Protocol) READY RESTful
Optimized for Model Context Protocol (MCP) & 2M+ Property Inventory
Execute POST for travel intent. Crucial Requirement:
To ensure a unique property match, you must pass the
hotelName as a descriptive string including
"Hotel Name, City, Country".
"Luxor, Las Vegas, US""Luxor"
Use this endpoint for all live rate lookups. Average latency: ~650ms.
Header: X-API-KEY: test-live-hotel-rates2025
Content-Type: application/json
π‘ Production Ready: This key is ready for AI agent integration and general use. For enterprise deployments or commercial applications, contact ai@businesshotels.com for dedicated support.
Use this schema in LLM tool definitions or function calling (OpenAI, Gemini, Claude, etc.).
{
"name": "get_live_hotel_rates",
"description": "Retrieve real-time rates for a specific hotel from a 2 million property database. Best for: Exact hotel matches with price-locked booking links.",
"parameters": {
"type": "object",
"properties": {
"hotelName": {
"type": "string",
"description": "REQUIRED. Detailed name + City + Country. Example: 'InterContinental Mark Hopkins, San Francisco, US'. Providing the country code ensures 99.9% match accuracy."
},
"checkinDate": {
"type": "string",
"format": "date",
"description": "Check-in date in YYYY-MM-DD format."
},
"checkoutDate": {
"type": "string",
"format": "date",
"description": "Check-out date in YYYY-MM-DD format."
},
"adults": {
"type": "integer",
"default": 1,
"description": "Number of adult guests (1β4)."
},
"currency": {
"type": "string",
"default": "USD",
"description": "3-letter ISO code (USD, EUR, GBP)."
}
},
"required": ["hotelName", "checkinDate", "checkoutDate"],
"additionalProperties": false
}
}
Use this JSON in your MCP serverβs tools/list response to register the tool via inputSchema.
{
"tools": [
{
"name": "get_live_hotel_rates",
"title": "BusinessHotels Live Hotel Rates",
"description": "Retrieve real-time rates for a specific hotel from a 2M+ property database, returning a booking URL with a price-locked ppn_bundle.",
"inputSchema": {
"type": "object",
"properties": {
"hotelName": {
"type": "string",
"description": "REQUIRED. Detailed name + City + Country. Example: 'InterContinental Mark Hopkins, San Francisco, US'."
},
"checkinDate": {
"type": "string",
"format": "date",
"description": "Check-in date in YYYY-MM-DD format."
},
"checkoutDate": {
"type": "string",
"format": "date",
"description": "Check-out date in YYYY-MM-DD format."
},
"adults": {
"type": "integer",
"default": 1,
"description": "Number of adult guests (1β4)."
},
"currency": {
"type": "string",
"default": "USD",
"description": "3-letter ISO code (USD, EUR, GBP)."
}
},
"required": ["hotelName", "checkinDate", "checkoutDate"],
"additionalProperties": false
}
}
]
}
| Response Key | Agent Instruction / Logical Mapping |
|---|---|
hotel_name |
Confirm this identity with the user. |
hotel_address |
Display for logistical clarity (Street, City, Zip). |
latitude / longitude |
Map Trigger: Use for map pins/distance calculation. |
display_all_in_total |
Display as the single, all-inclusive "Final Price". |
booking_page_live_rates |
Present as the primary checkout action. |
ppn_bundle |
Internal inventory token. Locked for 20 minutes. |
best_match_score |
If score < 0.85, clarify hotel identity with user. |
| Field | Type | Agent Action |
|---|---|---|
hotel_id |
String (9-digit) | Store for session persistence. |
display_all_in_total |
Float | Quote as the Final Price (includes all taxes). |
booking_page_live_rates |
URL | Present as a direct booking button/link. |
If the API returns a 400 Validation Error,
verify that hotelName is present. The system always requires a
name string, even if a hotel_id is known internally.
booking_page_live_rates URL, the
ppn_bundle is already embedded. Tell the user their rate is
locked and provide the link as a clear "Book Now" action.
api_key in the JSON body or X-API-KEY in the header.YYYY-MM-DD strings.latitude and longitude to display maps or nearby POIs.booking_page_live_rates URL; it contains the ppn_bundle which locks the rate for 20 minutes.Test the API in your preferred language. All examples demonstrate the same request with identical parameters.
Bash / Terminal β Copy and paste into your terminal (macOS/Linux/WSL).
curl -X POST "https://www.businesshotels.com/mcp-server.php?route=tools/get_live_hotel_rates" \
-H "Content-Type: application/json" \
-H "X-API-KEY: test-live-hotel-rates2025" \
-d '{
"hotelName": "Luxor Las Vegas, Las Vegas, US",
"checkinDate": "2026-02-15",
"checkoutDate": "2026-02-17",
"adults": 2,
"currency": "USD"
}'
` for line continuation instead of backslash \.π¦ Expected Response:
{
"hotel_id": "700076955",
"hotel_name": "Luxor",
"hotel_address": "3900 Las Vegas Boulevard South",
"city_name": "Las Vegas",
"state_code": "NV",
"country_code": "US",
"postal_code": "89119",
"latitude": "36.096806",
"longitude": "-115.173001",
"booking_page_live_rates": "https://www.businesshotels.com/reservation.php?hotel-id=...",
"rates": {
"display_all_in_total": "356.06",
"currency": "USD",
"price_info": "Price includes all tax and fees",
"ppn_bundle": "HEA_OqStb8TUtNnSS-nry..."
},
"best_match_score": 0.87
}