Hotel Details API
Get comprehensive hotel information including amenities, location, contact details, photos, and more.
Overview
Complete Hotel Information
Access detailed hotel profiles with all the information needed to display rich hotel listings and details pages.
The Hotel Details endpoint provides comprehensive information about hotels including descriptions, amenities, contact information, photos, location data, and more. Perfect for building detailed hotel profile pages.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Required | Full Booking.com hotel URL (https://www.booking.com/hotel/{cc}/{slug}.html) |
Error handling and status codes
Status codes: 200 on success; errors use non-2xx (400, 404, 500, 502, 503, 504) with Problem Details.
- 400
INVALID_URL: Input validation failed (requires full canonical URL). - 404 Not Found: Upstream indicates the hotel is missing.
- 502
UPSTREAM_ERROR: Upstream non-2xx or GraphQL errors. - 503 Service Unavailable: Upstream rate-limited/maintenance (may include
Retry-After). - 504 Upstream Timeout: The provider timed out.
- 500
CONTENT_EXTRACTION_FAILEDorINTERNAL_ERROR: Unexpected parsing/processing errors.
Error responses (Problem Details)
All Booking.com hotel endpoints return errors using RFC 7807 Problem Details.
{
"type": "https://api.stayapi.com/errors/invalid-url",
"title": "Invalid URL",
"status": 400,
"detail": "Parameter 'url' must be a full Booking.com hotel URL of the form https://www.booking.com/hotel/{cc}/{slug}.html.",
"error_code": "INVALID_URL",
"provided": "baan-coconut"
}
Media type: application/problem+json
Standard fields: type, title, status, detail
Extensions: error_code and any endpoint-specific fields
2xx policy: 2xx is returned only when data extraction succeeds.
curl -X GET "https://api.stayapi.com/v1/booking/hotel/details?url=https%3A%2F%2Fwww.booking.com%2Fhotel%2Ffr%2Fle-grand-hotel-paris.html" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json"
const response = await fetch("https://api.stayapi.com/v1/booking/hotel/details?" + new URLSearchParams({ url: "https://www.booking.com/hotel/fr/le-grand-hotel-paris.html" }), { headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" } }); const data = await response.json(); console.log(data.data.amenities);
import requests url = "https://api.stayapi.com/v1/booking/hotel/details" headers = { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" } params = { "url": "https://www.booking.com/hotel/fr/le-grand-hotel-paris.html" } response = requests.get(url, headers=headers, params=params) data = response.json() print(f"Hotel: {data[\"data\"][\"name\"]}") print(f"Rating: {data[\"data\"][\"star_rating\"]} stars")
{ "status": "success", "data": { "hotel_id": "hotel_123", "name": "Le Grand Hotel InterContinental", "description": "A legendary luxury hotel in the heart of Paris, offering elegant accommodations and world-class service since 1862.", "address": "2 Rue Scribe, 75009 Paris, France", "coordinates": { "latitude": 48.871586, "longitude": 2.330359 }, "star_rating": 5, "review_rating": 4.8, "total_reviews": 2847, "photos": [ "https://images.booking.com/hotel_123_main.jpg", "https://images.booking.com/hotel_123_lobby.jpg", "https://images.booking.com/hotel_123_room.jpg" ], "amenities": [ "Free WiFi", "Spa", "Fitness Center", "Restaurant", "Bar", "Room Service", "Concierge", "Valet Parking" ], "contact": { "phone": "+33 1 40 07 32 32", "email": "reservations.paris@ihg.com", "website": "https://www.ihg.com/intercontinental/hotels/paris" }, "check_in": "15:00", "check_out": "12:00", "languages_spoken": ["French", "English", "Spanish", "German"], "currency": "EUR" } }
{ "error": { "code": "not_found", "message": "Hotel not found", "details": "No hotel found with the specified URL. Please check the hotel URL parameter." } }