Airbnb Scraper — Listings & Reviews avatar

Airbnb Scraper — Listings & Reviews

Pricing

from $0.79 / 1,000 results

Go to Apify Store
Airbnb Scraper — Listings & Reviews

Airbnb Scraper — Listings & Reviews

Scrape Airbnb listings worldwide. Prices, ratings, amenities, host info, availability, reviews. Price-range splitting bypasses the 240-listing cap. No API key required.

Pricing

from $0.79 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Airbnb Scraper

airbnb-scraper

Scrape Airbnb listings worldwide — prices, ratings, GPS coordinates, amenities, host info, availability calendars, and more. No browser, no API key, no login required.


Why this scraper?

⚡ Ultra-fast — results in seconds

HTTP-only, no browser to launch. First results in ~8 seconds. 1,000 listings in under 2 minutes at concurrency: 3.

💰 Lowest price on the market — $0.79/1,000

Roughly 60–80% cheaper than alternatives. Runs without proxy by default, keeping infrastructure costs near zero.

🌍 Any location worldwide

City names, neighbourhoods, regions, or direct Airbnb search URLs. Amsterdam, New York, Tokyo, Bali — works everywhere Airbnb does.

♾️ No listing cap

Our proprietary market-discovery algorithm exposes every listing in a city — not just the first page. Thousands of results per run, automatically.

📅 Availability calendar — up to 12 months forward

Per-day availability, min/max night stays, and nightly pricing for up to 12 months. Perfect for revenue management, arbitrage analysis, or dynamic pricing models.

⭐ Rich data — 60+ fields per listing

GPS coordinates, amenity flags, host profiles, per-category star ratings, house rules, cancellation policy, min/max nights, check-in times, safety items, and more.

📡 Monitoring / incremental mode

Track new listings automatically across runs — previously seen listings are de-duplicated against a persistent store so you only pay for genuinely new results.


Input parameters

FieldTypeDefaultDescription
locationQueriesstring[][]Location names — city, neighbourhood, region, country
startUrlsobject[][]Pre-built Airbnb search URLs
listingUrlsobject[][]Direct /rooms/{id} URLs for specific listings
checkInstringCheck-in date YYYY-MM-DD
checkOutstringCheck-out date YYYY-MM-DD
adultsinteger2Number of guests
currencystringUSDISO 4217 currency code (see note on KRW/IDR below)
localestringen-USBCP 47 locale
priceMinintegerMinimum nightly price
priceMaxintegerMaximum nightly price
minBedroomsintegerMinimum bedrooms
minBedsintegerMinimum beds
minBathroomsnumberMinimum bathrooms
skipDetailPagesbooleanfalseSkip detail enrichment (faster, fewer amenity fields)
includeReviewsbooleanfalseFetch guest reviews
maxReviewsPerListinginteger50Max reviews per listing
calendarMonthsinteger0Months of availability calendar (0–12)
concurrencyinteger2Parallel price-bucket workers (1–5, see performance section)
monitoringModebooleanfalseIncremental / monitoring mode
maxResultsinteger0Cap total results (0 = unlimited)
useProxybooleanfalseEnable residential proxy for geo-specific pricing

Output schema

Always present (search results)

FieldTypeDescription
idstringAirbnb listing ID
urlstringListing URL (airbnb.com/rooms/{id})
titlestringListing name
subtitlestringShort subtitle
property_typestringApartment, Boat, Villa, etc.
room_typestringEntire place / Private room / Shared room / Hotel room
price_per_nightnumberNightly rate in requested currency
pricing_currencystringISO currency code
overall_ratingnumberStar rating 0–5
review_countintegerTotal reviews
bedroomsnumberNumber of bedrooms
bedsnumberNumber of beds
bathroomsnumberNumber of bathrooms
host_is_superhostbooleanSuperhost status
is_guest_favoritebooleanGuest Favorite badge
latitudenumberGPS latitude
longitudenumberGPS longitude
thumbnailstringPrimary image URL
imagesstring[]All image URLs
badgesstring[]SUPERHOST, GUEST_FAVORITE, etc.
cancellation_policystring"free" when listing has free cancellation
cancellation_policy_namestring"Free cancellation" label
is_new_listingbooleanNewly listed property
scraped_atstringISO 8601 timestamp

With skipDetailPages: false (default)

FieldTypeDescription
amenitiesstring[]Full amenities list (50+ items)
amenity_wifibooleanWiFi available
amenity_kitchenbooleanKitchen available
amenity_parkingbooleanParking available
amenity_poolbooleanPool available
amenity_gymbooleanGym / fitness center
amenity_air_conditioningbooleanAC available
amenity_washerbooleanWasher available
amenity_workspacebooleanDedicated workspace
amenity_hot_tubbooleanHot tub available
descriptionstringFull listing description
house_rulesstring[]Complete house rules list
safety_itemsstring[]Safety & property considerations
pets_allowedbooleanPets allowed
smoking_allowedbooleanSmoking allowed
parties_allowedbooleanEvents / parties allowed
self_check_inbooleanSelf check-in available
check_in_afterstringEarliest check-in time (e.g. "3:00 PM")
check_out_beforestringLatest check-out time (e.g. "11:00 AM")
max_guestsnumberMaximum guest count
host_namestringHost first name
host_response_ratestringHost response rate
host_is_verifiedbooleanHost identity verified
host_years_hostingnumberYears hosting on Airbnb
review_cleanlinessnumberCleanliness rating 0–5
review_accuracynumberAccuracy rating 0–5
review_communicationnumberCommunication rating 0–5
review_location_scorenumberLocation rating 0–5
review_checkin_scorenumberCheck-in rating 0–5
review_value_scorenumberValue rating 0–5
reviewsobject[]Guest reviews (if includeReviews: true)

With calendarMonths > 0

The calendar_data field contains one entry per day for the requested range:

FieldTypeDescription
calendar_dataobject[]Per-day availability array
min_nightsnumberMinimum stay requirement (from first available day)
max_nightsnumberMaximum stay requirement

Each calendar_data entry:

{
"date": "2026-08-01",
"available": true,
"bookable": true,
"available_for_checkin": true,
"available_for_checkout": false,
"min_nights": 3,
"max_nights": 30,
"price": "€205"
}

Examples

{
"locationQueries": ["Amsterdam"],
"maxResults": 200,
"currency": "EUR",
"concurrency": 3
}

2. Filtered search with dates

{
"locationQueries": ["Barcelona, Spain"],
"checkIn": "2026-07-15",
"checkOut": "2026-07-22",
"adults": 2,
"priceMin": 80,
"priceMax": 300,
"minBedrooms": 2,
"currency": "EUR"
}

3. Specific listings with calendar

{
"listingUrls": [
{"url": "https://www.airbnb.com/rooms/580870087750124077"},
{"url": "https://www.airbnb.com/rooms/802052"}
],
"calendarMonths": 3,
"includeReviews": true
}

4. Daily monitoring feed

{
"locationQueries": ["Miami Beach, FL"],
"monitoringMode": true,
"skipDetailPages": true,
"currency": "USD"
}

💰 Pricing

$0.79 per 1,000 results — pay only for successfully scraped listings.

ResultsCost
100~$0.08
1,000~$0.79
10,000~$7.90
100,000~$79.00

Flat-rate alternatives charge $29–$99/month. Other per-result scrapers charge $2.00–$4.50 per 1,000 results — 2.5× to 5.7× more expensive.


🚀 Performance & concurrency

Set concurrency to scrape multiple price buckets simultaneously. Default is 2.

ConcurrencySpeedBest for
1~900/minMaximum reliability, very large runs
2 (default)~1,200/minBalanced — good for most use cases
3 (recommended)~1,500/minFast city scrapes, 1.6× speedup
5~1,500/minSame as 3 — no extra benefit above 3

Higher concurrency uses the same number of requests and costs the same — it just finishes faster by running price buckets in parallel.

ScenarioTimeListings
Quick test (maxResults: 5)~8s5
20 listings~15s20
1,000 listings (concurrency: 3)~40s1,000
Full city, limited range~5–10 min2,000+

skipDetailPages: true for fastest runs. Detail enrichment adds ~2s per listing for amenities, host info, house rules, and calendar data.


Known limitations

  • Prices shown are base nightly rates without check-in/check-out dates. Set checkIn / checkOut for exact stay pricing.
  • Cleaning fees, service fees, and taxes are not available in search results (only shown in Airbnb's booking checkout flow).
  • Calendar prices (calendar_data[].price) are null without date parameters — availability data is always present.
  • Very large cities at unlimited price ranges may take 30+ minutes to fully exhaust a market.
  • KRW (Korean Won) and IDR (Indonesian Rupiah): Airbnb geo-restricts these currencies from datacenter IPs. The scraper automatically falls back to USD for Seoul and Bali searches — a currency_fallback_note field is added to each result. Use useProxy: true for native KRW/IDR pricing.
  • Enable useProxy: true for geo-specific results or if a run returns 0 items.

Technical details

  • Pure HTTP scraping — no headless browser, no Playwright, no Puppeteer
  • No proxy required by default; optional residential proxy for geo-specific pricing
  • Proprietary full-market discovery algorithm — bypasses standard listing caps
  • Progressive saving — listings written to dataset as discovered (safe for long runs)
  • Circuit breaker and health signals on every run

Additional services

Need a custom data feed, scheduled runs, or data warehouse integration? Contact unfenced-group.


Part of the Unfenced Group scraper portfolio. Built by unfenced-group · Issues? Open a ticket or send a message.