Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Booking.com hotel prices for a whole city and exact dates, without a browser (Python + n8n)

Description and use

Retrieve Booking.com hotel prices for an entire city on specific dates without a browser, using Apify’s API and n8n automation.

Problem

Scraping Booking.com hotel prices for an entire city on specific dates without triggering AWS WAF challenges and without using a headless browser.

Outcome

Obtained structured hotel price data for a city on exact dates without browser overhead, enabling daily price monitoring and comparison.

Workflow

  • 1. Prepare Apify token and set environment variable APIFY_TOKEN.
  • 2. Construct JSON payload with locationQueries, checkIn, nights, adults, childrenAges, rooms, currency, sortBy, minStars, maxPrice, maxHotelsPerQuery.
  • 3. Send POST request to https://api.apify.com/v2/acts/kestrel~booking-prices-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.
  • 4. Receive JSON array of hotel rows with price_total, price_nightly, taxes_included, free_cancellation, breakfast_included, etc.
  • 5. Optionally filter or sort results in Python or n8n workflow.
  • 6. Schedule the request to run every morning via n8n cron node.
  • 7. Store or export the data for analysis or pricing dashboards.

Evidence

Every Booking.com page sits behind AWS WAF. The results page, once loaded, calls a GraphQL operation named FullSearch on Booking's /dml/graphql endpoint, 100 properties per page, and that call is served without the WAF token — on residential IPs.

Source

The Booking.com Scraper on Apify takes destinations as typed into Booking's search box, or property URLs, names and ids, plus a stay (checkIn, nights, adults, childrenAges, rooms, currency), and returns one hotel row per property.

Source

  • Record date: 2026-09-10T23:45:29.126Z