Travel & Hotel Intelligence avatar

Travel & Hotel Intelligence

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Travel & Hotel Intelligence

Travel & Hotel Intelligence

A unified Apify actor that scrapes hotel and short-let pricing from Airbnb, Booking.com, Google Hotels, and Trivago, returning all records in a single normalized schema. This tool is designed for rate shopping, price-comparison dashboards, and revenue-management feeds.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Jamshaid Arif

Jamshaid Arif

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

A unified Apify actor that scrapes hotel and short-let pricing across Airbnb, Booking.com, Google Hotels, and Trivago, returning every record in a single normalised schema. Designed for rate-shopping, price-comparison dashboards, and revenue-management feeds.

What it replaces

Five independent scrapers — one per platform — each with its own input shape, its own output columns, and its own retry quirks. This actor consolidates them behind:

  • a single normalised record (HotelRecord) so downstream tools don't need per-platform branches,
  • a shared utility layer for price parsing, date generation, deep-key lookups, retries, and stealth browser setup,
  • a router that picks the right scraper from URL host or an explicit platform field.

Quick start

Single job

{
"platform": "airbnb",
"searchUrl": "https://www.airbnb.com/s/Cardiff--United-Kingdom/homes",
"numberOfLinks": 25,
"checkInDate": "2026-07-01",
"numberOfDays": 14,
"stayNights": 1,
"currency": "GBP",
"concurrency": 8
}

Multiple platforms in one run

{
"jobs": [
{
"platform": "google",
"location": "Paris",
"pages": 3,
"hotelClass": "class_4"
},
{
"platform": "trivago",
"startUrl": "https://www.trivago.co.uk/en-GB/srl/hotels-cardiff-united-kingdom?search=200-21013;dr-20260410-20260411;drs-40;pa-2;rc-1-2",
"days": 7
},
{
"platform": "booking-calendar",
"startUrls": [
"https://www.booking.com/hotel/gb/marriott-cardiff.html"
],
"targetMonth": "2026-12"
},
{
"platform": "booking-search",
"startUrls": [
"https://www.booking.com/searchresults.html?ss=Cardiff&dest_id=-2598479&dest_type=city"
],
"startDate": "2026-07-01",
"days": 7,
"currency": "GBP"
}
],
"concurrentJobs": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

URL-only (platform auto-detected)

{ "startUrls": ["https://www.airbnb.com/rooms/12345678"] }

Per-platform reference

PlatformKey inputsNotes
airbnbsearchUrl or startUrls, numberOfLinks, checkInDate, numberOfDays, stayNights, concurrencyWalks search pagination with Playwright, then fans out concurrent PDP GraphQL calls.
booking-searchstartUrls (search URLs), startDate, days, currencyWarms cookies in a real browser, replays the search URL with each date. Proxy recommended.
booking-calendarstartUrls (hotel detail URLs), targetMonthReads the per-hotel price calendar month by month.
googlelocation, pages, hotelClassSelenium-driven Google Travel scraper with star filters.
trivagostartUrl, days, maxRetriesSeleniumBase CDP intercepts the live GraphQL call; the API is then replayed for each date and page.

Output schema

Every dataset record matches src/common/schema.py:HotelRecord. The most useful fields:

platform source_url scraped_at
listing_id name property_type
location city / country latitude / longitude
check_in check_out nights
currency price_per_night price_per_night_display
original_price_per_night discount_percent total_price
cleaning_fee / service_fee / taxes
rating review_count star_rating
rating_cleanliness / rating_value / (Airbnb sub-ratings)
guest_capacity bedrooms / beds / bathrooms pets_allowed
image_url amenities[] host
raw {} # platform-specific extras

raw is a free-form bag where each scraper stows fields that don't map cleanly onto the canonical schema (Trivago advertiser IDs, Airbnb meta-description, Booking deal labels, etc.).