Airbnb Scraper - Prices, Availability & Full City Coverage
Pricing
Pay per usage
Airbnb Scraper - Prices, Availability & Full City Coverage
Airbnb scraper for prices, ratings, beds, baths, coordinates and real availability. Skips listings that aren't free on your dates, and beats Airbnb's ~270-result limit by searching the map in tiles: 1,596 listings from one town instead of 270. Any city, any country.
Pricing
Pay per usage
Rating
5.0
(1)
Developer
Taha El Bahi
Maintained by CommunityActor stats
2
Bookmarked
8
Total users
4
Monthly active users
2 hours ago
Last modified
Categories
Share
Airbnb Search & Market Scraper: Full Coverage, Fees & True Availability
Scrape Airbnb search results into clean, structured data: nightly and total prices, cleaning & service fees, price-per-guest, ratings and review counts, badges, bedrooms, beds and baths, coordinates, and property type — for any city in the world.
Three things make this scraper different from the others:
- Only places that are genuinely free on your dates. Airbnb pads its results with listings that are already booked, quoting them for a different stay instead. Ask for 17 nights and you get 11- and 16-night rows mixed in. This actor removes them.
- It gets past Airbnb's ~270-listing limit. Airbnb never returns more than about 270 results for a single search, however many properties exist. Turn on Full coverage and the actor splits the map into smart grid tiles and searches each one, then merges and de-duplicates. One small town returned 1,596 listings instead of 270.
- Ultra-fast and cost-effective. An optimized extraction pipeline captures complete datasets in minutes at a fraction of typical scraping costs.
What you get
| Field | Description |
|---|---|
position | Airbnb's own ranking within that search |
name | The listing's real title |
propertyType | e.g. "Apartment in Martil" |
url | Direct link to the listing |
checkIn, checkOut, nights | The stay actually priced |
price, pricePerNight, currency | Total and per-night rate |
pricePerGuestPerNight | Effective price per person per night |
cleaningFee, serviceFee | Transparent fee breakdown |
isDiscounted, discountPercent | Strikethrough discount badges and percentage |
isGuestFavorite, guestFavoriteBadge | Guest Favorite status & Top % badge |
isSuperhost, badges | Host status and all search badges |
rating, reviewsCount | Review score and total volume |
bedrooms, beds, baths | Handles "1 double bed", studios and private rooms |
amenities | Clean normalized list of listing amenities (Wifi, Air conditioning, Kitchen, etc.) |
amenityFlags | Boolean flags object for fast filtering (hasWifi, hasPool, hasAc, etc.) |
latitude, longitude | Coordinates for mapping and GIS |
searchUrl | Which search produced the row |
Turn on Fetch listing details and each row also gets maxGuests (the exact number of guests the
place sleeps), detailedPropertyType, sharedBath, and the listing page's own price with its full
breakdown.
How to use it
By city name — simplest:
{"searchText": "Barcelona","checkIn": "2026-08-02","checkOut": "2026-08-09","adults": 2,"maxItems": 100}
By search URL — for filters you set on airbnb.com yourself:
{"searchUrls": [{ "url": "https://www.airbnb.com/s/Paris--France/homes?room_types%5B%5D=Entire%20home%2Fapt" }],"checkIn": "2026-08-02","checkOut": "2026-08-09"}
Paste a URL you copied from Airbnb and leave the date and guest fields empty — whatever you picked on the site is kept. Fill them in only when you want to override the URL; the run log tells you when that happens.
Whole city:
{ "searchText": "Martil", "fullCoverage": true, "maxItems": 0, "maxTiles": 60 }
Useful settings
| Setting | What it does |
|---|---|
exactDatesOnly | Drop listings that aren't free on your dates (on by default) |
fullCoverage + maxTiles | Split the map into smart grid tiles to beat the ~270 cap |
entirePlaceOnly | Filter out private rooms and shared rooms; keep whole properties only |
minPrice, maxPrice | Minimum and maximum price filters (stay total or per night in chosen currency) |
filterAmenities | Filter by core amenities (Wifi, AC, Pool, Kitchen, Free parking, etc.) |
onlyDiscounted | Only keep listings featuring active price drops or discount badges |
minDiscountPercent | Filter listings by minimum discount percentage (e.g. 20 for 20%+ off) |
minRating, minBedrooms, minBeds, minGuestCapacity | Property capacity and quality filters |
propertyType | Keep only apartments, riads, villas, houses, etc. |
proxyCountry | Airbnb prices and ranks by visitor location — pin one for consistent results |
useHttpFastPath | High-speed mode (on by default); auto-manages fallback |
currency, locale | Output currency and language preferences |
Good to know
- The top of the results is stable; the tail reshuffles. Four identical requests seven seconds
apart returned 17 of the same 18 listings with an identical top five, but 10-13 of the lower
positions moved. Treat high ranks as meaningful and low ranks as approximate.
positionrecords the rank as returned. - Results depend on where the request appears to come from. Rotating proxy IPs change the
apparent location and produce genuinely different result sets, which is a far bigger effect than
the reshuffling above. Pin
proxyCountryif you want runs to be comparable. - This is the anonymous view of Airbnb. Logged-in guests also get personalised results based on their booking history - someone who books cheaper places is steered toward cheaper listings. No scraper can see that, so treat this data as the baseline every guest starts from, not as what any particular guest sees.
- Running the same search twice and de-duplicating on
listingIdstill gives slightly better coverage than a single run. - Listing titles change between runs for the same property. Always key on
listingId. - Search cards and listing pages sometimes quote different totals. Enable Fetch listing details to also get the listing page's own price, which is what a guest would actually pay.
- Set
proxyCountryto the market you care about — which taxes and fees are included in a displayed total depends on where the visitor appears to be.
Disclaimer
This is an independent tool and is not affiliated with, endorsed by, or connected to Airbnb, Inc. Only public data is collected. You are responsible for how you use the data and for complying with applicable terms and laws.
