Booking.com Scraper - Pay Per Result avatar

Booking.com Scraper - Pay Per Result

Pricing

from $1.70 / 1,000 results

Go to Apify Store
Booking.com Scraper - Pay Per Result

Booking.com Scraper - Pay Per Result

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

7

Total users

3

Monthly active users

3 days ago

Last modified

Categories

Share

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

🎯 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: Use the fields below for a simple location-based search.

ParameterTypeRequiredDescription
searchUrlstringNoFull Booking.com search URL with all filters applied
locationstringNoCity, region, or country (e.g., "Paris", "Bali", "New York")
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)

Either searchUrl or location is required.

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 (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"
}

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. 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: 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.

πŸ“¬ 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.