Airbnb Listing & Price Scraper
Pricing
from $5.00 / 1,000 qualified airbnb listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
2 days ago
Last modified
Categories
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.
| Field | Description |
|---|---|
listingId, listingUrl | Listing identifier and public Airbnb URL |
title, description | Listing title and public description |
propertyType, roomType | Property and accommodation type |
location, address, coordinates | Public location data and latitude/longitude when available |
personCapacity, bedrooms, beds, bathrooms | Capacity and room configuration |
price, totalPrice, currency | Observed stay price and structured price details |
checkIn, checkOut, guests | Search context used for the price quote |
rating, reviewCount | Overall guest rating and review count |
badges | Public listing quality badges |
amenities | Structured amenity groups and availability |
images, photoCount | Public photo URLs and image count |
host | Public host profile signals and statistics when available |
houseRules | Public house rules exposed on the listing |
sourceUrl, observedAt, status, error | Traceability 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
| Actor | When to use it |
|---|---|
| Google Trends Keyword History | Research relative search interest for destinations or rental topics over a selected country and period |
| Website SEO Audit & Contact Scraper | Review 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.