Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

$2.50 / 1,000 listing scrapeds

Go to Apify Store
Airbnb Listings Scraper

Airbnb Listings Scraper

Scrape Airbnb stays by city or region: price, rating, review count, coordinates, photos, badges and discounts. Fast, no login, pay only per listing returned.

Pricing

$2.50 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Jamel HAMLAOUI

Jamel HAMLAOUI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape Airbnb stays for any city or region. Prices, ratings, review counts, coordinates, photos, badges and discounts — as JSON, CSV or Excel.

Just type a city. No login, no API key, no listing IDs to hunt down.

Why this one

  • Real coordinates on every listing, so you can map or geo-filter results
  • Discounts exposedoriginalPriceDisplay shows the pre-discount price when a stay is marked down, which is invisible in most exports
  • Numeric prices, correctly parsed. €1,448 and 1 234,56 € both come back as proper numbers rather than strings you have to clean up
  • Up to 10 photo URLs per listing, plus the total photo count
  • No start fee. You pay per listing returned, and nothing at all for a run that returns nothing

Quick start

{
"locations": ["Paris, France"],
"maxListingsPerLocation": 100
}

Narrowing it down:

{
"locations": ["Barcelona, Spain", "Lisbon, Portugal"],
"checkin": "2026-11-01",
"checkout": "2026-11-05",
"adults": 2,
"maxPrice": 200,
"roomType": "Entire home/apt",
"maxListingsPerLocation": 250
}

Input

FieldWhat it does
locationsCities or regions — Paris, France
checkin / checkoutYYYY-MM-DD. Leave empty to search without dates
adultsGuest count. 0 = unspecified
minPrice / maxPriceNightly price filters. 0 = no limit
roomTypeAll, Entire home/apt, Private room, Shared room
maxListingsPerLocation0 for everything Airbnb pages through (~270)

Dates are validated before the run starts. Airbnb silently ignores a malformed date, which looks exactly like a filter that worked — so a bad date fails loudly here instead.

Output

FieldDescription
listingIdAirbnb listing ID
nameHost-written listing title
titleProperty type and area, e.g. "Home in Montfermeil"
priceNumeric price
priceDisplayPrice as Airbnb shows it
originalPriceDisplayPre-discount price, when discounted
isDiscountedWhether the stay is marked down
priceQualifier"total" or "per night"
ratingAverage rating
reviewsCountNumber of reviews
latitude / longitudeCoordinates
badgese.g. "Guest favorite"
photoCount / photosPhoto total, and up to 10 URLs
urlDirect link to the listing
searchLocationWhich of your locations produced this row
{
"listingId": "1612481834748586799",
"name": "Miamor spa*Private loft - Home theater/pool/spa",
"title": "Home in Montfermeil",
"rating": 5.0,
"reviewsCount": 32,
"price": 1448.0,
"priceDisplay": "€1,448",
"originalPriceDisplay": "€1,789",
"isDiscounted": true,
"priceQualifier": "total",
"latitude": 48.887928548504036,
"longitude": 2.552390683292381,
"badges": ["Guest favorite"],
"photoCount": 23,
"url": "https://www.airbnb.com/rooms/1612481834748586799"
}

Honest notes on coverage

Measured on a live Paris search, 18 listings:

FieldFilled
id, name, title, price, coordinates, photos, url100%
rating, reviewsCount78%
originalPriceDisplay22%
badges56%

The gaps are real data, not failures. New listings genuinely have no rating yet, only discounted stays carry an original price, and only some listings earn a badge. We publish the numbers rather than implying every row is full.

Pagination

Airbnb's old items_offset parameter is effectively dead — it returns almost the same page. This Actor follows Airbnb's own cursors instead, which is what the site uses, and reaches roughly 270 listings per search.

Proxy

Airbnb throttles single IP addresses. Apify Proxy is on by default and the Actor rotates to a fresh IP when it gets blocked mid-run, keeping everything collected so far rather than failing the whole job.

FAQ

Do I need an Airbnb account? No. This reads only what Airbnb serves publicly to any visitor.

Is any personal data collected? No. Listings, prices and locations only — no host names, no guest reviews, no contact details.

Why is rating sometimes empty? The listing has no reviews yet. That is the true value, so we leave it empty rather than inventing a zero.

What if the output breaks? Airbnb can change their page structure without warning. Automated contract tests catch shape changes. Report an issue and it will be fixed.