Airbnb Search Scraper
Pricing
$2.00 / 1,000 listings
Airbnb Search Scraper
Airbnb stay search as clean JSON: name, type, rating, reviews, price, badges, coordinates and photos for any city, with optional dates. Fast JSON API, no browser, no login.
Pricing
$2.00 / 1,000 listings
Rating
0.0
(0)
Developer
Santiago Morera
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
14 days ago
Last modified
Categories
Share
Airbnb stay search as clean JSON. Give it a city, optional dates and guests, and get the listings Airbnb ranks for it: name, type, rating, review count, price, badges, coordinates and photos. No browser and no login, so it is fast and cheap to run.
What you get
One record per listing, in Airbnb's ranking order. A listing is never repeated within a place.
- Listing:
id,url,name,propertyType(for example "Apartment in Paris" or "Hotel in 15th Arrondissement"),badges(for example "Guest favorite"),photos. - Reputation:
ratingandreviewCount(nullfor listings with no reviews yet). - Price:
priceas a number,priceTextas shown andpriceQualifier(for example "for 2 nights" when you set dates). - Location:
latitudeandlongitude.
Input
| Field | Type | Description |
|---|---|---|
locations | string[] | Places written like on Airbnb: Paris, France, Austin, TX. Each is paged on its own. |
searchUrl | string | Optional. A full Airbnb search URL with your own filters (price range, map area, guests). Replaces the places and the fields below. |
checkIn, checkOut | string | YYYY-MM-DD. With both set, prices are totals for that stay. |
adults | integer | Default 2. |
currency | string | Three-letter code, default USD. |
maxItems | integer | Maximum listings per place (1 to 300). Default 20, so a first run is quick and costs a few cents. |
Example:
{"locations": ["Paris, France", "Austin, TX"],"checkIn": "2026-12-10","checkOut": "2026-12-12","maxItems": 100}
Output
Real item from a run with the input above (photos shortened here):
{"id": "1237453895006960738","url": "https://www.airbnb.com/rooms/1237453895006960738","location": "Paris, France","position": 3,"name": "Eklo Hotels Paris Porte de Versailles","propertyType": "Hotel in 15th Arrondissement","rating": 4.53,"reviewCount": 1008,"price": 374,"priceText": "$374 USD","priceQualifier": "for 2 nights","badges": ["Guest favorite"],"latitude": 48.8273,"longitude": 2.2908,"photos": ["https://a0.muscache.com/im/pictures/....jpg"]}
Notes
- Airbnb serves about 270 listings per search (15 pages). The actor stops there and returns what it got. To go deeper, search several neighbourhoods or use a
searchUrlwith a map area. - Only what a logged-out visitor sees is collected. Host details and full descriptions need a listing page and are not included.
- Price: USD 0.002 per listing returned (USD 2 per 1,000), nothing else. A run with the default 20 listings costs about USD 0.04. If a search returns no listings the run fails instead of finishing empty. If Airbnb blocks a request, the actor retries on a fresh IP and, from the third attempt, through a residential proxy.
Use cases
- Short-term rental market research: prices, ratings and review counts for any city.
- Competitor and pricing analysis for hosts and property managers, with your own dates and guests.
- Location data: coordinates for mapping and heatmaps.
- Scheduled monitoring: run it daily or weekly and send the results to Google Sheets, a database or a webhook.
FAQ
Do I need an Airbnb account or a proxy? No. You only provide the places and optional dates.
How many listings can I get per place? About 270, which is what Airbnb serves per search. Use searchUrl with your own map area or filters to cover a city in several slices.
Is the price per night or for the whole stay? With checkIn and checkOut set, price is the total for that stay and priceQualifier says so. Without dates it is Airbnb's default display price.
Can I call it from my own code? Yes, through the Apify API or the Python and JavaScript clients, and with integrations such as Make, Zapier or n8n.