Airbnb Scraper - Listings, Prices & Ratings avatar

Airbnb Scraper - Listings, Prices & Ratings

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Airbnb Scraper - Listings, Prices & Ratings

Airbnb Scraper - Listings, Prices & Ratings

Extract Airbnb listings from any search URL with price per night, rating, review count, capacity and GPS coordinates. Prices come with their period and night count, so a total for the stay is never compared against a nightly rate.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Juan ignacio Veltri

Juan ignacio Veltri

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Airbnb Scraper — Listings, Prices & Ratings

Paste an Airbnb search URL. Get every listing as clean, structured data — with prices you can actually compare.

Works on any Airbnb country domain: .com, .es, .com.ar, .mx, .com.br, .co.uk, .fr, .de, .it.


The price problem this solves

Airbnb shows "$337 for 5 nights" when your search has dates, and "$67 per night" when it does not. Most scrapers store the number and drop the qualifier, so a five-night total ends up in the same column as a nightly rate. Every average, every filter, every comparison you build on top of that is wrong.

This Actor always returns three fields together:

"price": { "amount": 337, "currency": "USD", "raw": "$337 USD for 5 nights" },
"pricePeriod": "stay",
"priceNights": 5

So 337 / 5 = 67 is a number you can trust. The maxPricePerNight filter does that division for you — a cheap listing is never excluded just because the stay is long.

What you get per listing

FieldExample
nameDana Apartments
propertyTypeRental unit in Madrid
rating4.78
reviewsCount222
price + pricePeriod + priceNights337 · stay · 5
capacity, bedrooms, beds, bathroomswhen the listing states them
location.latitude / longitudeexact coordinates
isSuperhosttrue / false
imagesfull-resolution URLs

How to use it

Scrape a destination

Set your dates, guests and filters on Airbnb, then copy the URL:

{
"startUrls": [{ "url": "https://www.airbnb.com/s/Madrid--Spain/homes" }],
"maxItems": 300
}

Well-rated listings under a nightly budget

{
"startUrls": [{ "url": "https://www.airbnb.com/s/Barcelona--Spain/homes" }],
"minRating": 4.5,
"minReviews": 50,
"maxPricePerNight": 120,
"onlySuperhost": true
}

Monitor new listings

Schedule it with includeSeen off — each run returns only listings that appeared since the last one.

About the 300-result cap

Airbnb limits every search to roughly 300 results. That is the site's limit, not this Actor's, and no scraper can go past it on a single URL.

To cover a whole city, split the search and pass several URLs — by neighbourhood, by price band, or by date range. The run log tells you when a search has been exhausted so you know when to split.

Input reference

FieldTypeDefaultWhat it does
startUrlsarrayexample URLAirbnb search result URLs
nameKeywordsarray[]Keep listings whose name matches any word
minRatingintegerMinimum rating, 0–5
minReviewsintegerMinimum review count
maxPricePerNightintegerCompared per night, not per stay
onlySuperhostbooleanfalseOnly Superhost listings
maxItemsinteger200Hard stop. Your cost control
maxPagesPerUrlinteger15Pages per URL (~18 listings each)
includeSeenbooleantruefalse returns only listings new since the last run
proxyTierenumdatacenterStarts cheap, escalates only if blocked
maxProxyTierenumresidentialSet to datacenter to never spend residential bandwidth
maxRequestsPerMinuteinteger40Throttle. Often more effective than switching proxies

Cost

Charged per listing saved. Listings removed by your filters or already seen are not charged.

The Actor starts on datacenter proxies and escalates to residential only when it detects an anti-bot challenge, so you do not pay for residential bandwidth unless the site actually demands it.

FAQ

Why do some listings have no rating? Because they are new and have no reviews yet. The field comes back null and reviewsCount is 0, rather than being guessed as zero stars.

Why is capacity sometimes empty? Airbnb only states guests, bedrooms and beds on some cards. Missing values are returned as null instead of being inferred.

Why fewer results than Airbnb shows? Either maxItems, or Airbnb's own ~300-result cap. Split the search into several URLs to go wider.

Is this legal? Only public search results are extracted — the same information any visitor sees without logging in. No login is bypassed and no personal data is collected.

Support

Found a search URL that does not parse? Open an issue with the URL. Reports with a URL get fixed fastest.