Airbnb Scraper avatar

Airbnb Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Airbnb Scraper

Airbnb Scraper

Scrape Airbnb listings for any city, search link or listing link, no login or cookies. Get nightly and stay prices, hosts, amenities, photos, ratings, availability calendar and guest reviews. Bulk inputs and filters. Clean JSON for pricing and market research.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Data WiKi

Data WiKi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

๐Ÿš€ What is Airbnb Scraper?

Airbnb Scraper is an Airbnb data scraper that collects public Airbnb listings: prices, photos, ratings, hosts, amenities, availability and guest reviews. Just type a place, paste an Airbnb search link or a listing link and download the results as JSON, CSV or Excel. It works without an Airbnb account, login or cookies, and you can run one place or hundreds of inputs in a single run.

  • ๐Ÿ  Listings for any place: use it as an Airbnb listings scraper for a city, a neighbourhood or a whole list of places at once.
  • ๐Ÿ’ต Prices that say what they cover: every price shows its check-in date, check-out date and number of nights.
  • ๐Ÿ’ฌ Reviews and calendar on request: switch on guest reviews and the availability calendar only for the runs that need them.

๐Ÿ’ก Looking for another website? This Actor reads Airbnb only. For second-hand and property ads on a different site, see the Facebook Marketplace listings scraper.

โœจ What can this Airbnb Scraper do?

  • ๐Ÿ”Ž Scrape Airbnb listings from place names, Airbnb search links, listing links and listing ids, mixed in one list.
  • ๐Ÿ’ต Read prices for the night and for the whole stay. As an Airbnb price scraper it keeps the discounted and original price when Airbnb shows both.
  • ๐Ÿ—“๏ธ Use dates and guests: set check-in, check-out, adults, children, infants and pets to get the exact price for a stay.
  • ๐Ÿ’ฑ Choose the currency and filters: any 3-letter currency code, price per night, bedrooms, beds, bathrooms and room type.
  • ๐Ÿงพ Full listing details on or off: description, amenities, house rules, host, co-hosts, all photos and sleeping arrangements, or a fast overview only.
  • ๐Ÿ“… Availability calendar: read 1 to 12 months ahead and get the share of days that are not bookable, the way an Airbnb availability calendar scraper would.
  • ๐Ÿ’ฌ Scrape Airbnb reviews with rating, text, date, language, reviewer first name and location, and the host reply, saved in a separate Reviews table.
  • โšก See results while it runs: each listing is saved the moment it is ready.
  • ๐Ÿ“ฅ Export the data in JSON, CSV, Excel, HTML or XML.
  • ๐Ÿ”Œ Use the API, schedules, webhooks and integrations with other apps through the Apify platform.

๐Ÿ”“ Airbnb scraper no login: it only reads pages that any visitor can see, so you need no account and no cookies.

๐Ÿ“Š What data can this Airbnb Scraper extract?

The Actor works as an Airbnb data extractor and returns these groups of fields for every listing.

๐Ÿ  Title, property type, room type๐Ÿ“ Coordinates, location label, area notes๐Ÿ’ต Price per night, stay total, nights, original price
๐Ÿ›๏ธ Bedrooms, beds, bathrooms, guest capacityโญ Overall rating and six category ratings๐Ÿ… Superhost, guest favourite, badges
๐Ÿ‘ค Host name, rating, years hosting, response rate๐Ÿงพ Description, highlights, sleeping arrangements๐Ÿ›‹๏ธ Amenities and house rules
๐Ÿ“ท Cover photo and all photos๐Ÿ“… Share of days not bookable, next free date๐Ÿ’ฌ Guest reviews and host replies
๐Ÿ”— Listing link and id๐Ÿงญ Searched place and matched placeโฑ๏ธ Scrape time and notes per listing

โš ๏ธ Note: with Full listing details switched off you only get what the search results show (id, link, title, photos, coordinates, rating, bedrooms, beds, bathrooms, badges and price). The other detail fields are then absent from the row, not empty. Fields Airbnb does not show for a listing are null.

Data Airbnb Scraper can't extract

  • Private content: messages, bookings and anything behind a login are not read.
  • Contact details: there are no email or phone fields. Host data is limited to the public profile details listed above.
  • Booked versus blocked days: the calendar says a day is not bookable, not whether a guest booked it or the host blocked it.
  • Revenue: the Actor returns prices and availability; any revenue figure is something you calculate from them.
  • Other languages: text comes back in English.

๐Ÿ’ฐ How much does it cost to scrape Airbnb?

Airbnb Scraper uses pay-per-event pricing: you pay for each listing it saves, with no subscription to the Actor. The prices below are the Actor's public prices as of 2026-10-18. Details, calendar and reviews do not change the price per listing, and rows in the Reviews table and the Inputs overview are not charged separately. Duplicate listings are skipped and not billed.

Base pricing

  • Results (main_result): charged for each listing saved in the main dataset.
  • Actor start (apify-actor-start): $0.00005 per event, one event per GB of memory. The Actor is set to 1024 MB (1 GB), so this is $0.00005 per run.

Pricing by plan tier

Plan tierPrice per resultPer 1,000 results
๐Ÿ†“ Free$0.00251,000 x $0.0025 = $2.50
๐Ÿฅ‰ Bronze$0.00201,000 x $0.0020 = $2.00
๐Ÿฅˆ Silver$0.00151,000 x $0.0015 = $1.50
๐Ÿฅ‡ Gold and above$0.00101,000 x $0.0010 = $1.00

Example: 200 listings on the Free tier cost 200 x $0.0025 = $0.50, plus the $0.00005 start fee, so $0.50005 in total. The same run on the Gold tier costs 200 x $0.0010 = $0.20, plus $0.00005, so $0.20005.

Apify platform usage of the run is billed on top of these events. To cap your spend, set a maximum cost per run in Apify: the run then stops cleanly and keeps the listings already saved.

Why pay-per-event?

  • Transparent: you pay for the listings you receive.
  • Predictable: listings x price per result gives your cost before you start.
  • No idle charges: waiting time is not billed as events.

๐Ÿ› ๏ธ How do I use Airbnb Scraper to scrape Airbnb data?

This Airbnb scraper Apify Actor runs in the Apify Console, so there is nothing to install. Here is how to scrape Airbnb data in five steps:

  1. Create a free Apify account.
  2. Open Airbnb Scraper in the Apify Store.
  3. Add places, Airbnb search links, listing links or listing ids, then set dates, guests, filters and extras.
  4. Click Start and watch the log: each saved listing appears as a line.
  5. Open the Output tab, pick a table, and download the data as JSON, CSV or Excel, or fetch it by API.

โฌ‡๏ธ Input

The only required field is Places, search links & listing links (urls), one entry per line. Everything else is optional, and bulk input is supported. Here is a simple example input (20 listings from one city, with full details):

{
"urls": ["Lisbon, Portugal"],
"maxItems": 20,
"adults": 2,
"currency": "USD",
"includeDetails": true
}

Open the Input tab for a full explanation of every field.

Type a place such as Lisbon, Portugal, paste an Airbnb search page link, a listing link or a listing id (digits only). Add the country to avoid a look-alike match: the resolvedPlace field shows which place Airbnb really used. Names in non-Latin scripts are not understood, so write Tokyo, Japan instead, or paste a search link. Anything else is marked as invalid in the Inputs overview and does not stop the run.

Max listings

maxItems is one total across all places and search links, not one per place. 0 means every listing Airbnb shows, which can take a long time for big cities. Listing links are not counted against this limit, but each saved listing is still charged.

Dates, guests and currency

Fill in both checkIn and checkOut (YYYY-MM-DD) to get the exact stay price and only listings that are free on those dates. A single date is ignored, check-out must be after check-in, and a check-in date in the past stops the run with an input message. Guests: adults 1 to 16, children, infants and pets 0 to 10.

{
"urls": ["Lisbon, Portugal"],
"maxItems": 10,
"checkIn": "2027-03-10",
"checkOut": "2027-03-14",
"adults": 2,
"currency": "EUR",
"includeDetails": true,
"includeCalendar": true,
"calendarMonths": 6,
"includeReviews": true,
"maxReviews": 3,
"reviewsSort": "newest"
}

Filters

priceMin and priceMax are per night in the chosen currency (0 = no limit; a minimum above the maximum is rejected). minBedrooms, minBeds and minBathrooms use 0 for any. roomType is one of any, entire_home, private_room, shared_room, hotel_room. Airbnb ignores the shared-room filter for logged-out searches, so check the roomType field of the rows you get.

Extra data

  • Full listing details (includeDetails, default on): one extra page is read per listing. Switch it off for a fast overview.
  • Availability calendar (includeCalendar, calendarMonths 1 to 12, default 12).
  • Guest reviews (includeReviews, maxReviews where 0 means all, reviewsSort: newest, best, highest or lowest).

Proxy configuration

Optional. Runs start without a proxy and switch to a proxy when Airbnb blocks a request. You can also add your own proxy settings.

โฌ†๏ธ Output

Each listing is one row in the default dataset. In the Output tab you get separate tables: Overview, Pricing, Ratings, Hosts, Location, Description, Amenities & rules, Photos, Availability, Reviews and Run info. A Reviews table holds one row per guest review, which is the output you expect from an Airbnb reviews scraper, and the Inputs overview holds one row per input with its status and the number of listings found. A run summary with totals is stored as the SUMMARY record. Export as JSON, CSV, Excel, HTML or XML, and pick or leave out fields before exporting.

Example output (illustrative)

The values below are made up to show the shape of a row (names and numbers are fictional):

{
"id": "12345678",
"url": "https://www.airbnb.com/rooms/12345678",
"title": "Bright apartment near the river",
"roomType": "Entire home/apt",
"personCapacity": 4,
"bedrooms": 2,
"beds": 2,
"bathrooms": 1,
"isSuperHost": true,
"rating": { "guestSatisfaction": 4.9, "reviewsCount": 120, "cleanliness": 4.9, "location": 4.8 },
"price": { "label": "$480 for 4 nights", "perNight": 120, "total": 480, "nights": 4, "checkIn": "2027-03-10", "checkOut": "2027-03-14" },
"host": { "name": "Example Host", "isSuperHost": true, "rating": 4.9, "yearsHosting": 6 },
"availability": { "unavailablePct": 62.5, "nextAvailableDate": "2027-03-01" },
"reviews": [ { "createdAt": "2026-09-02", "rating": 5, "text": "Great stay.", "reviewer": { "name": "Sample Guest" } } ],
"resolvedPlace": "Lisbon, Portugal",
"scrapedAt": "2026-10-18T10:00:00Z"
}

Output fields explained

FieldMeaning
priceLabel, amount, nights, check-in and check-out, perNight, total and originalAmount when Airbnb shows a discount
rating.checkingThe Check-in category rating
availabilityShare of days not bookable (unavailablePct, also for the next 30 and 90 days), next free date, typical minimum nights and the day-by-day list
availableForDates, unavailableReasonFilled only for listing links when you set dates
searchQuery, resolvedPlaceThe input a listing came from and the place Airbnb matched (not set for listing links)
reviews, reviewsTotalReviews read for the listing and the total Airbnb reports
warningsNotes when something could not be read; the row is still saved
scrapedAtUTC time the row was saved

๐Ÿ“… Dates, prices and nights

  • No dates: Airbnb shows prices for a stay length it picks itself. Each row's price states the check-in, check-out and nights it covers, so you always know what you are comparing.
  • Dates set: you get the exact stay price, and search results contain only listings that are free on those dates.
  • Long stays: stays over 90 nights may have no price.
  • Currency: if Airbnb cannot price a place in your currency, the row carries a note.
  • Occupancy: a day is "not bookable" when it is booked or blocked by the host, so treat unavailablePct as an occupancy estimate.
  • Big areas: as an Airbnb crawler it works through the results pages of a place, and large areas are searched in more detail, so runs with maxItems set to 0 take longer.

๐ŸŽฏ Use cases

  • ๐Ÿ’ต Airbnb price tracker: run the same places and dates on a schedule and compare the rows. Every row has a scrapedAt time, so saving each run lets you build an Airbnb price history tracker in a sheet.
  • ๐Ÿ“ˆ Airbnb competitor analysis: compare price, rating, amenities and photos of listings near your own.
  • ๐Ÿงฎ Price comparison: compare Airbnb prices for the same dates across neighbourhoods.
  • ๐Ÿ—บ๏ธ Airbnb market data by city: run one place per input and compare neighbourhoods and cities.
  • ๐Ÿ”ฌ Market research: the rows work as Airbnb market research data that you can combine with your own sources.
  • ๐Ÿ“Š Airbnb occupancy rate by city: use the calendar share of days not bookable as an estimate, not as an exact figure.
  • ๐Ÿ˜๏ธ Short term rental data: collect listings by area and season for your own spreadsheets.
  • ๐Ÿ–๏ธ Vacation rental pricing data: compare nightly prices across places and dates.
  • ๐Ÿ’ฐ Airbnb revenue estimate: combine perNight with unavailablePct in your own sheet. The Actor does not calculate revenue.
  • ๐Ÿฆ Airbnb investment property analysis: compare areas by price, rating and how often listings are booked or blocked, as a starting point for short term rental market analysis.
  • ๐Ÿ’ฌ Airbnb review sentiment analysis: export the Reviews table and run your own text analysis on guest comments.
  • ๐Ÿ—‚๏ธ Airbnb listings dataset: collect a listing table once, or on a schedule, for your own database.
  • ๐Ÿ“š Airbnb listings and reviews dataset: join the main table and the Reviews table on the listing id.
  • ๐Ÿ“‰ Airbnb data analysis: open the export in Excel, Python or a BI tool.
  • ๐Ÿค– Airbnb data for machine learning: feed the structured JSON rows into your own models.
  • ๐Ÿ‘ค Host research: use it as an Airbnb host scraper for public host profile details such as rating, years hosting and response rate.

๐Ÿ”— What are other tools for Airbnb data?

The Actors below scrape other websites, not Airbnb. They are separate tools for other kinds of public data, listed here in case you work with such data as well.

โ“ Frequently asked questions

How does Airbnb Scraper work?

It is a hosted Airbnb web scraper: you give it places, search links or listing links plus optional dates and filters. It reads the public Airbnb pages for each input, saves every listing as soon as it is ready, and returns the data in tables you can export. The Reviews table and the Inputs overview are filled alongside the main results.

Can you scrape Airbnb without a login?

Yes. The Actor reads only public information that any visitor can see, so you do not need an Airbnb account, cookies or API keys. Anything that needs a login, such as messages or bookings, is not available.

Can I scrape many places at once?

Yes. Add as many places, search links and listing links as you like, one per line. maxItems is a single total across all places and search links, so set it high enough, or to 0 for every listing Airbnb shows.

What are the limits of Airbnb Scraper?

Text is returned in English, non-Latin place names are not understood, the shared-room filter is unreliable, and stays over 90 nights may have no price. The run also stops cleanly if your maximum cost per run is reached, and keeps the listings already saved. The Actor is configured with 1024 MB of memory.

Why am I getting fewer results than expected?

Airbnb may simply have no more listings for your filters in the area it searched. Loosen price, bedroom or room type filters, check the spelling of the place, or add the country. The Inputs overview shows how many listings each input found and any problem.

Why does a price cover a different number of nights than I expected?

Without dates, Airbnb picks a stay length itself. Each price states its own check-in, check-out and nights. Set both dates to get exact stay prices.

Can I integrate Airbnb Scraper with other apps?

Yes. Through the Apify platform you can connect it with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets and more, or use webhooks to react when a run finishes. You can also export Airbnb listings to Excel from the dataset.

Can I use Airbnb Scraper as an Airbnb scraper API?

Yes. Start runs and read results with the Apify API or the apify-client packages for Node.js and Python (https://apify.com/data_wiki/airbnb-scraper/api). For Python, the snippet below is a complete Airbnb scraper Python example:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("data_wiki/airbnb-scraper").call(
run_input={"urls": ["Lisbon, Portugal"], "maxItems": 20}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

It also works as an Airbnb listing data API for your own tools: start a run, then read the dataset.

Does Airbnb have a public API?

For Airbnb's own API options and documentation, check Airbnb's official developer information. This Actor is a separate tool, not an official Airbnb API: it reads public pages and returns the data as JSON.

Can I use Airbnb Scraper through MCP?

Yes. The hosted Apify MCP server (https://mcp.apify.com) lets AI agents find an Actor with search-actors, check it with fetch-actor-details and run it with call-actor.

The Actor reads publicly visible information only, but whether your use is allowed depends on Airbnb's terms and on privacy laws such as GDPR and CCPA. Reviews and host details can contain first names and places, which count as personal data, so use them with care. This is not legal advice; you are responsible for your use of the data.

๐Ÿ’ฌ Your feedback and custom solutions

Found a bug or need another field? Open an issue on the Actor's Issues tab. Need a custom solution? Contact hello.datawiki@gmail.com.