Airbnb Search Scraper avatar

Airbnb Search Scraper

Pricing

from $0.70 / 1,000 listing scrapeds

Go to Apify Store
Airbnb Search Scraper

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

Solar G

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

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

FieldDescription
locationsCities, neighbourhoods or regions ("Lisbon", "Austin, TX", "Shoreditch, London"), or an Airbnb search link such as https://www.airbnb.com/s/Lisbon--Portugal/homes.
checkIn / checkOutOptional 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.
adultsNumber of guests, 1 to 16. Default 1.
currencyThree-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 / maxPriceOptional. Airbnb's own nightly price filter, in the chosen currency.
maxListingsPerLocationDefault 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"
}
FieldMeaning
urlListing link with your dates and guests filled in.
roomTypeThe type part of the title, e.g. "Apartment", "Room", "Home". null for hotels, whose title is their name.
bedrooms, beds, bathroomsAs 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).
totalPriceThe exact total for the stay from Airbnb's price breakdown, after any discounts.
originalPriceThe total before a discount, when Airbnb shows one ("originally ..."), on the same basis as totalPrice. Otherwise null.
taxes, totalIncludesTaxesAirbnb 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.
priceBeforeTaxesThe total without taxes. Use this to compare prices across runs and regions.
pricePerNight, nightsThe 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.
priceLabelAirbnb's own rounded price text.
checkIn, checkOut, sampleDatesThe 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, inputOnly 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 ApifyClient
client = 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.