Airbnb Scraper 🏠 Real Nightly Prices, Whole-City Coverage
Pricing
from $0.70 / 1,000 listing scrapeds
Airbnb Scraper 🏠 Real Nightly Prices, Whole-City Coverage
Scrape Airbnb listings with accurate nightly prices pulled from the real price breakdown, not rough estimates. Get ratings, reviews, coordinates, host type and each listing's day-by-day availability calendar. It tiles the map so you get every listing in the city, not just the ~270 a search caps at.
Pricing
from $0.70 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Tagada Data
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
13 days ago
Last modified
Categories
Share
Airbnb Scraper 🏠 Price Monitoring & Market Research
Scrape Airbnb search results into clean JSON, with reliable nightly prices and each listing's raw availability calendar. Paste an Airbnb search URL (or just a place name) and get every listing in the area: name, property type, exact nightly price, rating, review count, coordinates, bedrooms/beds/baths, host type, Superhost and Guest-Favorite badges and photos, plus, on demand, the listing's day-by-day availability calendar. No login, no API key, no cookies to paste.
Built for market research, price monitoring, travel planning, competitor tracking and AI agents (REST API + MCP).
What a typical (free-tier) buyer actually pays
Compared against the Apify Store's dominant Airbnb scraper on 2026-08-09, both on the free tier:
| Price per 1,000 listings | Platform usage (compute, proxies) | |
|---|---|---|
| This actor | $1.00 | included, nothing billed on top |
| Leading rival (15.8k lifetime users, 2.5★) | $6.00 | billed to you on top |
$1.00 per 1,000 listings is the whole bill. The compute and the proxies this run needs are on our side, so a job is priced before it starts and a heavy day cannot surprise you. Which proxy the run uses is our problem too: it tries a datacenter exit first and falls back to residential only when Airbnb refuses one, and once a month or so it re-mints the calendar query hash in a browser (the hash minted 2026-07-10 was still valid 30 days later).
Honest limit: the rival's price is a measured snapshot from one day, and their platform usage is theirs to disclose. Check both actors' pricing pages for the current numbers.
Why this Airbnb scraper
The popular Airbnb actors have three chronic complaints: unreliable prices, the ~270-results-per-search ceiling, and no availability data. This one fixes all three:
- 💶 The nightly rate is read straight from Airbnb's own price breakdown ("5 nights x $96.98") instead of a screen-scraped headline, so what you get is discount-free and per-night — always in the currency you asked for.
- 🗺️ When a search maxes out at Airbnb's ~270-result cap, the actor automatically splits the map into quadrants and searches each tile (geo-tiling), which is how it ends up covering whole cities rather than just a slice.
- 📅 Availability calendar included: turn on the option and get an opt-in raw calendar per listing, with every future day marked
available,minNightsandbookable. Other scrapers don't return this at all. - 🔔 Monitor mode lets you schedule the actor and get only NEW listings per run, with an optional Slack digest, and you're charged for new listings only.
- 🤖 You pay per listing actually returned, not per attempt.
What you can do with it
- Track nightly rates for an area (or a competitor set) over time, in any currency: classic price monitoring.
- Pull inventory, prices, ratings and host mix (private vs professional) for any city or neighborhood, which is the basis of solid market research.
- Pull raw calendars to see open vs blocked nights per listing, useful for availability analysis.
- Pair monitor mode with a schedule so you get a live feed of newly listed properties, essentially fresh-supply alerts.
- Feed AI agents structured Airbnb data over REST or MCP.
💡 Want occupancy %, RevPAR, projected revenue and market-level reports computed for you? That's what our companion actor, Airbnb Occupancy & Revenue Estimator, is for: it turns this raw data into AirDNA-style yield analytics.
Quick start
{"searchUrls": ["https://www.airbnb.com/s/Paris/homes"],"maxListings": 500}
Or skip the URL and use place names + dates (dated searches return exact quoted prices):
{"locationQueries": ["Lisbon", "Porto"],"checkIn": "2026-08-01","checkOut": "2026-08-08","adults": 2,"currency": "USD","includeCalendar": true,"calendarMonths": 6}
Every input
Give it either searchUrls or locationQueries (or both). Everything else is optional.
| Input | Type | Default | What it does |
|---|---|---|---|
searchUrls | array | none | Airbnb search-results URLs pasted from your browser, filters and dates included. Any airbnb.* domain works. |
locationQueries | array | none | Plain place names instead of URLs: Lisbon, Nice, France. Combined with the date and guest fields below. |
checkIn / checkOut | string | none | YYYY-MM-DD. A dated search returns Airbnb's exact quoted price for those nights; an undated one returns its default-window price. |
adults | integer | none | Guests in the price quote. Airbnb prices per stay, so this changes the numbers you get back. |
children | integer | none | Children in the quote. |
infants | integer | none | Infants in the quote. |
pets | integer | none | Pets in the quote, which some listings price separately. |
currency | string | USD | ISO-4217 code. Every search is requested in it and every row carries it, so one run is never a mix of denominations. |
includeCalendar | boolean | false | Attach each listing's day-by-day availability. Charged as a separate event, only when a calendar is actually attached. |
calendarMonths | integer | 6 | How many months of forward availability to read per listing, up to 12. |
onlyPrivateHost | boolean | false | Keep only private hosts, dropping professional operators and property managers. |
minPrice / maxPrice | integer | none | Nightly price band, in the currency you asked for. |
minBedrooms | integer | none | Fewest bedrooms. |
minBeds | integer | none | Fewest beds, which is not the same thing on a listing with sofa beds. |
minBathrooms | integer | none | Fewest bathrooms. |
minRating | integer | none | Lowest average rating to keep, out of 5. |
minReviews | integer | none | Fewest reviews to keep, which is the usual way to drop brand-new listings from a market study. |
propertyTypes | array | all | Keep only listings whose type contains one of these words, for example Apartment, House, Loft. |
monitorMode | boolean | false | Return and charge for listings that are new since your last run under the same monitorName. |
monitorName | string | default | The memory bucket for monitor mode. One name per saved search. |
webhookUrl | string | none | Slack incoming webhook (or any endpoint) that receives a digest of the new listings in monitor mode. |
maxListings | integer | 300 | Hard ceiling on unique listings across every search, and therefore on what a run can cost you. |
Output (per listing)
{"source": "Airbnb","id": "51692151","url": "https://www.airbnb.com/rooms/51692151","name": "Charming flat near Montmartre","propertyType": "Apartment","city": "Paris","latitude": 48.884,"longitude": 2.337,"bedrooms": 1,"beds": 2,"bathrooms": 1,"hostType": "Private host","isPrivateHost": true,"rating": 4.95,"reviewCount": 122,"isGuestFavorite": true,"superhost": false,"pricePerNight": 96.98,"priceSource": "breakdown","displayTotalPrice": 484.9,"currency": "EUR","photos": ["https://a0.muscache.com/im/pictures/..."],"calendar": [{ "date": "2026-07-07", "available": true, "minNights": 2, "bookable": true },{ "date": "2026-07-08", "available": false, "minNights": 2, "bookable": false }],"calendarDays": 184,"scrapedAt": "2026-07-06T10:00:00.000Z"}
Pricing
Pay per event, no subscription:
| Event | Price | When |
|---|---|---|
| Listing scraped | $1.00 / 1,000 | Per unique listing returned |
| Calendar fetched | $0.50 / 1,000 | Per listing calendar attached (only with includeCalendar) |
| Actor start | $0.001 | Once per run |
Platform usage (compute, proxies) is included in the price — nothing is billed on top. A 1,000-listing run costs $1.00, or $0.70 on the Gold plan (Bronze, Silver and Gold discounts apply to every event), and with calendars on it is $1.50 / $1.05. You pay per listing actually returned, so a search that matches nothing costs you the $0.001 start and no more.
FAQ
How do I scrape more than 270 listings for a city? Nothing to configure. Airbnb caps any single search at ~270 results; the actor detects the cap and recursively splits the map area into quadrants, de-duplicating listings across tiles.
Are the prices accurate? The nightly rate comes from Airbnb's own price breakdown when available (priceSource: "breakdown"), which is the true per-night figure without the discount/total ambiguity. Add checkIn/checkOut for exact quoted prices for your dates; undated searches show Airbnb's default-window prices.
What's in the calendar, exactly? Airbnb's public per-day availability: available, minNights, bookable for up to 12 months ahead. It does not distinguish bookings from host blocks, so for inferred occupancy, RevPAR and revenue projections, use the STR Yield actor.
Which Airbnb domains work? Any of them: airbnb.com, airbnb.fr, airbnb.co.uk and so on.
What currency are the prices in? Whatever the currency input says — an ISO-4217 code, default USD. Every search is requested in that currency and every row carries it in the currency field, so a single run is never a mix. Set currency to EUR, GBP, … to change it. (Before 2026-08-09 the denomination followed the proxy exit IP instead; USD is what that exit produced, so the default keeps the old behaviour.)
Do I need to log in or provide cookies? No. The actor reads the same public data the search page renders server-side, plus Airbnb's public calendar API.
How do I export the data? Through Apify's dataset export (CSV, Excel or JSON), or the API .../dataset/items?format=csv.
Is it reliable? No hardcoded API hashes: the actor mints Airbnb's rotating calendar-query hash at runtime from a real page, so Airbnb front-end deploys don't break it, and it caches the hash between runs so it only re-mints when Airbnb actually rotates it. Proxying steps down a ladder — datacenter first, residential as the fallback — and the run log names the rung it landed on, so a run's cost is always explainable.
Can I use it with AI agents? Yes, via REST API and MCP.
Something missing?
If you need an extra field, another source, or a different output, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More data and lead generation Actors are on my profile.
Keywords: airbnb scraper, scrape airbnb, airbnb data, airbnb prices, airbnb listings scraper, airbnb availability calendar, airbnb calendar scraper, airbnb market research, airbnb price monitoring, airbnb api alternative, vacation rental data, short term rental data, MCP.
