Travel & Hotel Intelligence
Pricing
from $10.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
platformfield.
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
| Platform | Key inputs | Notes |
|---|---|---|
| airbnb | searchUrl or startUrls, numberOfLinks, checkInDate, numberOfDays, stayNights, concurrency | Walks search pagination with Playwright, then fans out concurrent PDP GraphQL calls. |
| booking-search | startUrls (search URLs), startDate, days, currency | Warms cookies in a real browser, replays the search URL with each date. Proxy recommended. |
| booking-calendar | startUrls (hotel detail URLs), targetMonth | Reads the per-hotel price calendar month by month. |
location, pages, hotelClass | Selenium-driven Google Travel scraper with star filters. | |
| trivago | startUrl, days, maxRetries | SeleniumBase 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_atlisting_id name property_typelocation city / country latitude / longitudecheck_in check_out nightscurrency price_per_night price_per_night_displayoriginal_price_per_night discount_percent total_pricecleaning_fee / service_fee / taxesrating review_count star_ratingrating_cleanliness / rating_value / … (Airbnb sub-ratings)guest_capacity bedrooms / beds / bathrooms pets_allowedimage_url amenities[] hostraw {…} # 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.).