Airbnb Search Scraper avatar

Airbnb Search Scraper

Pricing

from $0.90 / 1,000 listings

Go to Apify Store
Airbnb Search Scraper

Airbnb Search Scraper

Airbnb listings with prices as numbers, every result priced for the same stay so they can actually be compared.

Pricing

from $0.90 / 1,000 listings

Rating

0.0

(0)

Developer

Drydock Data

Drydock Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Search Airbnb by location and get listings back as clean rows — with prices as numbers, and every listing priced for the same stay.

Why this one

Two things go wrong with Airbnb data and neither announces itself.

Dates drift. If a scraper doesn't pin check-in and check-out, Airbnb happily prices each listing for a different stay. You end up comparing five nights in September against five nights in December and nothing in the output tells you. This actor uses one date range for the whole run, and every row carries it.

Prices arrive as sentences. "$1,469 total", "5 nights x $262.20". You cannot sort, filter or average any of that without writing a parser, and the nightly rate — the number most people actually want — is buried in prose. Here it is a number.

Promotions are handled properly. Airbnb quotes a base rate and then subtracts a promotion on a separate line. nightlyRate is what you actually pay per night after that discount; listNightlyRate is the advertised rate before it. Rows reconcile: totalBeforeTaxes + taxes = totalPrice, exactly.

What you get

{
"id": "1764476553584344263",
"url": "https://www.airbnb.com/rooms/1764476553584344263",
"name": "Peaceful Suite * Massage Option * West AVL",
"propertyType": "Home in Asheville",
"checkIn": "2026-10-10", "checkOut": "2026-10-15", "nights": 5,
"currency": "USD",
"nightlyRate": 138.07,
"listNightlyRate": 172.59,
"discount": 172.59,
"totalBeforeTaxes": 690.36,
"taxes": 89.75,
"totalPrice": 780.11,
"rating": 4.92, "reviewsCount": 118,
"bedrooms": 1, "beds": 2,
"latitude": 35.5902, "longitude": -82.5845,
"badges": ["Superhost"]
}

Input

FieldDescription
locationWhere to search, as you would type it on Airbnb — Asheville, NC, Lisbon, Portugal, Kyoto.
checkIn / checkOutYYYY-MM-DD. Defaults to a five-night stay 30 days out. Applied to every listing.
adults, children, infants, petsGuest counts. These change both eligibility and price.
currencyThree-letter code. All prices come back in it.
localeLanguage for titles and descriptions.
priceMin / priceMaxPer night, in the chosen currency.
minBedrooms / minBeds / minBathroomsSize filters.
maxItemsHard row cap, so a run cannot cost more than you expect.
proxyConfigurationLeave proxy on for larger runs.

Notes and limits

Prices are for the dates you asked for. Change the dates and the numbers change — that is Airbnb, not the scraper. Pin the dates when comparing across runs.

Airbnb is regional. It serves a different site depending on where the request comes from. The actor detects that redirect and follows it, so results stay consistent whichever exit IP a run gets.

Listing data only. Superhost status, ratings and review counts are included because they describe the listing. Host names, profile photos and bios are not collected.

cleaningFee and serviceFee are often null — Airbnb only itemises them for some listings. They are reported when present rather than guessed at.

Pricing

Pay per listing returned. A search that finds nothing returns nothing and costs nothing.