Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

from $0.84 / 1,000 listings

Go to Apify Store
Airbnb Listings Scraper

Airbnb Listings Scraper

[$1.20/1K listings] Scrape Airbnb listings for any city and dates: stay and nightly price, rating, review count, coordinates, bedrooms, badges, photos; optional description, amenities, host, calendar and reviews. No browser, no login.

Pricing

from $0.84 / 1,000 listings

Rating

5.0

(1)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Airbnb Listings Scraper collects Airbnb listings for any city, neighbourhood or region and any dates, and returns them as a clean table: the total price for the stay and the price per night in the currency you pick, the struck-through original price and discount, rating and review count, property type and area, coordinates, beds and bedrooms, Guest favorite badge and photos. Switch on one option and every listing also gets its description, full amenities list, host (Superhost, response rate and time), guest capacity, bathrooms, category sub-ratings, cancellation policy and house rules. It reads the data Airbnb puts into its own pages, so there is no browser, no login and no Airbnb API key. Export to JSON, CSV or Excel, run it on a schedule, or call it from the API, n8n, Make, Zapier or an AI agent through MCP.

This is the listings-focused edition of Airbnb Scraper — same engine and same price, set up so that one city in, one table of listings out.

What data does Airbnb Listings Scraper return?

FieldExample from a real run (Lisbon, 6 October 2026)
name, propertyType, areaAv Liberdade Historic Center I Balcony I AC I WiFi · Apartment · Santo António
priceTotal, pricePerNight, currency, nights390 · 130 · USD · 3
priceOriginal, discountPercent467 · 16
rating, reviewCount4.9 · 305
badges, isGuestFavorite["Guest favorite"] · true
bedInfo, highlights["2 beds"] · ["Free cancellation"]
latitude, longitude38.7193 · -9.1428 (approximate, as Airbnb shows before booking)
imagesphoto URLs
checkIn, checkOut, adultsthe stay and party the price was quoted for
url, listingId, position, page, query, placelink, id, order, page, your query, how Airbnb understood the place

With Open every listing page (includeDetails): description, amenities and amenityGroups, hostName, isSuperhost, hostResponseRate, hostResponseTime, personCapacity, bedrooms, beds, bathrooms, roomType, categoryRatings (cleanliness, accuracy, check-in, communication, location, value), ratingDistribution, cancellationPolicy, houseRules, checkInTime, checkOutTime.

With Availability calendar (includeCalendar): minNights, maxNights, availableOnCheckIn, day-by-day calendar and availabilityByMonth with occupancy per month. With Reviews (includeReviews): the latest guest reviews with the host's replies, on the same row.

How much does it cost?

Pay per result, no fee per run. Error rows and "nothing found" rows are always free.

EventPrice (Free plan)Per 1,000
Listing (from search or a listing URL)$0.0012$1.20
Listing detail (add-on: description, amenities, host, rules)$0.004444$4.44

Higher Apify plans pay less: a listing goes down to $0.84 per 1,000. The monthly $5 credit of the Apify Free plan covers about 4,000 listings.

How to scrape Airbnb listings

  1. Click Try for free (a free Apify account is enough).
  2. Type one or more places into Where, for example Lisbon, Portugal or Brooklyn, NY.
  3. Set Check-in and Check-out (without dates the run quotes a 3-night stay starting 30 days from today) and the number of guests.
  4. Set Maximum listings (50 by default, up to 500; the cap is for the whole run, so with several places the first ones can fill it) and click Start.
  5. Open the Output tab and download the table, or read the dataset through the API.

You can also paste Airbnb search URLs with your own filters, or single listing URLs (https://www.airbnb.com/rooms/…), into Airbnb URLs.

⬇️ Input example

Entire places with at least 2 bedrooms in Austin, $100–250 a night, with the calendar:

{
"locationQueries": ["Austin, Texas"],
"checkIn": "2026-11-20",
"checkOut": "2026-11-23",
"adults": 4,
"roomTypes": ["Entire home/apt"],
"minBedrooms": 2,
"priceMin": 100,
"priceMax": 250,
"maxListings": 30,
"includeCalendar": true
}

An empty input ({}) is a demo: 50 Lisbon listings for a 3-night stay a month from today.

⬆️ Output example

{
"type": "listing",
"listingId": "1075655",
"url": "https://www.airbnb.com/rooms/1075655",
"name": "Av Liberdade Historic Center I Balcony I AC I WiFi",
"propertyType": "Apartment",
"area": "Santo António",
"latitude": 38.7193,
"longitude": -9.1428,
"priceTotal": 390,
"priceOriginal": 467,
"pricePerNight": 130,
"currency": "USD",
"nights": 3,
"rating": 4.9,
"reviewCount": 305,
"isGuestFavorite": true,
"bedInfo": ["2 beds"],
"place": "Lisbon, Portugal",
"checkIn": "2026-11-05",
"checkOut": "2026-11-08",
"discountPercent": 16
}

Use cases

Hosts and property managers

See what comparable listings in your street charge for the same dates, which ones carry the Guest favorite badge, and how their prices move week to week on a schedule.

Short-term rental investors and analysts

Pull every listing in a city in price bands, then size the market: nightly rate by area and property type, share of entire homes, occupancy from the calendar.

Travel apps and AI agents

One call returns a structured list of stays with numeric prices, ready for ranking, maps or retrieval in an LLM pipeline.

Limits, honestly

  • Airbnb stops paging a search at about 270 results. The Actor then repeats the same search in price bands and de-duplicates by listing, which gets well past that (300 Lisbon listings came back in 86 seconds in our test), but a small town simply has fewer listings.
  • Coordinates are approximate until booking — that is Airbnb's own rule.
  • A place Airbnb does not recognise is not "searched anyway": you get one free row explaining it, not random listings from other countries.
  • Prices are what Airbnb quotes for your dates and party, before any personal coupons.

❓ FAQ

The Actor reads only public listing pages that anyone can open without logging in, and collects no guest personal data beyond what Airbnb publishes on the page. Check that your use follows Airbnb's terms and the privacy law of your country.

Do I need a proxy?

No. Apify Proxy is on by default, and if Airbnb starts rate-limiting, the run switches itself to residential addresses. That is included in the price.

Why is a field empty?

Search cards carry only what Airbnb shows on the card: a listing with no reviews has rating: null, a listing without a discount has priceOriginal: null. Switch on Open every listing page for the full record.

Can I get only new listings every day?

Yes — fill Only new rows — memory name and schedule the Actor; later runs write and charge only listings you have not received before.

Your feedback

Something missing or wrong in the table? Open an issue in the Issues tab — it is read and answered.