Airbnb Search Scraper
Pricing
from $0.70 / 1,000 listing scrapeds
Airbnb Search Scraper
Scrape Airbnb search results for any location and dates: listing name and type, bedrooms, rating, reviews, total, original and nightly price, taxes, badges, coordinates and photos.
Pricing
from $0.70 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Solar G
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Scrapes Airbnb search results for any location: listing name and type, bedrooms, beds and bathrooms, star rating, number of reviews, total, original and nightly price for your dates, taxes, badges such as "Guest favorite", coordinates and photos. Useful for short-term rental market research, pricing comparisons and travel planning.
Input
| Field | Description |
|---|---|
locations | Cities, neighbourhoods or regions ("Lisbon", "Austin, TX", "Shoreditch, London"), or an Airbnb search link such as https://www.airbnb.com/s/Lisbon--Portugal/homes. |
checkIn / checkOut | Optional dates (YYYY-MM-DD). Give both or neither. Past dates, a check-out on or before check-in, and stays over 365 nights fail the run with a clear message. |
adults | Number of guests, 1 to 16. Default 1. |
currency | Three-letter code, e.g. USD, GBP, EUR. Default USD. All prices in the output use it. Only currencies Airbnb supports are accepted (about 60, including AUD, BRL, CAD, CHF, CNY, DKK, INR, JPY, MXN, NOK, NZD, PLN, SEK, SGD, THB, TRY and ZAR); any other code fails the run with the full list, because Airbnb would otherwise quietly show a different currency. |
minPrice / maxPrice | Optional. Airbnb's own nightly price filter, in the chosen currency. |
maxListingsPerLocation | Default 100, maximum 300. Airbnb shows up to about 270 per search. |
{"locations": ["Lisbon", "Porto"],"checkIn": "2026-12-04","checkOut": "2026-12-07","adults": 2,"currency": "EUR"}
Output
Example from the input above:
{"location": "Lisbon","listingId": "32422325","url": "https://www.airbnb.com/rooms/32422325?check_in=2026-12-04&check_out=2026-12-07&adults=2","name": "Brand new apartment right in the heart of Alfama.","title": "Apartment in Santa Maria Maior","roomType": "Apartment","subtitle": "Brand-new waterfront stay in Alfama, with a private entrance and a balcony","bedrooms": 1,"beds": 2,"bathrooms": 1,"guests": 2,"rating": 4.82,"reviewsCount": 485,"isNew": false,"priceLabel": "€285 for 3 nights, originally €316","totalPrice": 285,"originalPrice": 315.44,"taxes": null,"totalIncludesTaxes": false,"priceBeforeTaxes": 285,"nights": 3,"nightsBreakdown": "3 nights x €95.00","pricePerNight": 95,"badges": ["Guest favorite"],"latitude": 38.71167,"longitude": -9.12559,"photos": ["https://a0.muscache.com/im/pictures/5454a86b-b85c-44d6-bce5-3803a3229a18.jpg"],"checkIn": "2026-12-04","checkOut": "2026-12-07","sampleDates": false,"currency": "EUR"}
| Field | Meaning |
|---|---|
url | Listing link with your dates and guests filled in. |
roomType | The type part of the title, e.g. "Apartment", "Room", "Home". null for hotels, whose title is their name. |
bedrooms, beds, bathrooms | As shown in search. A studio has 0 bedrooms. Runs on Apify normally have them. Airbnb leaves them out of some searches (for example undated searches of EU and UK places when viewed from Europe, where it shows the host type instead); they are then null. Searches with dates usually include them (rooms in a shared home may still have no bedroom count). |
totalPrice | The exact total for the stay from Airbnb's price breakdown, after any discounts. |
originalPrice | The total before a discount, when Airbnb shows one ("originally ..."), on the same basis as totalPrice. Otherwise null. |
taxes, totalIncludesTaxes | Airbnb shows prices differently by region. Runs on Apify use US-style prices: the total is before taxes (totalIncludesTaxes false, taxes null). Where Airbnb itemises taxes (UK/EU style) taxes is that amount and it is included in totalPrice. null means Airbnb did not say. |
priceBeforeTaxes | The total without taxes. Use this to compare prices across runs and regions. |
pricePerNight, nights | The nightly rate and number of nights from Airbnb's breakdown line ("3 nights x €95.00"). This is the rate before any discount that Airbnb lists separately (weekly, early-bird and similar) and before fees, so pricePerNight x nights can be more than priceBeforeTaxes. For the effective cost per night, divide priceBeforeTaxes (or totalPrice) by nights. |
priceLabel | Airbnb's own rounded price text. |
checkIn, checkOut, sampleDates | The dates the prices are for. Without input dates Airbnb picks sample dates for each listing, so they differ between listings, and sampleDates is true. |
error, input | Only on error items, for example a place Airbnb does not recognise. Error items are not charged. |
Wording such as titles and badges is given in US English. subtitle is Airbnb's highlight line for the listing and can change between searches; name is the host's listing name. Coordinates are approximate, as Airbnb shows them before booking.
API usage
curl -X POST "https://api.apify.com/v2/acts/solarg~airbnb-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"locations": ["Lisbon"], "checkIn": "2026-12-04", "checkOut": "2026-12-07", "adults": 2, "currency": "EUR"}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("solarg/airbnb-scraper").call(run_input={"locations": ["Austin, TX"], "maxListingsPerLocation": 200})items = client.dataset(run["defaultDatasetId"]).list_items().items
Pricing
$1.00 per 1,000 listings. Platform usage is included in the price. Error items are free. Apify plan discounts apply where Apify offers them.
Limitations
- Search results only. Listing descriptions, amenities, host details and review text aren't included.
- About 270 listings per search (an Airbnb limit). For full coverage of a city, search by neighbourhood or split by price range.
- If Airbnb does not recognise a place, the run returns an error item for it instead of the random listings Airbnb would show. First the search is retried with the English name of common native names ("København" finds Copenhagen, "東京" finds Tokyo) and without accents ("München" finds Munich).
Report problems in the Issues tab.