Pricing
from $0.79 / 1,000 results
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
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
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
| Field | Type | Default | Description |
|---|---|---|---|
locationQueries | string[] | [] | Location names β city, neighbourhood, region, country |
startUrls | object[] | [] | Pre-built Airbnb search URLs |
listingUrls | object[] | [] | Direct /rooms/{id} URLs for specific listings |
checkIn | string | β | Check-in date YYYY-MM-DD |
checkOut | string | β | Check-out date YYYY-MM-DD |
adults | integer | 2 | Number of guests |
currency | string | USD | ISO 4217 currency code (see note on KRW/IDR below) |
locale | string | en-US | BCP 47 locale |
priceMin | integer | β | Minimum nightly price |
priceMax | integer | β | Maximum nightly price |
minBedrooms | integer | β | Minimum bedrooms |
minBeds | integer | β | Minimum beds |
minBathrooms | number | β | Minimum bathrooms |
skipDetailPages | boolean | false | Skip detail enrichment (faster, fewer amenity fields) |
includeReviews | boolean | false | Fetch guest reviews |
maxReviewsPerListing | integer | 50 | Max reviews per listing |
calendarMonths | integer | 0 | Months of availability calendar (0β12) |
concurrency | integer | 2 | Parallel price-bucket workers (1β5, see performance section) |
monitoringMode | boolean | false | Incremental / monitoring mode |
maxResults | integer | 0 | Cap total results (0 = unlimited) |
useProxy | boolean | false | Enable residential proxy for geo-specific pricing |
Output schema
Always present (search results)
| Field | Type | Description |
|---|---|---|
id | string | Airbnb listing ID |
url | string | Listing URL (airbnb.com/rooms/{id}) |
title | string | Listing name |
subtitle | string | Short subtitle |
property_type | string | Apartment, Boat, Villa, etc. |
room_type | string | Entire place / Private room / Shared room / Hotel room |
price_per_night | number | Nightly rate in requested currency |
pricing_currency | string | ISO currency code |
overall_rating | number | Star rating 0β5 |
review_count | integer | Total reviews |
bedrooms | number | Number of bedrooms |
beds | number | Number of beds |
bathrooms | number | Number of bathrooms |
host_is_superhost | boolean | Superhost status |
is_guest_favorite | boolean | Guest Favorite badge |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
thumbnail | string | Primary image URL |
images | string[] | All image URLs |
badges | string[] | SUPERHOST, GUEST_FAVORITE, etc. |
cancellation_policy | string | "free" when listing has free cancellation |
cancellation_policy_name | string | "Free cancellation" label |
is_new_listing | boolean | Newly listed property |
scraped_at | string | ISO 8601 timestamp |
With skipDetailPages: false (default)
| Field | Type | Description |
|---|---|---|
amenities | string[] | Full amenities list (50+ items) |
amenity_wifi | boolean | WiFi available |
amenity_kitchen | boolean | Kitchen available |
amenity_parking | boolean | Parking available |
amenity_pool | boolean | Pool available |
amenity_gym | boolean | Gym / fitness center |
amenity_air_conditioning | boolean | AC available |
amenity_washer | boolean | Washer available |
amenity_workspace | boolean | Dedicated workspace |
amenity_hot_tub | boolean | Hot tub available |
description | string | Full listing description |
house_rules | string[] | Complete house rules list |
safety_items | string[] | Safety & property considerations |
pets_allowed | boolean | Pets allowed |
smoking_allowed | boolean | Smoking allowed |
parties_allowed | boolean | Events / parties allowed |
self_check_in | boolean | Self check-in available |
check_in_after | string | Earliest check-in time (e.g. "3:00 PM") |
check_out_before | string | Latest check-out time (e.g. "11:00 AM") |
max_guests | number | Maximum guest count |
host_name | string | Host first name |
host_response_rate | string | Host response rate |
host_is_verified | boolean | Host identity verified |
host_years_hosting | number | Years hosting on Airbnb |
review_cleanliness | number | Cleanliness rating 0β5 |
review_accuracy | number | Accuracy rating 0β5 |
review_communication | number | Communication rating 0β5 |
review_location_score | number | Location rating 0β5 |
review_checkin_score | number | Check-in rating 0β5 |
review_value_score | number | Value rating 0β5 |
reviews | object[] | Guest reviews (if includeReviews: true) |
With calendarMonths > 0
The calendar_data field contains one entry per day for the requested range:
| Field | Type | Description |
|---|---|---|
calendar_data | object[] | Per-day availability array |
min_nights | number | Minimum stay requirement (from first available day) |
max_nights | number | Maximum 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
1. Quick city search
{"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.
| Results | Cost |
|---|---|
| 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.
| Concurrency | Speed | Best for |
|---|---|---|
| 1 | ~900/min | Maximum reliability, very large runs |
| 2 (default) | ~1,200/min | Balanced β good for most use cases |
| 3 (recommended) | ~1,500/min | Fast city scrapes, 1.6Γ speedup |
| 5 | ~1,500/min | Same 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.
| Scenario | Time | Listings |
|---|---|---|
Quick test (maxResults: 5) | ~8s | 5 |
| 20 listings | ~15s | 20 |
1,000 listings (concurrency: 3) | ~40s | 1,000 |
| Full city, limited range | ~5β10 min | 2,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/checkOutfor 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_notefield is added to each result. UseuseProxy: truefor native KRW/IDR pricing. - Enable
useProxy: truefor 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.
