Booking Scraper avatar
Booking Scraper

Pricing

$24.99/month + usage

Go to Apify Store
Booking Scraper

Booking Scraper

Scrape Booking.com hotels at scale. Extract prices, ratings, reviews, photos, availability for any destination. Filter by stars, price, score. Get 20+ data points per hotel. Supports all currencies & languages. Fast, reliable with residential proxies

Pricing

$24.99/month + usage

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Categories

Share

Booking.com Hotel Scraper

by SilentFlow

Extract hotel data from Booking.com at scale. Get prices, ratings, reviews, photos, and availability for any destination worldwide.

Why use this scraper?

  • Comprehensive data: 20+ data points per hotel including prices, reviews, photos, and amenities
  • Global coverage: Search any destination - cities, regions, or countries
  • Real-time prices: Get current availability and pricing for your dates
  • Flexible filtering: Filter by price, stars, review score, and more
  • High reliability: Built-in retry logic and residential proxy support

Use cases

IndustryApplication
Travel agenciesCompare hotel prices across destinations
Market researchAnalyze hospitality market trends
Price monitoringTrack competitor pricing
Data analyticsBuild travel recommendation systems
Academic researchStudy tourism and pricing patterns

Input parameters

ParameterTypeRequiredDescription
locationstringYes*City, region, or country (e.g., "Paris", "Bali", "Japan")
searchUrlstringYes*Full Booking.com search URL (alternative to location)
maxItemsintegerNoMaximum hotels to return (default: 100, max: 1000)

*Either location or searchUrl is required

Date & guests

ParameterTypeDefaultDescription
checkInstring+7 daysCheck-in date (YYYY-MM-DD)
checkOutstring+8 daysCheck-out date (YYYY-MM-DD)
adultsinteger2Number of adult guests
roomsinteger1Number of rooms needed

Filters

ParameterTypeDescription
minPriceintegerMinimum price per night
maxPriceintegerMaximum price per night
starsintegerMinimum star rating (1-5)
minReviewScorenumberMinimum guest score (1-10)
freeCancellationbooleanOnly show free cancellation options

Options

ParameterTypeDefaultOptions
currencystringUSDUSD, EUR, GBP, JPY, AUD, CAD, CHF, CNY, etc.
languagestringen-usen-us, en-gb, fr, de, es, it, pt-br, ja, zh-cn, etc.
sortstringpopularitypopularity, price, review_score_and_price, class, distance

Output data

Each hotel record contains:

{
"hotelId": "12345678",
"name": "Grand Hotel Paris",
"type": "Hotel",
"url": "https://www.booking.com/hotel/fr/grand-hotel-paris.html",
"address": "1 Avenue des Champs-Élysées",
"city": "Paris",
"countryCode": "fr",
"latitude": 48.8566,
"longitude": 2.3522,
"publicTransport": "Champs-Élysées Clemenceau station is within 200 yards",
"starRating": 5,
"reviewScore": 9.2,
"reviewCount": 2847,
"reviewWord": "Superb",
"price": 450.00,
"originalPrice": 520.00,
"currency": "EUR",
"taxesAndCharges": 45.00,
"mainPhoto": "https://cf.bstatic.com/xdata/images/hotel/...",
"checkIn": "2024-06-15",
"checkOut": "2024-06-17",
"freeCancellation": true,
"breakfastIncluded": true,
"noPrepayment": false,
"isPreferred": true,
"isSustainable": true,
"scrapedAt": "2024-06-01T12:00:00Z"
}

Field descriptions

FieldDescription
hotelIdUnique Booking.com property ID
typeProperty type: Hotel, Apartment, Hostel, Villa, Resort, etc.
publicTransportNearest metro/train station with distance
reviewWordScore category: Superb, Excellent, Very Good, Good, etc.
originalPricePrice before any discounts (if applicable)
taxesAndChargesAdditional fees not included in base price
isPreferredBooking.com Preferred Partner badge
isSustainableTravel Sustainable certification

Examples

Basic search - Paris hotels

{
"location": "Paris",
"maxItems": 50
}

Luxury hotels in Tokyo

{
"location": "Tokyo",
"checkIn": "2024-07-01",
"checkOut": "2024-07-05",
"adults": 2,
"stars": 5,
"minReviewScore": 9,
"currency": "JPY",
"maxItems": 100
}

Budget-friendly options in Bali

{
"location": "Bali",
"maxPrice": 100,
"freeCancellation": true,
"currency": "USD",
"maxItems": 200
}

Using a Booking.com URL directly

{
"searchUrl": "https://www.booking.com/searchresults.html?ss=New+York&checkin=2024-08-01&checkout=2024-08-03",
"maxItems": 100
}

Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/booking-scraper").call(run_input={
"location": "Barcelona",
"checkIn": "2024-09-01",
"checkOut": "2024-09-03",
"maxItems": 50,
"currency": "EUR"
})
for hotel in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{hotel['name']}: {hotel['price']} {hotel['currency']}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('silentflow/booking-scraper').call({
location: 'London',
checkIn: '2024-10-15',
checkOut: '2024-10-17',
maxItems: 100,
currency: 'GBP'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(hotel => console.log(`${hotel.name}: £${hotel.price}`));

Performance & limits

MetricValue
Hotels per page~25
Average speed~25 hotels/second
Max items per run1,000
Supported destinationsWorldwide

Tips for best results

  1. Use specific locations: "Paris, France" works better than just "Paris"
  2. Set realistic date ranges: Prices vary significantly by date
  3. Use filters wisely: Filtering client-side (stars, price) is faster than URL parameters
  4. Start small: Test with maxItems: 10 before large scrapes
  5. Residential proxy: Enabled by default for best reliability

FAQ

Q: Why are some prices different from the Booking.com website? A: Prices on Booking.com vary based on user location, login status, and cookies. The scraper sees prices as a new visitor from the US.

Q: Can I scrape hotel details pages? A: This scraper focuses on search results. For detailed info (full description, all photos, room types), contact us for a custom solution.

Q: How often can I run the scraper? A: There are no limits on run frequency. However, prices change frequently, so scraping the same hotels more than once per day may not add value.

Q: What happens if no hotels are found? A: The scraper returns an empty dataset and logs "No hotels found matching criteria". Check your location spelling and date range.

Support

Need help? We're here for you:

  • Bug reports: Open an issue on the actor page
  • Questions: Message us via Apify console
  • Feature requests: Let us know what you need
  • Custom solutions: Contact us for enterprise integrations or high-volume needs

Check out our other scrapers: SilentFlow on Apify