Booking.com Hotels Scraper - Worldwide Search & Categories avatar

Booking.com Hotels Scraper - Worldwide Search & Categories

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Booking.com Hotels Scraper - Worldwide Search & Categories

Booking.com Hotels Scraper - Worldwide Search & Categories

Scrape Booking.com hotel search results for any destination worldwide. Extract names, prices, ratings, locations, room types, and listing links. Filter by property category or leave empty for all types.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Booking.com Hotels Scraper

Scrape Booking.com search results for any destination worldwide — prices, ratings, locations, and listing links in structured JSON. Filter by property category, stars, review score, and free cancellation. No Booking partner API required.

What does this Actor do?

  • Search Booking.com stays for cities, regions, countries, or landmarks worldwide
  • Resolve destinations via Booking autocomplete (dest_id / dest_type) when possible; falls back to free-text ss= search if autocomplete is unavailable
  • Filter by property types (empty = all), stars, min review score, and free cancellation
  • Support children / child ages in the search URL
  • Sort by popularity, price, reviews, stars, or distance
  • Extract hotelId, name, price, total price (when shown), rating, review count, location, room type, and image
  • Paginate up to your maxResults limit with headed Chrome + sticky Apify RESIDENTIAL proxies (never unproxied)

Output fields

FieldDescription
sourceAlways booking
hotelIdStable id from URL/card when available (e.g. sg/marina-bay-sands)
nameProperty name
urlBooking.com listing URL
priceNightly / primary displayed price (when available)
totalPriceTotal stay price when visible on the search card
currencyISO currency code
ratingNumeric review score (typically 1–10)
ratingTextRaw rating text from the card
reviewCountNumber of reviews
propertyTypeInferred type (Hotel, Apartment, Hostel, …)
locationNeighborhood / area text
distanceFromCenterDistance-from-center text
imageUrlPrimary card image
roomTypeRecommended unit / room text
amenitiesAmenity labels when present on SERP (often empty)
destination / checkin / checkoutEchoed from the search input when set
scrapedAtISO timestamp

How to use

  1. Enter a destination (city, region, country, or landmark — e.g. Tokyo, France, near Times Square)
  2. Set check-in / check-out (YYYY-MM-DD) for accurate prices
  3. Optionally choose property types, stars, review score, sort, language, currency, and proxy country
  4. Click Start — results appear in the Dataset tab
{
"destination": "Tokyo",
"checkin": "2026-08-01",
"checkout": "2026-08-03",
"adults": 2,
"maxResults": 20,
"currency": "USD",
"lang": "en-us",
"proxyCountry": "JP"
}

Example: apartments only in Paris

{
"destination": "Paris",
"checkin": "2026-08-01",
"checkout": "2026-08-05",
"adults": 2,
"propertyTypes": ["apartment"],
"sort": "price",
"maxResults": 30,
"currency": "EUR",
"lang": "en-us",
"proxyCountry": "FR"
}

Example: family stay with filters

{
"destination": "Singapore",
"checkin": "2026-08-01",
"checkout": "2026-08-03",
"adults": 2,
"children": 1,
"childAges": [8],
"stars": [4, 5],
"minReviewScore": 8.0,
"freeCancellation": true,
"propertyTypes": ["hotel"],
"maxResults": 20,
"currency": "SGD",
"proxyCountry": "SG"
}

Leaving propertyTypes empty means all accommodation categories.

Example output

{
"source": "booking",
"hotelId": "fr/negresco",
"name": "Hotel Negresco Nice",
"url": "https://www.booking.com/hotel/fr/negresco.html",
"price": 312.0,
"totalPrice": 1248.0,
"currency": "USD",
"rating": 8.7,
"ratingText": "Fabulous",
"reviewCount": 4521,
"propertyType": "Hotel",
"location": "Promenade des Anglais, Nice",
"distanceFromCenter": "1.2 km from center",
"imageUrl": "https://cf.bstatic.com/xdata/images/hotel/square200/12345.webp",
"roomType": "Superior Double Room",
"amenities": [],
"destination": "Nice",
"checkin": "2026-08-01",
"checkout": "2026-08-05",
"scrapedAt": "2026-07-20T05:00:00Z"
}

Input

FieldTypeDefaultNotes
destinationstringSingaporeCity / region / country / landmark
checkin / checkoutstring(empty)YYYY-MM-DD
adultsinteger21–10
childreninteger00–10
childAgesinteger[][]Ages 0–17; padded to children
roomsinteger11–10
maxResultsinteger501–500
currencystringUSDISO code + cur_curr cookie
langstringen-usUI language tag
sortenumpopularitypopularity, price, review_score, …
propertyTypesstring[][]Empty = all categories
starsinteger[][]1–5 → class= filters
minReviewScorenumber(null)0–10 → review_score= tenths
freeCancellationbooleanfalseoos=1
destId / destTypestring(empty)Skip autocomplete when both set
customNfltFiltersstring[][]Raw nflt fragments
proxyCountrystring(empty)RESIDENTIAL country (default US)
proxyobject(none)Optional Apify proxy editor

Supported property types

hotel, apartment, hostel, motel, resort, bed_and_breakfast, villa, guesthouse, holiday_home, aparthotel, lodge, homestay, country_house, capsule_hotel, campground, inn, ryokan, riad, chalet, holiday_park, tent, love_hotel, pension

Limits & notes

  • SERP only — no detail-page enrichment; amenities/totalPrice are often empty on cards
  • Autocomplete — tries API + UI suggestion fallback; if both fail, search continues with free-text ss= (destSource:query_only in warnings)
  • Proxy required — sticky RESIDENTIAL is mandatory; the Actor does not fall back to direct/unproxied browsing
  • Anti-bot — headed Chrome + Xvfb; Cloudflare challenges are waited on and fail the page/attempt if unresolved (no CapSolver)

Diagnostics

Each run writes:

  • INPUT_ECHO — sanitized input including resolved destId/destType and nflt
  • RUN_SUMMARY — status, counters, field completeness, warnings (destSource:…, proxy mode, etc.)
  • ERROR_SUMMARY — written only on hard failures

Statuses: ok | partial | blocked.

Pricing

This Actor uses Pay per event pricing. Platform usage costs are paid by the Actor developer (not passed to the user).

EventPrice
apify-actor-start (Actor Start)$0.005 per start (memory-scaled)
apify-default-dataset-item (Result)$3.00 / 1,000 listings ($0.003 each)

FAQ

Can I search any country?
Yes. Enter a city, region, or country name. The Actor tries Booking autocomplete for dest_id; if that fails it still searches with the destination text. Inventory is global on www.booking.com.

What does empty propertyTypes mean?
All categories — hotels, apartments, hostels, and other accommodation types shown on the SERP.

Do I need a Booking.com account?
No.

Are amenities always filled?
No. This Actor scrapes search results only; amenities are often absent on SERP cards.