Airbnb Scraper (Pay-Per-Event) avatar

Airbnb Scraper (Pay-Per-Event)

Pricing

Pay per usage

Go to Apify Store
Airbnb Scraper (Pay-Per-Event)

Airbnb Scraper (Pay-Per-Event)

Scrape Airbnb listings worldwide for prices, ratings, amenities, host info, photos, coordinates, house rules, and per-day calendar availability. Pay-per-event pricing — only pay for the listings you actually scrape.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Arnas

Arnas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does Airbnb Scraper do?

Airbnb Scraper extracts every available Airbnb listing for any location worldwide — complete with prices, descriptions, ratings, amenities, host info, GPS coordinates, house rules, photos, and (optionally) per-day calendar availability. Enter a city name, click Start, and get structured rental data in JSON, CSV, or Excel. No login, no API key, no browser.

Unlike most other Airbnb scrapers, this one uses price-range binary splitting to bypass Airbnb's pagination cap. Most scrapers are limited to ~300 results per query — this one finds every listing in your target area, no matter how big. London returns 12,000+ listings, Tokyo 14,000+, Cape Town 7,400+.

The scraper runs as a serverless Apify Actor, so you also get scheduled runs, integrations (Google Sheets, Make, Zapier, Slack, S3, BigQuery, …), residential proxy rotation, monitoring, and an API to drive it programmatically.

Why use Airbnb Scraper?

  • 100% listing coverage — price-range splitting bypasses Airbnb's pagination cap.
  • 100% price coverage — every listing has nightly price; with detail pages you also get cleaning fee, service fee, and total price.
  • No browser, low cost — HTTP-only scraper running on a lightweight Crawlee crawler.
  • Two modes — fast search-only for market sizing, full mode for rich per-listing data.
  • 30+ currencies and 14 locales — get prices in EUR, GBP, JPY, or whatever currency Airbnb supports.
  • Budget guard — set a Max Charge Per Run and the actor halts the moment the limit is reached.
  • Auto-extending ceiling — if your target market has luxury listings above maxPricePerNight, the actor automatically extends the ceiling so they aren't silently truncated.
  • Drop-in compatible with the popular automation-lab/airbnb-listing actor at identical pricing: $0.005/run + $5/1,000 listings.

How to use Airbnb Scraper

  1. Open the actor in Apify Console and click Try for free.
  2. Type your target location in Location queries (e.g. London, Tokyo, Japan, Miami Beach, FL). Multiple locations are scraped in a single run.
  3. Optionally set check-in/check-out dates, guest counts, price range, or filters.
  4. Toggle Search-only mode for a faster, cheaper market overview.
  5. Click Start and download the results in JSON, CSV, Excel, XML, or HTML.

Input

Minimum input:

{
"locationQueries": ["London"]
}

Targeted search with dates and filters:

{
"locationQueries": ["Barcelona, Spain"],
"checkIn": "2026-06-15",
"checkOut": "2026-06-22",
"adults": 2,
"currency": "EUR",
"locale": "en-US",
"minBedrooms": 2,
"priceMin": 50,
"priceMax": 250
}

Fast market overview (no detail pages):

{
"locationQueries": ["Tokyo, Japan"],
"skipDetailPages": true,
"maxListings": 500
}

With per-day calendar availability for the next 6 months:

{
"locationQueries": ["Setúbal, Portugal"],
"calendarMonths": 6
}
FieldTypeDefaultDescription
locationQueriesstring[]Locations to search. At least one is required (or use startUrls).
startUrlsstring[] / object[]Pre-filtered Airbnb search URLs (paste from your browser).
checkIn / checkOutstring (YYYY-MM-DD)Date range filter.
adults, children, infants, petsinteger1, 0, 0, 0Guest counts.
priceMin, priceMaxintegerHard price range filter.
minBeds, minBedrooms, minBathroomsintegerProperty size filters.
localeenumen-USListing language. 14 options.
currencyenumUSDPrice currency. 20 options.
skipDetailPagesbooleanfalseSearch-only mode (faster, fewer fields per listing — same per-listing price).
calendarMonthsinteger 0–120Per-listing calendar months to fetch.
maxListingsinteger0Stop after N listings (0 = unlimited).
maxPricePerNightinteger10000Splitting ceiling (auto-extends for luxury markets).
maxRequestsPerCrawlinteger0Cap total HTTP requests (0 = unlimited).
proxyConfigurationobjectRESIDENTIALApify proxy. Datacenter IPs are blocked by Airbnb.

Output

One row per unique listing. Full mode example:

{
"id": "788405891732745420",
"title": "Recanto da Lima",
"url": "https://www.airbnb.com/rooms/788405891732745420",
"androidLink": "airbnb://rooms/788405891732745420",
"iosLink": "airbnb://rooms/788405891732745420",
"thumbnail": "https://a0.muscache.com/im/pictures/...",
"coordinates": { "latitude": 38.546, "longitude": -8.84326 },
"roomType": "Private room in home",
"propertyType": "Private room in home",
"personCapacity": 3,
"neighborhood": "Praias do Sado",
"locationSubtitle": "Quiet riverside neighborhood",
"isSuperHost": true,
"rating": {
"guestSatisfaction": 4.98,
"reviewsCount": 129,
"cleanliness": 5,
"accuracy": 5,
"checking": 5,
"communication": 5,
"location": 4.8,
"value": 4.9
},
"price": {
"label": "$45 per night",
"qualifier": "per night",
"price": "$45",
"breakDown": {
"nightlyPrice": "$45",
"totalPrice": "$315 total",
"cleaningFee": "$30",
"serviceFee": "$50"
}
},
"host": {
"name": "Cláudia",
"isSuperHost": true,
"profileImage": "https://...",
"highlights": ["Superhost", "128 reviews"],
"about": ["Lives in Setúbal, Portugal"]
},
"amenities": [
{ "title": "Bathroom", "values": [{ "title": "Bathtub", "available": true }] }
],
"images": [{ "caption": "Living room", "imageUrl": "https://..." }],
"houseRules": {
"general": [{ "title": "Checking in and out", "values": [{ "title": "Check-in after 3:00 PM" }] }]
},
"calendar": [
{ "date": "2026-06-01", "available": true, "minNights": 2, "maxNights": 90, "price": "$45" }
],
"timestamp": "2026-05-22T16:00:00.000Z"
}

calendar is only present when calendarMonths > 0. Search-only mode (skipDetailPages: true) returns the same row with detail-only fields (description, amenities, host, images, houseRules, …) set to null or [], but still includes the full price.breakDown parsed from search cards — most other search-only scrapers omit the breakdown.

You can download the dataset in JSON, CSV, HTML, XML, or Excel from the Output tab in Apify Console.

How much does it cost to scrape Airbnb?

Pay-per-event pricing. You pay only for what you scrape — no monthly subscription. All platform costs (compute, residential proxy, storage) are included in the per-listing price.

Apify planPer runPer listing1,000 listings
Free$0.005$0.005$5.00
Starter$0.005$0.005$5.00
Scale / Business$0.005$0.005$5.00

Real-world cost examples (search-only):

LocationListingsCost (Free)
Setúbal, Portugal~950$4.76
London, UK~12,000$60.00
Tokyo, Japan~14,000$70.00

Set a Max Charge Per Run in Apify Console to protect your budget — the actor halts the moment the limit is reached.

Tips

  • Start small. Set maxListings: 10 for a quick preview before scraping an entire city.
  • Use search-only mode for market sizing — same per-listing price, ~5× faster, includes the fee breakdown.
  • Run multiple cities in one runlocationQueries: ["Paris", "Rome", "Berlin"] pays the start fee once and dedupes overlapping listings by id.
  • Bump maxPricePerNight above 10000 if you're scraping luxury markets and want a higher starting ceiling. The actor will auto-extend it on cap-hit, but starting higher saves an extra round-trip.
  • Use startUrls to pre-apply Airbnb filters that aren't input fields — set up your filtered search on airbnb.com, copy the URL, paste it in.
  • Schedule recurring runs to track pricing trends over time.

FAQ and disclaimers

What's the difference between full mode and search-only mode? Full mode visits each listing detail page and returns ~40 fields (description, amenities, host, photos, rules, etc.). Search-only is ~5× faster and returns roughly 15 fields — but unlike most search-only scrapers, this one still returns the price breakDown from search cards.

Why every listing has a price. Airbnb always includes pricing in search results, so 100% of returned listings have a price regardless of mode.

What happens on a luxury market with listings above maxPricePerNight? The actor detects the cap-hit on the top window and automatically extends maxPricePerNight (doubles, up to $100,000). A warning is logged so you can see it happened.

Is it legal to scrape Airbnb? This scraper only accesses publicly available listing data. It does not bypass any login walls or CAPTCHAs. Web scraping of publicly available data is generally legal in most jurisdictions, but listings can contain personal data (host names, photos) which is protected by GDPR and similar laws. Don't scrape personal data unless you have a legitimate reason. Review Airbnb's Terms of Service and consult a lawyer when in doubt.

Found a bug or have a feature request? Open an issue on the Issues tab — we monitor it and respond within ~1 business day.

  • automation-lab/airbnb-listing — the reference actor we cloned. Same surface, same price.
  • Pair with automation-lab/airbnb-reviews to scrape per-listing reviews.