Hotel Facilities API
Extract comprehensive facilities and amenities information from Booking.com hotels.
Overview
Complete Amenities List
Get all hotel facilities organized by category, including property-wide and room-specific amenities.
The Hotel Facilities endpoint provides a detailed breakdown of all facilities available at a hotel, organized by categories such as general facilities, activities, services, and room-specific amenities.
Endpoint URL
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Required | Full Booking.com hotel URL (https://www.booking.com/hotel/{cc}/{slug}.html) |
Response Structure
Facility Categories
- General - Core hotel facilities (WiFi, parking, etc.)
- Activities - Recreation and entertainment options
- Services - Guest services (concierge, laundry, etc.)
- Food & Drink - Dining options and bars
- Pool/Wellness - Pool, spa, and fitness facilities
- Transportation - Shuttle services and transfers
- Reception Services - Front desk services
- Common Areas - Shared spaces and lounges
- Entertainment & Family - Kids facilities and entertainment
- Cleaning Services - Housekeeping options
- Business Facilities - Meeting rooms and business center
- Shops - On-site shopping options
- Miscellaneous - Other unique facilities
Room-Specific Facilities
Facilities organized by room type, showing which amenities are available in specific room categories.
Facility Statistics
- Total facility count
- Count by category
- Most common facilities
Usage Tips
Display Strategy
Group facilities by category for better user experience. Highlight the most important amenities like WiFi, parking, and breakfast.
Implementation Best Practices
- Use icons to represent facility categories
- Show room-specific facilities when displaying room options
- Highlight popular amenities (Free WiFi, Free Parking, etc.)
- Allow filtering search results by key facilities
- Cache facility data as it rarely changes
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/facilities?url=https://www.booking.com/hotel/th/baan-coconut.html" \ -H "x-api-key: YOUR_API_KEY"
const response = await fetch( "https://api.stayapi.com/v1/booking/hotel/facilities?url=https://www.booking.com/hotel/th/baan-coconut.html", { headers: { "x-api-key": "YOUR_API_KEY" } } ); const data = await response.json(); // Display facilities by category Object.entries(data.data.facilities_by_category).forEach(([category, facilities]) => { console.log(`\n${category}:`); facilities.forEach(facility => { console.log(` - ${facility}`); }); }); // Show key statistics console.log(`\nTotal facilities: ${data.data.facility_count.total}`);
import requests url = "https://api.stayapi.com/v1/booking/hotel/facilities" headers = {"x-api-key": "YOUR_API_KEY"} params = {"url": "https://www.booking.com/hotel/th/baan-coconut.html"} response = requests.get(url, headers=headers, params=params) data = response.json() # Display facilities by category facilities = data["data"]["facilities_by_category"] for category, items in facilities.items(): print(f"\n{category}:") for facility in items[:5]: # Show first 5 in each category print(f" - {facility}") if len(items) > 5: print(f" ... and {len(items) - 5} more") # Show popular facilities print("\nMost Common Facilities:") for facility in data["data"]["popular_facilities"][:10]: print(f" ✓ {facility}")
{ "success": true, "data": { "facilities_by_category": { "General": [ "Non-smoking rooms", "Free WiFi", "Family rooms", "Free parking", "Room service", "Restaurant", "24-hour front desk", "Bar", "Good breakfast" ], "Activities": [ "Beach", "Bicycle rental", "Snorkeling", "Diving", "Fishing", "Canoeing", "Hiking", "Karaoke", "Library" ], "Services": [ "Airport shuttle", "Laundry", "Dry cleaning", "Ironing service", "Currency exchange", "Concierge", "Tour desk", "Luggage storage" ], "Food & Drink": [ "Restaurant", "Bar", "Breakfast options", "Coffee shop", "Snack bar", "Special diet menus", "Wine/champagne" ], "Pool/Wellness": [ "Outdoor pool", "Spa", "Massage", "Hot tub/Jacuzzi", "Fitness center", "Sauna", "Pool bar", "Sun deck" ], "Transportation": [ "Airport shuttle (surcharge)", "Shuttle service", "Car rental", "Bicycle rental" ], "Reception Services": [ "24-hour front desk", "Express check-in/out", "Currency exchange", "Tour desk", "Luggage storage", "Safety deposit box" ] }, "room_facilities": { "all_rooms": [ "Air conditioning", "Private bathroom", "Flat-screen TV", "Free WiFi", "Safe", "Minibar", "Coffee/tea maker", "Hair dryer", "Toiletries" ], "by_room_type": { "Deluxe Room": [ "Balcony", "Sea view", "Bathtub", "Bathrobes", "Slippers" ], "Suite": [ "Living room", "Kitchenette", "Dining area", "Washing machine", "Ocean view" ] } }, "facility_count": { "total": 87, "by_category": { "General": 15, "Activities": 12, "Services": 18, "Food & Drink": 8, "Pool/Wellness": 10, "Transportation": 4, "Reception Services": 8, "Room Facilities": 12 } }, "popular_facilities": [ "Free WiFi", "Free parking", "Airport shuttle", "Non-smoking rooms", "Restaurant", "24-hour front desk", "Outdoor pool", "Air conditioning", "Bar", "Beach" ] }, "message": "Successfully retrieved hotel facilities", "retrieved_at": "2024-01-15T10:30:00Z" }
{ "error": "Hotel not found", "detail": "Could not find hotel with URL: invalid-hotel", "status_code": 404 }