Booking.com Hotel Scraper avatar

Booking.com Hotel Scraper

Pricing

from $1.70 / 1,000 results

Go to Apify Store
Booking.com Hotel Scraper

Booking.com Hotel Scraper

Booking.com scraper. Only pay for hotels returned - no compute costs, no proxy fees. Extract prices, ratings, reviews, locations. 20+ data points per hotel. No charge for failed runs or empty results. Predictable pricing, guaranteed data.

Pricing

from $1.70 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

20

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Booking.com Scraper - Pay Per Result

1 search. 100 Booking.com Hotel results. 9 fields per result.

From SilentFlow. Creators of Pinterest Scraper and Leboncoin Scraper, with 410,000+ combined lifetime runs.

by SilentFlow

Only pay for what you get. No compute costs, no proxy fees, no surprises. Just results.

✨ Why use this scraper?

  • 💸 Pay only for results, No charge if no data is returned
  • 🔒 Proxies included, Residential proxies are included in the per-result price
  • 📊 20+ data fields, Prices, reviews, photos, amenities, and more per hotel
  • 🌍 Global coverage, Search any destination worldwide
  • 🔎 Keyword or URL, Type a city, neighbourhood, landmark or hotel name, list several in one run, or paste a Booking.com URL

Try Booking.com Hotel Scraper

SilentFlow · Booking.com Hotel suite
  Booking.com Hotel Scraper
You are here
  Booking Scraper
Hotel Prices, Photos,

🎯 Use cases

Use PPR when...Use Standard when...
You need predictable costsYou're scraping thousands of hotels
You want guaranteed resultsYou have Apify compute credits
You're testing or prototypingYou're running scheduled jobs
Budget is per-result focusedBudget is time-based

📥 Input parameters

You have two options:

Option 1 (Recommended): Paste a Booking.com search URL, go to booking.com, set your destination, dates, guests, price range, stars, sort order, and any other filter, then copy the URL.

Option 2: Search by keyword. Type a destination in location, and add as many destinations, neighbourhoods, landmarks or hotel names as you like in searches, one per line.

ParameterTypeRequiredDescription
searchUrlstringNoFull Booking.com search URL with all filters applied
locationstringNoCity, region, neighbourhood, landmark or hotel name (e.g., "Paris", "Bali", "Eiffel Tower")
searchesarrayNoMore searches in the same run, one per line: keywords like "Rome", "Le Marais" or "Hilton London Paddington", or Booking.com search URLs
checkInstringNoCheck-in date in YYYY-MM-DD (default: 7 days from now)
checkOutstringNoCheck-out date in YYYY-MM-DD (default: 8 days from now)
adultsintegerNoNumber of adult guests (default: 2)
childrenstringNoComma-separated ages of children (e.g., "2,5,10")
roomsintegerNoNumber of rooms (default: 1)

Fill at least one of searchUrl, location or searches. When searchUrl is set, location is ignored, and every line of searches still runs. A hotel found by two searches is returned once.

Options

ParameterTypeDefaultDescription
currencystringUSDCurrency for prices (USD, EUR, GBP, JPY, etc.)
languagestringen-usResults language (en-us, fr, de, es, it, ja, etc.)
maxItemsinteger100Maximum hotels to return for each search (max: 1,000)
enrichDetailsbooleanfalseVisit each hotel page for full description, photos, facilities

Tip: Need to filter by price, stars, or review score? Set those filters on booking.com and paste the URL into searchUrl, the scraper reads all filters directly from the URL.

enrichDetails adds ~1-2s per hotel (3 parallel workers). A 50-hotel scrape takes ~20-30s extra. You get full descriptions, 10-60 photos per hotel, facilities list, and highlights.

📊 Output data

Each hotel record contains:

{
"hotelId": "12345678",
"name": "Le Grand Hotel Paris",
"type": "Hotel",
"url": "https://www.booking.com/hotel/fr/le-grand-paris.html",
"address": "2 Rue Scribe",
"city": "Paris",
"country": "fr",
"latitude": 48.8706,
"longitude": 2.3315,
"distanceFromCenter": "0.3 km from center",
"publicTransport": "Opéra station is within 100 yards",
"starRating": 5,
"reviewScore": 9.1,
"reviewCount": 4521,
"reviewWord": "Superb",
"price": 580.00,
"originalPrice": 650.00,
"currency": "EUR",
"pricePerNight": 290.00,
"taxesAndCharges": 58.00,
"mainPhoto": "https://cf.bstatic.com/xdata/images/hotel/...",
"photos": ["https://cf.bstatic.com/..."],
"checkIn": "2026-06-15",
"checkOut": "2026-06-17",
"description": "Located near the Opéra Garnier...",
"facilities": ["Free WiFi", "Spa", "Restaurant"],
"highlights": ["Excellent location", "Luxury rooms"],
"freeCancellation": true,
"breakfastIncluded": true,
"noPrepayment": false,
"isPreferred": true,
"isSustainable": true,
"scrapedAt": "2026-04-01T12:00:00Z"
}

🗂️ Data fields

CategoryFields
IdentityhotelId, name, type, url
Locationaddress, city, country, latitude, longitude, distanceFromCenter, publicTransport
RatingsstarRating, reviewScore, reviewCount, reviewWord
Pricingprice, originalPrice, currency, pricePerNight, taxesAndCharges, discount
MediamainPhoto, photos
Detailsdescription, facilities, highlights
PoliciesfreeCancellation, breakfastIncluded, noPrepayment
BadgesisPreferred, isPreferredPlus, isSustainable
MetacheckIn, checkOut, scrapedAt

🚀 Examples

Simple search, Dubai hotels

{
"location": "Dubai",
"maxItems": 20,
"currency": "USD"
}

Several destinations, landmarks and hotels in one run

{
"searches": ["Lisbon", "Eiffel Tower", "Hilton London Paddington"],
"checkIn": "2026-10-12",
"checkOut": "2026-10-14",
"maxItems": 30,
"currency": "EUR"
}

A landmark returns the hotels around it, a hotel name returns that hotel first, then the ones nearby.

Rich data with photos & description

{
"location": "Cinque Terre, Italy",
"maxItems": 50,
"currency": "EUR",
"enrichDetails": true
}

Using a Booking.com URL (with all filters)

{
"searchUrl": "https://www.booking.com/searchresults.html?ss=Bangkok&checkin=2026-08-01&checkout=2026-08-03&nflt=price%3DUSD-min-50-1%3Bfc%3D2",
"maxItems": 50
}

💻 Integrations

Python

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

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('silentflow/booking-scraper-ppr').call({
location: 'Vienna',
maxItems: 30,
currency: 'EUR'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} hotels`);

📈 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 maxItems wisely, Only request what you need to control costs
  2. Use searchUrl for advanced filters, Set price range, stars, review score on booking.com, then paste the URL
  3. Be specific, "Paris, France" instead of "Paris" avoids wrong results
  4. Batch your destinations, Put every city, landmark or hotel you track in searches and get them all in one dataset
  5. Test first, Try with maxItems: 5 to verify your search works

❓ FAQ

Q: What if no hotels are found? A: You pay nothing. Only successful results are charged.

Q: What if the run fails? A: You pay nothing. Failed runs don't charge you.

Q: Is there a minimum charge? A: No minimum. Get 1 hotel = pay for 1 hotel.

Q: Are proxy costs included? A: Yes! Residential proxies are included in the per-result price.

Q: Can I search for a hotel by name or for hotels near a landmark? A: Yes. Type the hotel name ("Hilton London Paddington") or the landmark ("Eiffel Tower") in location or in searches, just like on booking.com.

Q: Can I scrape several cities in one run? A: Yes. List them in searches, one per line. Each search returns up to maxItems hotels, and a hotel found twice is returned once.

Q: How do I filter by price, stars, or review score? A: Go to booking.com, apply all your filters, then paste the URL into searchUrl.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

📈 Marketing

🧰 More tools

📬 Support

Need help? We're here for you:

  • 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


Remember: You only pay for results. No results = no charge.