Booking.com hotel prices for your dates in n8n

Search Booking.com for a destination and dates, and collect each property's price, rating, review count, amenities, and breakfast info for the stay you specify.

What this workflow does

Import it and n8n runs the Booking.com Hotel Price & Amenity Search Scraper Actor on Apify every day at 08:00 with the starter input below. Each row comes back with hotel, stay total, per night, currency and 41 more; repeats with the same url are dropped. A Google Sheets append is included and stays off until you add your sheet. The only credential it needs is your Apify API token.

Read from the workflow file, built for Booking.com Hotel Price & Amenity Search Scraper version 2.0.4. Updated 2026-11-14.

How the rows travel

6 nodes, in the order n8n runs them. The yellow stop is the call to the Apify Actor; the dashed stop is optional.

  1. Daily trigger Schedule trigger
  2. Configure input Code
  3. Run Apify Actor HTTP Request
  4. Normalize + dedupe Code
  5. Rows ready No operation
  6. Google Sheets (optional) Google Sheets, off until you switch it on

From the Short

This workflow is the one the video points to: the number in each video opens this page.

Input

The Configure input node holds the starter input. Change it there; every setting the Actor accepts is listed below.

{
  "mode": "search",
  "destination": "Paris",
  "checkIn": "2026-12-01",
  "checkOut": "2026-12-03",
  "adults": 2,
  "rooms": 1,
  "currency": "USD",
  "maxItems": 20,
  "includeRooms": false
}
Input settings of Booking.com Hotel Price & Amenity Search Scraper
SettingTypeRequiredDefaultWhat it does
mode string No search Search a destination, or load specific Booking.com hotel URLs. One of: search, details.
destination string No – City, region or landmark to search, e.g. Paris, New York or Tokyo. Required in search mode.
startUrls array No – Booking.com hotel page URLs, used in details mode. Copy links from a search result or your browser.
checkIn string No – Check-in date as YYYY-MM-DD. Leave empty to use tomorrow.
checkOut string No – Check-out date as YYYY-MM-DD. Leave empty to use a 3-night stay.
adults integer No 2 Number of adult guests.
rooms integer No 1 Number of rooms needed.
propertyType string No all Keep only one Booking.com property type, or search all types. 7 choices.
minReviewScore number No 0 Minimum guest score from 0 to 10. The actor applies Booking.com's score filter and then keeps only properties at or above this exact score.
stars string No 0 Keep only properties with this star rating, or any star rating. One of: 0, 1, 2, 3, 4, 5.
freeCancellation boolean No false Return properties with at least one free-cancellation rate.
breakfast boolean No false Return properties with a breakfast-included rate.
pool boolean No false Return properties that have a swimming pool.
minPrice number No – Optional lower bound for the nightly price in the chosen currency.
maxPrice number No – Optional upper bound for the nightly price in the chosen currency.
currency string No USD Three-letter currency code such as USD, EUR or GBP.
language string No en-us Language Booking.com should use for the pages. 10 choices.
maxItems integer No 3 Stop after this many hotels.
includeRooms boolean No true Add the room and rate table for each hotel. Turn off for a smaller, faster dataset.
includeFullAmenities boolean No false Render each hotel page in a browser to collect the complete facility list. Slower and only needed when you want every amenity.
proxyConfiguration object No – Booking.com uses an AWS WAF challenge. Apify's AUTO proxy is prefilled; the actor uses this proxy for browser and HTTP requests.

What each row holds

Every field the Actor returns stays in the row (45 in its dataset schema). Normalize + dedupe trims text, drops empty fields, removes repeats with the same url and adds _source and _scrapedAt. The main fields:

Main output fields of Booking.com Hotel Price & Amenity Search Scraper
FieldWhat it is
nameHotel
priceStay total
pricePerNightPer night
currencyCurrency
ratingRating
reviewCountReviews
reviewWordScore word
starsStars
propertyTypeType
cityCity
countryCountry
freeCancellationFree cancellation
breakfastIncludedBreakfast
topAmenitiesTop amenities
urlURL

What the first run costs

With the starter input (maxItems = 20) a first run costs about $0.42 on the Apify Free plan: $0.40 to start the run at 4 GB of memory and $0.02 for the results, plus platform usage.

The Actor lists $0.99 per 1,000 results; its catalogue page breaks the price down by Apify plan. The Apify Free plan includes $5 of usage a month.

The Actor behind it

Booking.com Hotel Price & Amenity Search Scraper: Search Booking.com for a destination and dates, and collect each property's price, rating, review count, amenities, and breakfast info for the stay you specify.

The same job from an AI agent

The matching agent skill gives Claude Code, Codex, Cursor and other agents the same Actor, input and fields. Install it in one line:

npx skills add https://scraperfinder.com --skill booking-com-hotel-price-and-amenity-search-scraper

The booking.com hotel prices for your dates skill, with manual install and run steps

Questions people ask

How do I import this workflow into n8n?

Copy https://scraperfinder.com/n8n/booking-com-hotel-price-and-amenity-search-scraper.json. In n8n, open a new workflow, click the three-dot menu, choose Import from URL and paste it. Or download the JSON file and use Import from File; both give the same 6 nodes.

Do I need an Apify account?

Yes. The workflow calls the Booking.com Hotel Price & Amenity Search Scraper Actor through the Apify API with your own token, and each run is billed to your Apify account. The Free plan includes $5 of usage a month.

What does a run cost?

With the starter input (maxItems = 20) a first run costs about $0.42 on the Apify Free plan: $0.40 to start the run at 4 GB of memory and $0.02 for the results, plus platform usage. The Actor's Store page shows the current price.

Can I change what it collects?

Yes: edit the input object in the Configure input node. The Actor takes 21 settings; the table on this page lists each one with its default. Raise maxItems once the first rows look right.

Does it work without Google Sheets?

Yes. The rows wait in the Rows ready node, so you can connect any other node there: a database, Airtable, a webhook or an email. The Google Sheets node is only one option.

Workflow updated 2026-11-14