Airbnb Listing & Price Scraper avatar

Airbnb Listing & Price Scraper

Pricing

from $5.00 / 1,000 qualified airbnb listings

Go to Apify Store
Airbnb Listing & Price Scraper

Airbnb Listing & Price Scraper

Scrape public Airbnb listings by destination, search URL, or direct listing URL and extract structured listing details and stay prices.

Pricing

from $5.00 / 1,000 qualified airbnb listings

Rating

0.0

(0)

Developer

Monkey D. Scraping

Monkey D. Scraping

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Share

Airbnb Scraper — Listings, Prices & Property Details

Extract public Airbnb listings from cities, regions, keywords, search URLs, or direct listing URLs. Get structured property details, stay prices, ratings, reviews, amenities, photos, host information, house rules, coordinates, and more in one dataset.

This Actor returns listing records and observed stay prices. It does not return a day-by-day availability calendar or measure occupancy.

This is an on-demand Airbnb listing scraper for market research, short-term-rental analysis, pricing research, real-estate analysis, travel products, and data workflows. No Airbnb account or API key is required.

Why use this Airbnb scraper?

  • Search by location or keyword: scrape listings for a city, region, neighborhood, or public Airbnb search phrase.
  • Direct URL mode: paste Airbnb search URLs or individual /rooms/ URLs when you already have a shortlist.
  • Contextual stay prices: provide check-in, check-out, guests, and currency to collect the price shown for that stay.
  • Rich listing details: extract property type, room type, capacity, bedrooms, beds, bathrooms, description, address, and coordinates when publicly available.
  • Ratings and trust signals: collect the overall rating, review count, badges, and host details including Superhost or verification signals when exposed.
  • Amenities and photos: return structured amenities, image URLs, thumbnails, and photo counts.
  • One competitive workflow: the Actor discovers listings and enriches each result in the same run; there is no separate light/details mode to configure.
  • Automation-ready output: export JSON, CSV, Excel, XML, or connect the dataset to an API, webhook, n8n, Make, or your own data warehouse.

What data does it extract?

Each dataset item represents an observed Airbnb listing or a partial/error record.

FieldDescription
listingId, listingUrlListing identifier and public Airbnb URL
title, descriptionListing title and public description
propertyType, roomTypeProperty and accommodation type
location, address, coordinatesPublic location data and latitude/longitude when available
personCapacity, bedrooms, beds, bathroomsCapacity and room configuration
price, totalPrice, currencyObserved stay price and structured price details
checkIn, checkOut, guestsSearch context used for the price quote
rating, reviewCountOverall guest rating and review count
badgesPublic listing quality badges
amenitiesStructured amenity groups and availability
images, photoCountPublic photo URLs and image count
hostPublic host profile signals and statistics when available
houseRulesPublic house rules exposed on the listing
sourceUrl, observedAt, status, errorTraceability and result status

Fields that Airbnb does not expose for a listing remain null or empty. Partial records are retained so a run remains useful even when individual pages provide different levels of detail.

Quick start and input examples

Get your first listing

Keep one destination and a limit of one listing for the first run:

{
"locationQueries": ["Rome, Italy"],
"maxListings": 1
}

The Console prefill uses one listing; API calls that omit maxListings default to ten. After the run, check status, error, price, totalPrice and billingEligible. A successful run can contain a partial record without a usable price.

For a specific stay, set both future check-in and check-out dates in the input form, then choose guests and currency. Without dates, a price is not a quote for your intended stay.

Use a search URL instead

{
"locationQueries": [],
"startUrls": ["https://www.airbnb.com/s/Rome/homes"],
"maxListings": 1
}

Search URLs are strings. For individual properties, use listingUrls with objects containing a url field and your actual public Airbnb /rooms/ URL. Clear the prefilled destination when using URLs alone.

The compatibility field search accepts the same kind of location strings as locationQueries. If several source fields are populated, the Actor combines them; they do not override each other. If all source fields are empty, it falls back to Rome, Italy.

Repeat a useful check

Save a configuration as a private Saved Task after verifying its output. Keep dates, guests and currency consistent when comparing prices, and refresh dates before they expire. Export the dataset to CSV or JSON, or retrieve it through the Apify API for your own comparison workflow. Repeated runs produce observations; they do not generate automatic price-change alerts.

Common use cases

Short-term-rental market research

Compare listing supply, prices, ratings, amenities, and room configurations across neighborhoods or destinations.

Dynamic pricing and revenue analysis

Collect comparable listings for defined dates and guest counts to support nightly-rate benchmarking and pricing models.

Airbnb competitor analysis

Build structured datasets of nearby properties, host signals, reviews, photos, amenities, and public positioning.

Real-estate and investment research

Analyze accommodation density, property types, capacity, ratings, and observed prices before evaluating a market.

Travel, aggregation, and data products

Feed fresh public listing data into dashboards, search tools, internal databases, lead qualification workflows, or BI pipelines.

Real output excerpt

Reduced record from an owner verification run observed on 20 October 2026 for two guests, checking in on 10 November and out on 12 November 2026. Values are retained from that observation; this is not a current offer or a guarantee of availability. Other fields are omitted for readability.

{
"recordType": "listing",
"listingId": "802169540392726344",
"listingUrl": "https://www.airbnb.com/rooms/802169540392726344",
"status": "success",
"checkIn": "2026-11-10",
"checkOut": "2026-11-12",
"guests": 2,
"requestedCurrency": "EUR",
"currency": "EUR",
"totalPrice": 267,
"photoCount": 6,
"observedAt": "2026-10-20T15:28:35.452Z",
"billingEligible": true
}

totalPrice was an explicit EUR 267 total for that two-night context. photoCount counts six retained photo URLs, not the entire gallery. billingEligible indicates that the result met the qualification rules; it does not confirm customer payment. Missing prices and unavailable stays must not be interpreted as booked dates.

Pricing

The configured rates are $0.005 per qualified listing, plus $0.00005 per GB for the Actor start (minimum one start event). At the default 2 GB, one qualified listing incurs $0.0051 in event fees, plus platform usage and any proxy costs. This is not an all-inclusive run price. Check the Pricing tab for your active rates and set a spending limit before running.

Only successful listings with a title and a positive, confidently qualified price are eligible for the result fee. For dated stays, the price must be an explicit total for the requested number of nights. Without dates, an explicit nightly price or total may qualify. Errors, partial results and unqualified starting prices remain diagnostic records without a result fee. billingEligible indicates eligibility, not confirmation of a payment; free or usage-only runs do not charge a result fee. Duplicate useful records for the same listing, dates, guests and currency are suppressed within a run. Platform usage may still apply to runs with no qualified results.

Proxy and access notes

Direct access is used by default to keep runs competitive. For difficult or high-volume runs, you can enable Apify Proxy and optionally select proxy groups or a country. Proxy usage may add platform costs.

Airbnb can vary content, prices, availability, and result counts by location, dates, guests, currency, and session. Prices are observations from the current run, not guaranteed future booking prices. The Actor does not use login credentials, access private data, or make reservations.

Calendar availability

This Actor returns contextual stay prices for the dates supplied in the input. Day-by-day calendar availability is not included in the current public version.

totalPrice is populated only when Airbnb explicitly identifies the amount as a total. Nightly or indicative prices remain in the structured price field; the Actor does not multiply them into a booking quote. If a listing page omits a price, an explicitly qualified price from the same listing's search result may be used with the original dates and guest context.

FAQ

Do I need an Airbnb account or API key?
No. The Actor is designed to collect publicly visible listing information without Airbnb credentials.

Can I scrape a single Airbnb listing?
Yes. Use listingUrls with one or more public /rooms/ URLs.

Can I scrape an entire city?
Use locationQueries or a public Airbnb search URL to discover accessible listings up to maxListings. Complete city coverage is not guaranteed; results depend on what Airbnb exposes during the run.

Why should I provide dates?
Dates allow the Actor to request a contextual price for a defined stay. Without dates, Airbnb may expose only an indicative or starting price.

Are calendar dates included?
No. The current Actor focuses on listing discovery, property details, and contextual stay pricing rather than a day-by-day availability calendar.

What happens when a field is missing?
The Actor keeps the record and returns null or an empty array for data not publicly exposed on that page. Amenities are taken from identified amenity sections only; suggested destinations, house rules and review categories are excluded. For an individual amenity, available: false means explicitly unavailable and available: null means the source did not specify availability. An empty amenities array does not prove that the property has no amenities.

Can I export the results?
Yes. Apify datasets can be downloaded as JSON, CSV, Excel, XML, or consumed through the API and integrations.

Support

If results are partial or prices are missing, include the run URL, input mode, requested dates and currency in the Actor Issues tab. Remove private information before sharing. A missing quote or unavailable stay does not establish that a property is booked.

Responsible use

Use the Actor only for lawful purposes and respect Airbnb's terms, applicable regulations, robots directives, privacy requirements, and reasonable request rates. The Actor is intended for publicly available information and does not bypass authentication or access private areas.

More Actors from this publisher

ActorWhen to use it
Google Trends Keyword HistoryResearch relative search interest for destinations or rental topics over a selected country and period
Website SEO Audit & Contact ScraperReview visible SEO and website signals on public rental or agency websites

Photo coverage

images contains observed property-photo URLs, excluding recognized profile, review and recommendation contexts. Known Airbnb CDN resize variants are deduplicated. photoCount counts the retained URLs, not the total gallery size advertised by Airbnb; it does not prove that every property photo was retrieved. Unknown URL parameters are preserved, so distinct signed URLs may remain.