Apify Store
AS
Apify Store
/voyager/booking-scraper

Search Booking.com

Scrape Booking with this hotels scraper and get data about accommodation on Booking.com. You can crawl by keywords or URLs for hotel prices, ratings, addresses, number of reviews, stars. You can also download all that room and hotel data from Booking.com with a few clicks: CSV, JSON, HTML, and Excel

liveverifiedasyncunknown~30s typical
bookinghotelstravel
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /voyager/booking-scraper for me.

Input

FieldTypeDescription
searchstringInsert the destination name here, e.g. Amsterdam.
startUrlsarrayInsert URLs to start with instead of a destination name. Hotel search URL's filters will be applied, except for the ones in the scraper input. You can also use shared list URLs. These links are generated for properties you saved in your Booking.com account.
maxItemsintegerLimit the number of places to be scraped. Input a value over `1000` to activate the 'overcome 1000 results limit' feature.
extractAdditionalHotelDatabooleanAdds two fields to each hotel: <code>surroundings</code> (nearby points of interest and distances) and <code>roomOfferings</code> (available room types with details). default false
propertyTypestring (none | Hotels | Apartments | Hostels | Guest houses | Homestays)Choose type of property default "none"
sortBystring (bayesian_review_score | distance_from_search | class_asc | price | review_score_and_price | class_and_price)Hotel attribute by which the results will be ordered default "distance_from_search"
minScorestringMinimum rating of a hotel in "8.4" format. - Searching below a rating of `5` may be very inefficient, as it's not natively supported by Booking.com.
starsCountFilterstring (any | 1 | 2 | 3 | 4 | 5)Only scrape places with the selected stars count. Also includes Booking.com's apartment-like properties 'square' rating. default "any"
currencystring (ARS | AUD | AZN | BHD | BRL | BGN)Currency to be set on the website default "USD"
languagestring (en-gb | en-us | de | nl | fr | es)Language to be set on the website (does not apply to reviews) default "en-gb"
checkInstringSelect the check-in date in format YYYY-MM-DD or {number} {unit}. - Input the date in the UTC timezone. Booking.com uses the UTC timezone for all check-in and check-out dates, so we do the same.
checkOutstringSelect the check-out date in format YYYY-MM-DD or {number} {unit}. - Input the date in the UTC timezone. Booking.com uses the UTC timezone for all check-in and check-out dates, so we do the same.
flexWindowstring (0 | 1 | 2 | 3 | 7)Number of days to flex around the check-in and check-out dates. E.g. setting `3` will scrape hotels with a possible date range up to 3 days before and 3 days after the selected dates. - **Applied per URL:** used for search-style start URLs (destination, region, coordinates) or a `search` query, and **ignored for direct hotel URLs** (`/hotel/...html`), where only the exact `checkIn`/`checkOut` dates are used.
roomsintegerNumber of rooms for the availability and price search. default 1
adultsintegerNumber of adult guests for the availability and price search. default 2
childrenintegerNumber of child guests for the availability and price search. default 0
minMaxPricestringInsert the minimum and maximum price per night, e.g. '100-150' or '100+'.

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/voyager/booking-scraper","input":{"search":"Austin","maxItems":20},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /voyager/booking-scraper -i '{"search":"Austin","maxItems":20}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/voyager/booking-scraper", input: {"search":"Austin","maxItems":20}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.