Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

from $4.00 / 1,000 listings

Go to Apify Store
Airbnb Listings Scraper

Airbnb Listings Scraper

Scrape Airbnb search results: prices, discounts, ratings, coordinates and photos. No login or API key needed.

Pricing

from $4.00 / 1,000 listings

Rating

0.0

(0)

Developer

christopher tan

christopher tan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Export Airbnb search results into a spreadsheet, JSON, or your own app. Prices, discounts, ratings, coordinates and photos, with no login or API key.

Press Start to see it work. The default input searches Lisbon.

Need the full detail for listings you find? Feed the results into the Airbnb Listing Details Scraper for every amenity, the house rules, per-category ratings and room-by-room photos.

What you get

One row per listing:

FieldExample
nameLisbon Downtown Baixa, ideal for short stay
roomTypeTitleApartment in Santa Maria Maior
price / pricePerNight1025 / 250
priceOriginal + isDiscounted1253, true — spot listings currently discounted
priceBreakdownLine items: nights x rate, discounts, cleaning
rating / reviewsCount4.91 / 226
isGuestFavorite / badgestrue / ["GUEST_FAVORITE"]
latitude / longitude38.7111 / -9.1357 — ready to map
details["1 bedroom", "1 king bed", "1 bathroom"]
photoUrlsUp to 29 full-size image URLs
urlhttps://www.airbnb.com/rooms/670694153658292838

What people use it for

  • Short-let market research. Compare nightly rates by area and property size before buying or listing.
  • Revenue management. Watch what comparable listings charge for your dates and spot who is discounting.
  • Competitive analysis for hosts. See which nearby listings hold Guest Favourite status and how their pricing moves.
  • Travel and relocation tools. Feed live inventory with coordinates straight into a map or an AI agent.
  • Academic and policy research. Build a dated, geocoded snapshot of short-term rental supply in a city.

Input

Give it a location, or paste an Airbnb search URL to reuse filters you already set in the browser. Both work, and you can mix them.

SettingWhat it does
LocationsLisbon, Portugal, Austin, Texas, and so on. Each is searched separately.
Airbnb search URLsAny Airbnb /s/.../homes URL. Filters in the URL are respected.
Check-in / Check-outOptional. Adding dates makes prices real quotes rather than estimates.
GuestsAdults, children, infants, pets. Changes both results and price.
Price rangeNightly minimum and maximum.
CurrencyThree-letter code such as USD.
Max listings per searchDefault 100.
ProxyOff by default. Turn on if Airbnb starts showing bot checks.

Sample output

{
"search": "Lisbon, Portugal",
"listingId": "670694153658292838",
"url": "https://www.airbnb.com/rooms/670694153658292838",
"name": "Lisbon Downtown Baixa, ideal for short stay",
"roomTypeTitle": "Apartment in Santa Maria Maior",
"rating": 4.91,
"reviewsCount": 226,
"isGuestFavorite": true,
"latitude": 38.7111,
"longitude": -9.1357,
"details": ["1 bedroom", "1 king bed", "1 bathroom"],
"price": 1025.0,
"priceDisplayed": "$1,025 SGD",
"priceOriginal": 1253.0,
"isDiscounted": true,
"pricePerNight": 250.0,
"priceQualifier": "for 5 nights",
"photoCount": 29
}

An unrecognised location is reported, not guessed

Airbnb answers a search it cannot resolve with HTTP 200 and a scatter of unrelated listings from all over. Rather than hand those to you as if they matched, this Actor detects it and tells you the location was not recognised. Misspellings that Airbnb can still resolve, like Lisbonnn, work normally.

What it cannot do, and why

Worth reading before you plan a large job:

  • Airbnb caps any single search at about 270 results (15 pages of 18). This is Airbnb's own limit, not a limit of this Actor, and no scraper can page past it. To cover a whole city, split the job: run several price bands, or several neighbourhoods, and combine the output. Setting a higher limit will simply return 270.
  • Airbnb serves different results per country. Requests are redirected to a local Airbnb domain, and prices come back in that region's currency. The Actor detects and follows this automatically, and reports which domain it used. Set currency, or use a proxy in the country you care about, if you need specific pricing.
  • Duplicates across pages are removed. Airbnb repeats some listings between pages; every row you get is a distinct listing.
  • Prices are Airbnb's displayed totals, matching what a guest sees for those dates and guest count. Without dates, they are Airbnb's estimates.
  • No host or guest personal data, and no reviews text. This collects listing information only.

More tools from steadyfeeds

Notes

Reads the same public search pages you can open in a browser. No headless browser is used, which is why runs are fast and cheap.

Something broken or a field you need? Open an issue on this Actor and I will take a look.