Travel Accommodation Scraper avatar

Travel Accommodation Scraper

Pricing

Pay per usage

Go to Apify Store
Travel Accommodation Scraper

Travel Accommodation Scraper

Search hotels and vacation rentals across Booking.com and Airbnb in one run. Compare prices, ratings, and availability. No login, no API key needed.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 hours ago

Last modified

Share

Travel Accommodation Scraper — Booking.com & Airbnb

Scrape hotels and vacation rentals from Booking.com and Airbnb in a single run with one Actor built for hotel price comparison, travel monitoring,. This travel scraper collects listings from two major travel marketplaces, normalizes the output, and returns data you can use for dashboards, alerts, competitor tracking, without requiring login credentials or third-party APIs for the target sites.

The Actor is designed for teams that need a reliable Booking.com scraper and Airbnb scraper experience without stitching together two separate tools. Instead of merging mismatched payloads after the fact, you get one accommodation scraper with a shared schema for hotels, apartments, private rooms, and vacation stays. That makes it easier to build hotel price comparison products, market intelligence tools, travel planning assistants, or a vacation rental scraper workflow that runs on a schedule inside Apify.

Features

  • Dual-platform scraping — Run booking, airbnb, or both from the same input and compare results across two high-intent travel platforms.
  • Unified output schema — Receive standardized listing objects with price, rating, review count, property type, image, location, and scrape timestamp fields.
  • Built for price intelligence — Use it as a hotel scraper, travel scraper, or hotel price comparison backend for monitoring pricing changes.
  • Flexible search controls — Filter by destination, check-in, check-out, adult count, currency hint, and per-platform result limits.
  • Production-ready on Apify — Supports Apify Proxy input, runs headless in the cloud, and is optimized for repeatable Actor runs.
  • Automation friendly — Send output to datasets, webhooks, or downstream pipelines for research, lead generation, or travel data enrichment.

Output Fields

Each item in the default dataset represents one accommodation record. The Actor returns a unified structure so your downstream code does not need separate parsing logic for Booking.com and Airbnb.

FieldTypeDescription
platformstringSource platform: booking or airbnb.
namestringListing title or property name shown in search results.
urlstringCanonical listing URL when available.
pricenumber | nullParsed numeric price extracted from visible listing text.
totalPricenumber | nullParsed total price when present in the page text.
currencystringCurrency symbol or code inferred from the listing text or input hint.
ratingnumber | nullNumeric rating parsed from visible score text.
ratingTextstringRaw rating text as displayed on the website.
reviewCountintegerParsed review count when available.
propertyTypestringProperty classification such as hotel, home, apartment, or private room.
locationstringBest-effort location snippet from the listing card.
distanceFromCenterstringBooking.com distance snippet when available.
imageUrlstringMain card image URL.
roomTypestringRoom or stay subtype if exposed in the search result card.
amenitiesarrayAmenities list when available in the raw card extraction.
scrapedAtstringISO 8601 UTC timestamp for the scrape event.

Input Parameters

FieldTypeRequiredDefaultDescription
destinationstringYesCity, area, or destination query such as Singapore, Tokyo, or Paris.
checkinstringNoemptyCheck-in date in YYYY-MM-DD format.
checkoutstringNoemptyCheck-out date in YYYY-MM-DD format.
adultsintegerNo2Number of adult guests. Accepted range is 1–10.
platformsstringNobothboth, booking, or airbnb.
maxResultsintegerNo50Maximum number of results per platform. The current hard limit is 500.
currencystringNoUSDPreferred currency code such as USD, EUR, JPY, or SGD.
proxyobjectNonullStandard Apify proxy configuration, including residential proxies when needed.

For schema-level validation, see .actor/input_schema.json.

Usage Examples

1. Compare Booking.com and Airbnb prices in one run

{
"destination": "Singapore",
"checkin": "2026-05-01",
"checkout": "2026-05-03",
"adults": 2,
"platforms": "both",
"maxResults": 20,
"currency": "USD"
}

2. Booking.com only with local currency

{
"destination": "Tokyo",
"checkin": "2026-06-15",
"checkout": "2026-06-18",
"adults": 2,
"platforms": "booking",
"maxResults": 25,
"currency": "JPY"
}

3. Airbnb only for family stays

{
"destination": "Paris",
"checkin": "2026-07-01",
"checkout": "2026-07-07",
"adults": 4,
"platforms": "airbnb",
"maxResults": 30
}

4. Dual-platform run with Apify residential proxy

{
"destination": "New York",
"checkin": "2026-08-10",
"checkout": "2026-08-14",
"adults": 2,
"platforms": "both",
"maxResults": 15,
"currency": "USD",
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Use Cases

  • Price comparison — Compare hotel and rental pricing across Booking.com and Airbnb for the same destination and date window. This is ideal for travel agencies, and founders building a hotel price comparison product.
  • Market research — Track accommodation pricing, rating, and listing mix across cities to understand supply, affordability, and positioning. Analysts can use this accommodation scraper for destination studies, hospitality benchmarking, or tourism research.
  • Travel planning tools — Feed normalized hotel and rental results into itinerary builders, chatbots, recommendation engines, or AI travel assistants that need a travel scraper data source.
  • Rate monitoring — Schedule repeat runs to detect price drops, weekend spikes, or seasonal changes. This is useful for alerting systems, dynamic pricing experiments, and a hotel scraper workflow.
  • Academic research — Collect listing data for tourism economics, urban planning, or mobility studies. A single vacation rental scraper plus hotel feed simplifies dataset preparation.

Cost Estimate

This Actor is intended to support a pay-per-event pricing model with a small run start charge plus a per-result charge. Based on the current product brief, the live commercial target is approximately $2 per 1,000 results, with a small fixed charge each time the Actor starts.

In practical terms:

  • Small validation run: maxResults: 10 on one platform keeps cost low and is suitable for selector checks.
  • Standard comparison run: maxResults: 50 on both platforms gives a useful sample for a Booking.com scraper plus Airbnb scraper comparison workflow.
  • Larger monitoring run: use scheduled runs with moderate result counts and proxy settings only when needed.

Browser-based actors consume more compute than lightweight HTTP scrapers, so the best operating pattern is to keep your inputs targeted, reuse destination/date windows intelligently, and avoid collecting more data than your downstream workflow actually needs.

Performance

Performance depends on destination complexity, date filters, proxy usage, and how aggressively the source platforms load cards in the browser. As a general rule:

  • Single-platform runs are faster than dual-platform runs.
  • Booking.com often returns structured card data quickly for mainstream destinations.
  • Airbnb can vary more by geography and may need extra page load time for results to stabilize.
  • Residential proxies can improve reliability in some regions, but they may add latency.

For most validation runs, keeping maxResults between 5 and 20 per platform is a good balance between speed and confidence. For production monitoring, increase counts gradually and observe success rate and cost per usable result.

Local Development

  1. Use Python 3.13 if possible to match the Actor base image.
  2. Install dependencies:
python3.13 -m venv .venv
.venv/bin/pip install -r requirements.txt
python -m patchright install --with-deps chromium
  1. Run locally with Apify CLI:
$apify run

Store local input in storage/key_value_stores/default/INPUT.json or provide it through the CLI prompt. When running locally, do not force APIFY_IS_AT_HOME=1 unless you are intentionally emulating the Apify runtime with the right environment context.

Notes

  • DOM dependency — Booking.com and Airbnb occasionally change listing card structure, so selectors may need maintenance.
  • Blocking risk — For higher-volume runs, use reasonable limits and enable Apify Proxy when necessary.
  • Currency parsingcurrency is best-effort from visible text; Booking.com also uses the explicit input hint when available.
  • Cloud browser mode — On Apify, the Actor runs headless with bundled Chromium. Local development can use Chrome when installed.

This Actor automates search result pages only. You are responsible for complying with Booking.com, Airbnb, and Apify terms of service, applicable privacy and data protection laws, and robots or acceptable-use rules that apply in your jurisdiction or workflow.

Do not use this tool for spam, credential stuffing, abusive automation, or other prohibited activities. The software is provided on an as-is basis without warranty, and you are responsible for validating fitness for your use case before production deployment.

Pushing to Apify

Authenticate with the Apify CLI first, then push the Actor:

$apify push

Use an APIFY_TOKEN environment variable or CLI login flow. Do not commit credentials, API tokens, or private configuration values into the repository.