Multi Booking Scraper API: Airbnb, Booking.com, Vrbo & More avatar

Multi Booking Scraper API: Airbnb, Booking.com, Vrbo & More

Pricing

$5.00 / 1,000 results

Go to Apify Store
Multi Booking Scraper API: Airbnb, Booking.com, Vrbo & More

Multi Booking Scraper API: Airbnb, Booking.com, Vrbo & More

$5/1K. Multi booking scraper API: search Airbnb, Booking.com, Vrbo, Expedia, Hotels.com, Agoda, Google Hotels, Hostelworld & TripAdvisor for one or many cities in one run. Prices for your dates, photos, ratings, amenities, links. Hotel price tracker, STR data, MCP-ready. No login.

Pricing

$5.00 / 1,000 results

Rating

5.0

(2)

Developer

Pika Choo

Pika Choo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Multi Booking Scraper API: Airbnb, Booking.com, Vrbo, Expedia, Agoda, Google Hotels, TripAdvisor & Hostelworld

The multi booking scraper: one API for hotel and vacation rental data from 9 sites. $5 per 1,000 results, no login, no API key, no partner account. Give it one place or a list of places, dates and guests. It searches Airbnb, Booking.com, Vrbo, Expedia, Hotels.com, Agoda, Google Hotels, Hostelworld and TripAdvisor in parallel and returns one clean table: price per night and total for your dates (with taxes and discounts), up to 30 photos, a 0–10 rating you can compare across sites, sub-scores, reviews, amenities, free-cancellation dates, map coordinates and a direct booking link. Google Hotels rows add every booking site's price for the same hotel. Tick one box to add tours, attractions and experiences.

Use it as an Airbnb API, a Booking.com API, a Vrbo listings feed, a hotel price tracker, short-term rental (STR) data for market research, or as an MCP tool for AI agents.

The Airbnb, Booking.com, Vrbo and Expedia API you can actually use

SiteOfficial APIThis Actor
AirbnbNo public API (partner programme only)✅ Listings, nightly + total price, fees, photos, rating, badges, experiences
Booking.comDemand/Affiliate API for approved partners✅ Hotels & apartments, price with taxes, discounts, cancellation date, room, sub-score
VrboNo public API✅ Vacation rental listings, price for your dates, bedrooms, photos, rating
Expedia / Hotels.comRapid API for vetted partners✅ Hotels, nightly + all-in total, badges, amenities, rating
AgodaAffiliate partners only✅ Hotels with sub-scores, review quote, landmarks, taxes, pay-later
Google HotelsNo public prices API✅ Hotels + price on every booking site
TripAdvisorContent API capped at 5 reviews / 5 photos per location✅ Hotels + tours, attractions and experiences with prices
HostelworldNo public API✅ Hostels with dorm & private prices, 7 sub-scores

No partner application, no approval wait, no rate-limited keys. Sign in to Apify, run it, get JSON, CSV or Excel, or call it from your code or agent.

Why this travel scraper

  • 🌐 9 sites, one run, one schema. No more five different Actors with five output formats. Every site runs in parallel and lands in the same columns.
  • 💵 Real prices for your dates. Price per night and total for the check-in and nights you choose, plus the crossed-out price when there's a discount.
  • ⚖️ Price comparison built in. Google Hotels rows carry otherSitePrices: the cheapest nightly rate on Booking.com, Expedia, Hotels.com, the hotel's own site and more, with links.
  • ⭐ Ratings you can compare. Airbnb rates out of 5, Booking out of 10, Hostelworld out of 100. rating puts them all on 0–10; ratingOriginal keeps the site's own number.
  • 🎟️ Things to do included. Tours, attractions and experiences with rating, reviews, price from and photos.
  • 🛡️ Built not to come back empty. Every site has a fallback chain: fresh residential IPs on every retry, then a real browser with a fresh device fingerprint, then a heavy-duty unblocking route. In our 23-run stress test (20 cities + 3 large searches at once) every selected site returned results in every run.
  • 🧱 One slow site never sinks the run. Sites run in parallel and independently; if a site can't be reached in time you still get everything else, plus a free hint row naming it.
  • 💱 One currency per run. Pick a currency and every price in the table is in it. Sites that only quote USD are converted at the European Central Bank daily rate, and the row keeps originalCurrency and exchangeRate so nothing is hidden.
  • ⏱️ Fast. 9 sites × 20 results + things to do in under a minute. Short run timeouts end with partial results, not a failed run.
  • 💰 One flat price. $5 per 1,000 results. Hint rows are free. No start fee, no add-on events.

How it compares

Store figures as of September 30, 2026. This Actor is new; what it offers is every major stays site in one run and one format.

ActorSitesPrice (Free plan)PhotosPrice for your datesThings to do
This Actor9$5 / 1,000Gallery (up to 30)Per night + total✅
Top Booking.com scraper1$5 / 1,000 + $5 / 1,000 for room details1 photoTotal❌
Top Airbnb scraper1$4 / 1,000 ($6 enriched)GalleryPer night + total❌
Top Google Hotels scraper1$4.99 / 1,000GalleryPer night❌
Best multi-site travel Actor found3$50 / 1,000 tool callsvariesvariespartial

Search many places in one run

Like our Multi Job Board Scraper's multiple search terms, locations takes up to 10 places. Every site runs for every place in parallel, results are merged and de-duplicated (a property found for two overlapping places is returned and charged once), and each row's searchLocation tells you which place it came from.

{
"locations": ["Paris, France", "Rome, Italy", "Barcelona, Spain"],
"checkIn": "45 days",
"nights": 3,
"adults": 2,
"sites": ["airbnb", "booking", "vrbo", "google_hotels"],
"maxResultsPerSite": 50,
"currency": "EUR"
}

Cost scales with places: 3 places × 4 sites × 50 results ≈ 600 results ≈ $3.00. For 5+ places, raise the run timeout.

Use cases

🏷️ Hotel price tracker

Schedule the Actor daily for the same place and dates. Track pricePerNight, priceTotalWithTaxes and discountPercent per property over time, and read otherSitePrices to see which booking site is cheapest for each hotel. Use a webhook or the Apify integrations (Google Sheets, Slack, Make, Zapier) to alert on drops.

📊 Short-term rental (STR) data and an AirDNA alternative

Pull Airbnb and Vrbo listings for a market with nightly rate, total price, bedrooms, beds, bathrooms, rating, review count, Superhost / Guest favorite badges and coordinates. Run it for several date windows to model seasonality and compare supply per neighbourhood, at $5 per 1,000 listings instead of a monthly subscription.

⚖️ Rate parity and rate shopping

sites: ["google_hotels"] returns each hotel's price on Booking.com, Expedia, Hotels.com, the hotel's own site and more (otherSitePrices, cheapestSite). Revenue managers use it to spot parity breaks and undercutting OTAs.

🧳 Travel apps, agencies and AI travel assistants

One normalised schema across 9 sites means one parser, one database table and one prompt. Every row has the same rating scale (0–10), currency and field names, whichever site it came from.

🎟️ Things to do

includeThingsToDo: true adds TripAdvisor tours and attractions and Airbnb Experiences with rating, review count, price from, duration and photos.

Use it from AI agents (MCP)

Any MCP client (Claude, ChatGPT, Cursor, OpenAI Agents SDK, LangChain) can call this Actor as a tool through the Apify MCP server:

{
"mcpServers": {
"hotel-rental-scraper": {
"url": "https://mcp.apify.com?tools=openclawai/hotel-rental-scraper",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Then ask your agent things like "Find 2-bedroom apartments in Lisbon for 12–15 March under €200 a night across Airbnb, Booking.com and Vrbo, sorted by rating". The agent fills the input (location, checkIn, nights, adults, sites) and gets structured rows back.

Call it from your code (API)

cURL (runs the Actor and returns the results in one request):

curl -X POST "https://api.apify.com/v2/acts/openclawai~hotel-rental-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"location": "Lisbon, Portugal", "checkIn": "30 days", "nights": 3, "adults": 2, "sites": ["airbnb", "booking", "vrbo"], "maxResultsPerSite": 50}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("openclawai/hotel-rental-scraper").call(run_input={
"location": "Paris, France",
"checkIn": "2026-12-20",
"nights": 4,
"adults": 2,
"currency": "EUR",
"sites": ["booking", "airbnb", "expedia", "google_hotels"],
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["site"], row["name"], row.get("pricePerNight"), row.get("rating"))

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('openclawai/hotel-rental-scraper').call({
location: 'Tokyo, Japan', checkIn: '30 days', nights: 3, adults: 2, currency: 'JPY',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((r) => r.type === 'stay').length, 'stays');

Input

{
"location": "Lisbon, Portugal",
"checkIn": "30 days",
"nights": 2,
"adults": 2,
"sites": ["airbnb", "booking", "google_hotels", "expedia", "hotels_com", "vrbo", "agoda", "hostelworld", "tripadvisor"],
"maxResultsPerSite": 50,
"includeThingsToDo": false,
"currency": "USD"
}
FieldWhat it does
locationCity, region or area. "City, Country" matches best on every site.
locationsOptional list of up to 10 places searched in the same run (merged, de-duplicated, each row tagged with searchLocation).
checkInA date (2026-12-20) or a relative date (30 days, 2 weeks).
nightsLength of stay, 1–30.
adultsGuests, 1–16.
minPricePerNight / maxPricePerNightOptional nightly price range in your currency. Sites with their own price filter apply it at the source, so you still get full results; every row is double-checked and out-of-range rows are never charged.
sitesAny of the 9 sites. All selected sites run at the same time.
maxResultsPerSiteCap per site, 1–1,000.
includeThingsToDoAdds Tripadvisor tours/attractions and Airbnb experiences.
currencyCurrency for every price in the run. Sites that quote another currency are converted at the ECB daily rate (originalCurrency and exchangeRate are kept on those rows).

Output

One row per property or experience, same columns for every site. Up to 88 fields, including:

GroupFields
PricepricePerNight, priceTotal, priceTotalWithTaxes (all-in, compare across sites), taxesAndFees, priceIncludesTaxes, priceTotalBeforeDiscount, discountPercent, discounts, priceBreakdown (Airbnb: nights × rate, cleaning, service, taxes), priceNote ("recently lowered the price"), dormPricePerNight / privateRoomPricePerNight (hostels)
Price comparisonotherSitePrices (every booking site's price for the hotel), cheapestSite, cheapestSitePrice
Booking termsfreeCancellation, freeCancellationUntil, payLater, noPrepayment, mealPlan, breakfastIncluded, availability ("Only 1 left"), soldOut
Ratingsrating (0–10 on every site), ratingOriginal, ratingText ("Exceptional"), reviewsCount, ratingBreakdown (cleanliness, location, staff, value, comfort, facilities…), ratingHistogram, recommendPercent, reviewHighlight (a real guest quote)
The placepropertyType, unitType, roomName, size / roomSizeSqm, bedrooms, beds, bedTypes, bathrooms, kitchens, stars, amenities, description, badges (Guest favorite, Superhost, VIP Access, Member Price, Sustainable…), highlights, popularity ("Booked 25 times today")
Locationaddress, area, city, country, latitude, longitude, distanceFromCenter, nearestTransport, beachDistance, nearby (landmarks & transit with distance), goodFor
Media & linksphotos (up to 30 full-size), url (opens with your dates and guests)
Searchsite, type, id, checkIn, checkOut, nights, adults, searchLocation, scrapedAt

Stay row example (Booking.com):

{
"site": "booking",
"type": "stay",
"id": "5180028",
"name": "Tandem Palacio Alfama Apartments",
"url": "https://www.booking.com/hotel/pt/tandem-palacio-alfama.html?checkin=2026-10-30&checkout=2026-11-01&group_adults=2&no_rooms=1",
"propertyType": "Apartment",
"unitType": "Entire apartment",
"roomName": "One-Bedroom Apartment",
"size": "62 m²",
"address": "Rua dos Remédios, 139",
"area": "Santa Maria Maior, Lisbon",
"distanceFromCenter": "1.1 km from downtown",
"nearestTransport": "Santa Apolónia station is within 400 meters",
"latitude": 38.712514,
"longitude": -9.126405,
"rating": 8.6,
"ratingOriginal": "8.6/10",
"ratingText": "Excellent",
"ratingBreakdown": {"location": 9.3},
"reviewsCount": 1167,
"stars": 4,
"pricePerNight": 173.62,
"priceTotal": 347.23,
"taxesAndFees": 18.14,
"priceIncludesTaxes": false,
"priceTotalWithTaxes": 365.37,
"priceTotalBeforeDiscount": 588.52,
"discountPercent": 41,
"discounts": ["Limited-time Deal"],
"currency": "USD",
"freeCancellation": false,
"bedrooms": 1,
"bathrooms": 1,
"beds": 2,
"badges": ["Limited-time Deal", "Sustainable property"],
"photos": ["https://cf.bstatic.com/xdata/images/hotel/max1280x900/203108559.webp?..."],
"checkIn": "2026-10-30",
"checkOut": "2026-11-01",
"nights": 2,
"adults": 2
}

Agoda rows carry the most detail per hotel:

"ratingBreakdown": {"cleanliness": 8.7, "facilities": 8.2, "location": 9.3, "roomComfort": 7.9, "staffPerformance": 8.8, "valueForMoney": 8.3},
"recommendPercent": 84,
"reviewHighlight": {"text": "Has a lovely rooftop bar with amazing views of Lisbon.", "rating": 10, "traveller": "Family with young children", "country": "United Kingdom"},
"freeCancellationUntil": "2026-10-28",
"payLater": true,
"roomSizeSqm": 42,
"popularity": "Booked 4 times today",
"nearby": [{"name": "Martim Moniz Metro Station", "type": "transportation", "distanceMeters": 111}, {"name": "Castelo de S. Jorge", "type": "topLandmark", "distanceMeters": 481}]

Google Hotels rows add otherSitePrices:

"otherSitePrices": [
{"site": "Hotels.com", "pricePerNight": 258, "currency": "USD", "room": "Standard Room", "url": "https://www.google.com/aclk?..."},
{"site": "Expedia.com", "pricePerNight": 258, "currency": "USD", "room": "Standard Room", "url": "https://www.google.com/aclk?..."}
]

Things-to-do rows (type: "experience"):

{
"site": "tripadvisor",
"type": "experience",
"id": "19008560",
"name": "Sintra to Cascais: 2 Palaces, 7 Sites, Small Group 10 Hour Tour",
"category": "Tour / activity",
"rating": 9.8,
"ratingOriginal": "4.9/5",
"reviewsCount": 3491,
"priceFrom": 87,
"priceBeforeDiscount": 116,
"currency": "USD",
"photos": ["https://dynamic-media-cdn.tripadvisor.com/media/photo-o/33/de/fa/0d/caption.jpg?w=1200&h=-1&s=1"]
}

Field coverage depends on what each site shows in its search results. Agoda, Booking.com, Airbnb and Vrbo/Expedia fill the most columns; Tripadvisor hotel rows carry rating, reviews, address, phone and price range (Tripadvisor shows no nightly price without a date session); Airbnb experiences carry rating, reviews, duration and coordinates. Photos: Airbnb and Vrbo/Expedia ~20–30 per listing, Agoda and Google ~10, Hostelworld 4, Booking.com 1–2.

Pricing

$5 per 1,000 results (result event, $0.005 each), whichever site they come from. Hint rows are free. You never pay for a site that returned nothing. Set a maximum cost per run in the run options and the Actor stops at that budget.

Examples: 9 sites × 20 results = 180 results ≈ $0.90. 3 sites × 200 results = 600 results ≈ $3.00.

Tips

  • Use "City, Country" for the most exact match everywhere ("Paris, France", not "Paris").
  • Prices only exist for dates, so every search uses dates. The default is 30 days from today for 2 nights.
  • Want more than a site shows per search? Run a few neighbouring areas ("Lisbon Alfama", "Lisbon Belém") and combine.
  • Tripadvisor is the slowest site (up to a minute). Leave it out for the fastest runs.
  • A free type: "hint" row tells you when a site had no match for your location (try "City, Country") or couldn't finish in time.
  • Each run also saves a SUMMARY record in its key-value store: results, seconds and price/photo/rating coverage per site. Handy for monitoring scheduled runs.

FAQ

Is there an official Airbnb API? Not for the public. Airbnb's API is limited to approved software partners. This Actor returns Airbnb listings, nightly and total prices (with fees and taxes), photos, ratings and badges for any place and dates, without a partner account.

Is there a Booking.com API for hotel prices? Booking.com's Demand/Affiliate API is only for approved partners. This Actor returns Booking.com hotels and apartments with the price for your dates, taxes and fees, discounts, free-cancellation date, room name and rating, with no key.

How do I get Vrbo listings data? Vrbo has no public API. Add "vrbo" to sites and you get Vrbo vacation rentals with price for your dates, bedrooms, beds, photos, rating and link.

Is there an Expedia or Hotels.com API? Expedia's Rapid API is for vetted partners. This Actor returns Expedia and Hotels.com hotels with nightly and all-in total price, badges, amenities and rating.

What's a good AirDNA alternative for short-term rental data? Run this Actor on Airbnb and Vrbo for your market and dates. You get raw listing-level data (rates, bedrooms, ratings, reviews, coordinates) at $5 per 1,000 listings, which you can aggregate yourself, with no subscription.

Is there a TripAdvisor API for hotels and things to do? TripAdvisor's Content API returns at most 5 reviews and 5 photos per location. This Actor returns TripAdvisor hotels plus tours and attractions with rating, review count, price from and photos.

Can I build a hotel price tracker with it? Yes. Schedule a daily run for your place and dates and compare pricePerNight, priceTotalWithTaxes and otherSitePrices between runs. Each run also writes a SUMMARY record for monitoring.

Can AI agents use it? Yes, through the Apify MCP server (see "Use it from AI agents" above) or any agent framework that can call an HTTP API.

Do I need an account, cookies or API keys for the travel sites? No. Everything comes from the sites' public search results, as any visitor sees them. You only need an Apify account.

Which currency? Choose one in currency and every price comes back in it. Expedia, Hotels.com, Vrbo and TripAdvisor tours only quote USD, so those rows are converted at the European Central Bank daily rate and carry originalCurrency and exchangeRate.

Can I filter by price? Yes. Set minPricePerNight and/or maxPricePerNight in your chosen currency. Booking.com, Airbnb and Google Hotels filter at the source; every other site is checked row by row, and nothing outside the range is returned or charged. Tripadvisor hotel lists show no nightly price, so they're skipped when a price filter is set.

Can I search several cities at once? Yes. Put up to 10 places in locations. Every site runs for every place, duplicates across places are removed (and not charged), and searchLocation tags each row.

How many results per site? Up to maxResultsPerSite. Typical ceilings for one search: Booking.com ~1,000, Agoda and Expedia/Hotels.com/Vrbo several hundred, Airbnb ~280, Google Hotels ~150, TripAdvisor hotels ~300, things to do ~150.

Is it legal? It collects publicly available listing information that anyone can see without logging in, and no personal data about guests. You're responsible for how you use the data; check the terms and the laws that apply to you.