# Booking Hotel Search ## Overview | Property | Value | |----------|-------| | **Status** | private | | **Method** | `GET` | | **Endpoint** | `/v2/booking/hotel/search` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 1 credit per call | | **Documentation** | https://www.piloterr.com/library/booking-hotel-search | ## Description Search and extract real-time hotel listings from Booking.com with prices, ratings, availability, and room details. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/booking/hotel/search' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Search hotels in Paris (2 adults, 3 nights, EUR) ```json [ { "url": "https://www.booking.com/hotel/fr/fabric.html?selected_currency=EUR&lang=en-gb&group_adults=2&no_rooms=1&checkin=2026-06-15&checkout=2026-06-18", "name": "Hôtel Fabric", "type": "hotel", "image": "https://cf.bstatic.com/xdata/images/hotel/max1024x768/312847561.jpg?k=a1e2f3c4d5b6789012abcdef3456789abcdef012345678901234567890abcdef&o=&hp=1", "price": 219, "rooms": [ { "price": 219, "bedType": "1 large double bed", "persons": 2, "currency": "EUR", "features": [ "Free WiFi", "Air conditioning", "Private bathroom", "Flat-screen TV", "Minibar", "Safe", "Heating" ], "roomType": "Superior Double Room", "available": true }, { "price": 279, "bedType": "1 king bed", "persons": 2, "currency": "EUR", "features": [ "Free WiFi", "Air conditioning", "Private bathroom", "Flat-screen TV", "Minibar", "Safe", "Heating", "Courtyard view", "Bathrobes" ], "roomType": "Deluxe Double Room with Courtyard View", "available": true }, { "price": 389, "bedType": "1 king bed and 1 sofa bed", "persons": 3, "currency": "EUR", "features": [ "Free WiFi", "Air conditioning", "Private bathroom", "Flat-screen TV", "Minibar", "Safe", "Heating", "Seating area", "Bathrobes", "Slippers" ], "roomType": "Junior Suite", "available": false } ], "stars": 4, "rating": 9.2, "address": { "full": "31 Rue de la Folie Méricourt, Oberkampf, 75011 Paris, France", "region": "Île-de-France", "street": "31 Rue de la Folie Méricourt", "country": "France", "postalCode": "75011" }, "checkIn": "From 3:00 PM", "reviews": 1847, "checkOut": "Until 12:00 PM", "currency": "EUR", "location": { "lat": "48.8627400", "lng": "2.3741200", "mainDistance": "2.1 km from centre", "displayLocation": "Oberkampf, Paris" }, "breakfast": true, "description": "Located in the heart of Paris's 11th arrondissement, Hôtel Fabric is a beautifully restored 19th-century textile factory. The property features exposed brick walls, original beams, and a serene inner courtyard. Guests can enjoy the spa, fitness room, and the acclaimed on-site restaurant. Bastille and Oberkampf metro stations are both within a 5-minute walk.", "ratingLabel": "Exceptional" }, { "url": "https://www.booking.com/hotel/fr/le-marais-boutique.html?selected_currency=EUR&lang=en-gb&group_adults=2&no_rooms=1&checkin=2026-06-15&checkout=2026-06-18", "name": "Le Marais Boutique Hotel", "type": "hotel", "image": "https://cf.bstatic.com/xdata/images/hotel/max1024x768/198473625.jpg?k=b2f3e4d5c6a7890123bcdef4567890bcdef123456789012345678901bcdef012&o=&hp=1", "price": 148, "rooms": [ { "price": 148, "bedType": "1 double bed", "persons": 2, "currency": "EUR", "features": [ "Free WiFi", "Air conditioning", "Private bathroom", "Flat-screen TV", "Heating" ], "roomType": "Standard Double Room", "available": true }, { "price": 148, "bedType": "2 single beds", "persons": 2, "currency": "EUR", "features": [ "Free WiFi", "Air conditioning", "Private bathroom", "Flat-screen TV", "Heating" ], "roomType": "Twin Room", "available": true } ], "stars": 3, "rating": 8.7, "address": { "full": "12 Rue de Bretagne, Le Marais, 75003 Paris, France", "region": "Île-de-France", "street": "12 Rue de Bretagne", "country": "France", "postalCode": "75003" }, "checkIn": "From 2:00 PM", "reviews": 632, "checkOut": "Until 11:00 AM", "currency": "EUR", "location": { "lat": "48.8615300", "lng": "2.3601800", "mainDistance": "1.4 km from centre", "displayLocation": "Le Marais, Paris" }, "breakfast": false, "description": "A charming boutique hotel nestled in the historic Le Marais district, steps away from the Place des Vosges and the Picasso Museum. Each room is individually decorated with local artwork. Breakfast is served daily in the vaulted stone cellar.", "ratingLabel": "Superb" } ] ``` ## Documentation ## Overview The Booking Hotel Search endpoint queries Booking.com in real time and returns structured hotel listings for a given destination. Each result includes the property name, type, description, star rating, guest review score, pricing per night, room availability, address, geolocation, and more, all ready for integration. ## Quickstart ``` GET https://api.piloterr.com/v2/booking/hotel/search?query=Paris&check_in=2026-06-15&check_out=2026-06-18&adults=2¤cy=EUR ``` ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | Destination name, city, or region | | `check_in` | string | no | Check-in date in `YYYY-MM-DD` format | | `check_out` | string | no | Check-out date in `YYYY-MM-DD` format | | `adults` | integer | no | Number of adult guests (default `2`, max `50`) | | `rooms` | integer | no | Number of rooms (default `1`, max `50`) | | `children` | integer | no | Number of children (default `0`, max `50`) | | `currency` | string | no | ISO 4217 currency code (default `USD`) | | `language` | string | no | Language code for response content (default `en-gb`) | | `min_score` | string | no | Minimum guest rating score (e.g. `8.0`) | | `stars` | string | no | Star rating filter: `1`–`5` or `any` (default `any`) | | `property_type` | string | no | Accommodation type filter (e.g. `Hotels`, `Apartments`) | | `sort_by` | string | no | Sort criterion (default `distance_from_search`) | | `max_results` | integer | no | Maximum listings to return (default `25`, max `1000`) | ## Response fields | Field | Type | Description | |---|---|---| | `name` | string | Official property name on Booking.com | | `url` | string | Direct URL to the hotel page | | `type` | string | Accommodation type | | `stars` | number | Official star rating (1–5) | | `rating` | number | Guest review score (1–10) | | `ratingLabel` | string | Label (e.g. `Exceptional`, `Superb`) | | `reviews` | number | Total guest review count | | `price` | number | Lowest nightly price in requested currency | | `currency` | string | Currency code | | `breakfast` | boolean | Whether breakfast is included | | `rooms[].roomType` | string | Room category name | | `rooms[].available` | boolean | Room availability for selected dates | | `location.lat` | string | Latitude coordinate | | `location.lng` | string | Longitude coordinate | | `location.mainDistance` | string | Distance from city centre | ## Notes - Providing `check_in` and `check_out` is strongly recommended for accurate pricing. - Use `min_score` and `stars` together to target premium properties. - Setting `max_results` above 100 significantly increases response time. ## Main use cases - Build hotel comparison and booking aggregator tools with live Booking.com pricing data - Enrich travel itinerary platforms with real-time accommodation options and availability - Monitor competitor hotel pricing and market positioning across key destinations - Power travel budget planners with dynamic nightly rate data per destination and dates - Feed corporate travel management systems with curated hotel lists based on rating and price filters