Airbnb Search Scraper
Pricing
$1.50 / 1,000 listings
Airbnb Search Scraper
Scrape Airbnb search results by location or by pasting a search URL. Get listing names, prices, ratings, review counts, coordinates, images, and badges as clean JSON. No login or API key. Stable schema built for market analysis, pricing dashboards, and AI agents (MCP-friendly).
Pricing
$1.50 / 1,000 listings
Rating
0.0
(0)
Developer
Virtual Constructs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Airbnb search results by location or by pasting a search URL. Get listing names, prices, ratings, review counts, coordinates, images, and badges as clean JSON. No login, no API key.
The data comes from Airbnb's own server-rendered search pages, so the actor is fast and cheap to run. Output is a stable, documented schema, easy to wire into pricing dashboards, market analysis, and AI agent workflows.
What data does this Airbnb scraper extract?
One dataset item per listing on the search results:
- Listing ID and canonical
airbnb.com/roomsURL - Name and room-type label (e.g. "Home in Austin")
- Price (parsed amount, currency, and the displayed string)
- Rating and review count
- Latitude/longitude of the listing's map position
- Photo URLs from the card carousel
- Badges (e.g. "Guest favorite") and a
isGuestFavoriteflag
How to scrape Airbnb listings
- Enter a Location the way you would type it on Airbnb, e.g.
Paris, FranceorAustin, TX. - Optionally set check-in/check-out dates, guest counts, and a price range.
- Run it. Results land in the dataset as JSON, CSV, or Excel.
Power users can skip the fields and paste a full Search URL instead (with your own map bounds, amenities, or property-type filters); the actor scrapes exactly that search.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
location | string | required* | Search location, e.g. "Paris, France". *Required unless searchUrl is set. |
searchUrl | string | none | Full Airbnb search URL; overrides location and the guest/price fields. |
checkIn / checkOut | string | none | ISO dates (YYYY-MM-DD). Prices are exact totals with dates, estimates without. |
adults | integer | 1 | Adult guests. |
children | integer | none | Children (2-12). |
priceMin / priceMax | integer | none | Price bounds in the search currency. |
currency | string | Airbnb default | ISO code, e.g. USD, EUR, GBP. |
maxListings | integer | 40 | Max listings to return (see the depth limit below). |
proxyConfiguration | object | Apify Proxy on | Recommended; Airbnb rotates bot defenses. |
Output example
{"id": "28254684","url": "https://www.airbnb.com/rooms/28254684","name": "The Iconic Bloomhouse | Romantic Austin Escape","roomType": "Home in Austin","rating": 4.95,"reviewCount": 268,"price": {"amount": 2698,"currency": "USD","qualifier": "for 5 nights","displayPrice": "$2,698","originalPrice": null,"accessibilityLabel": "$2,698 for 5 nights"},"coordinate": { "latitude": 30.3159, "longitude": -97.8036 },"badges": ["Guest favorite"],"isGuestFavorite": true,"images": ["https://a0.muscache.com/im/pictures/..."]}
Every field is always present; missing data is null, never an absent key.
New fields may be added in future versions; existing fields will not change
shape.
How much does it cost to scrape Airbnb?
Pay per event: you are charged per listing returned. A search that returns nothing costs nothing. See the actor's pricing on its store page.
Limits, stated plainly
- Search results only. This actor returns the listings on a search (name, price, rating, location, photos). It does not open each room for full descriptions, amenities, host details, availability calendars, or review text. That is a deliberate, separate scope.
- Depth. Airbnb's search paginates about 18 listings per page up to
roughly 270 results per query. To go beyond that, narrow the location or
add filters (dates, price, property type) and run again.
maxListingscaps at 270. - Prices are what Airbnb shows on the card. Without dates they are
estimates; with check-in/check-out they are the total for that stay. The
qualifierfield tells you which ("night", "for 5 nights"). Taxes and fees follow Airbnb's own card display. - Currency is inferred from the price symbol ($, EUR, GBP, ...). Set the
currencyinput for an explicit code, and readdisplayPricefor the exact string Airbnb rendered. - Coordinates are Airbnb's approximate map position, not an exact street address (Airbnb obscures precise location until booking).
- This is public search data only. No login, no private host data, no guest data, ever.
FAQ
Can it scrape a single listing's full details (amenities, host, reviews)? Not in this actor; it scrapes search results. A detail-level scraper is a separate scope. Open an issue on the Issues tab if you need it.
Do I need an Airbnb account or API key? No. Nothing to register, no key, no login.
Can I filter by amenities or property type?
Yes, indirectly: build the search on airbnb.com with the filters you want,
then paste that URL into searchUrl.
Can I export to CSV or Excel? Yes. The dataset exports as CSV, Excel, JSON, NDJSON, or XML.
Why enable the proxy? Airbnb rotates its bot defenses. Apify Proxy spreads requests across IP addresses and keeps runs reliable.