Booking Scraper | Hotel Prices, Photos, Availability avatar

Booking Scraper | Hotel Prices, Photos, Availability

Pricing

from $1.70 / 1,000 results

Go to Apify Store
Booking Scraper | Hotel Prices, Photos, Availability

Booking Scraper | Hotel Prices, Photos, Availability

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

from $1.70 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

2

Bookmarked

7

Total users

0

Monthly active users

13 days ago

Last modified

Categories

Share

Booking Scraper

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

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

by SilentFlow

✨ Why use this scraper?

  • 📊 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 Hotels Scraper

SilentFlow · Booking.com Hotels suite
  Booking.com Hotel Scraper
Booking.com Hotel Scraper
  Booking.com Hotels Scraper
You are here

🎯 Use cases

|-----------------|---------------------| | You need predictable costs | You're scraping thousands of hotels | | You're testing or prototyping | You're running scheduled jobs | | Budget is per-result focused | Budget 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").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').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?

Q: What if the run fails?

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

Q: Are proxy costs included?

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