Booking.com Hotel Price Tracker — Compare Hotel Prices
Pricing
from $10.00 / 1,000 results
Booking.com Hotel Price Tracker — Compare Hotel Prices
An Apify Actor that scrapes hotel search results from [Booking.com](https://www.booking.com). Extract prices, ratings, reviews, amenities, and booking links for
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Julien ApiKiy
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Booking.com Hotel Price Tracker
An Apify Actor that scrapes hotel search results from Booking.com. Extract prices, ratings, reviews, amenities, and booking links for any destination and date range.
Features
- Multi-destination search — search multiple cities/destinations in one run
- Rich data extraction — hotel name, price per night, total price, rating, review count, star rating, address, distance from center, image URL, booking URL, amenities
- Pagination support — automatically navigates through result pages
- Anti-detection — random delays, user-agent rotation, cookie consent dismissal, viewport randomization
- No proxy required — works from datacenter IPs
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | required | List of destinations to search |
checkIn | string | required | Check-in date (YYYY-MM-DD) |
checkOut | string | required | Check-out date (YYYY-MM-DD) |
guests | number | 2 | Number of adult guests |
maxResults | number | 20 | Max results per destination |
maxConcurrency | number | 2 | Browser pages in parallel |
Example Input
{"searchQueries": ["Paris", "London", "Barcelona"],"checkIn": "2026-09-01","checkOut": "2026-09-05","guests": 2,"maxResults": 10,"maxConcurrency": 2}
Output
Each item in the dataset:
{"hotelName": "Grand Hotel Paris","pricePerNight": 189,"totalPrice": 756,"rating": 8.7,"reviewCount": 2345,"starRating": 4,"address": "15 Rue de Rivoli, Paris","distanceFromCenter": "0.5 km from city centre","imageUrl": "https://cf.bstatic.com/xdata/hotel.jpg","bookingUrl": "https://www.booking.com/hotel/grand-hotel-paris.html","amenities": ["WiFi", "Pool"],"destination": "Paris","scrapedAt": "2026-09-01T12:00:00.000Z"}
How It Works
- Builds Booking.com search URLs from your input parameters
- Launches headless Chrome via PlaywrightCrawler
- Dismisses cookie consent banners
- Extracts hotel data from search result cards using multiple fallback selectors
- Handles pagination to collect the requested number of results
- Pushes all results to the default dataset
Anti-Detection
- Random user-agent rotation (8 real browser UAs)
- Random viewport sizes (1280–1920 × 720–1080)
- Random delays between actions (2–5 seconds)
- Cookie consent auto-dismissal
- WebDriver detection override
Running Locally
# Install dependenciesnpm install# Run testsnpm test# Run the actor (with Apify CLI)apify run# Or run directlynpm start
Running with Docker
docker build -t booking-price-tracker .docker run -e APIFY_TOKEN=your_token booking-price-tracker
Testing
$npm test
Tests use ESM, node:assert, and Mocha. No proxy or external services needed.
💰 Pricing
Pay-per-use, no monthly fees:
| Price | |
|---|---|
| Actor start | $0.01 |
| Per result | $0.01 |
💡 Example: A run returning 500 results costs $5.01 total ($0.01 start + 500 × $0.01).
License
MIT