Airbnb Scraper
Pricing
$14.99/month + usage
Airbnb Scraper
This actor extracts Airbnb property data to help real estate investors and analysts evaluate short-term rental markets. Get details on nightly rates, occupancy signals, and listing density fast.
Pricing
$14.99/month + usage
Rating
0.0
(0)
Developer
Scrapio
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
π β¨ Airbnb Scraper Plus β Listings, Fees, Host & Reviews
Scrape Airbnb stays by location keyword or direct room URL/ID and get clean, structured data: full photo galleries, property specs, itemized fees flattened to numeric columns, host profiles, amenities, ratings, coordinates, and β optionally β individual guest reviews as linked child rows. Results stream to your dataset as they are collected.
What it collects
Per listing (row type = listing):
- Identity:
id,url,title,subtitle - Specs:
roomType,propertyType,bedrooms,beds,bathrooms,maxGuests - Trust flags:
isSuperhost,isGuestFavorite,badges - Ratings:
ratingAverage,reviewsCount, and aratingbreakdown (accuracy,checkin,cleanliness,communication,location,value,guestSatisfaction) - Price (flattened numeric, in the chosen currency):
pricePerNight,basePriceSubtotal,totalStayPrice,cleaningFee,serviceFee,taxes,priceOriginal,priceCurrency,priceQualifier - Derived:
nights,discountPercent,pricePerGuest,distanceKm(from the resolved search center) - Media:
photos(array of{url, caption}),photoCount,thumbnail - Host object:
id,name,url,isSuperhost,isVerified,profilePictureUrl,ratingAverage,ratingCount,reviewsCount,yearsHosting,responseRate,responseTime,about - Content:
description,highlights,amenities(+ groupedamenityGroups,amenitiesCount),sleepingArrangements - Geo:
latitude,longitude,coordinates - Metadata:
checkin,checkout,currency,locale,scrapedAt,registrationNumber(when published)
Per review (row type = review, isChild = true) β when reviews are enabled:
id,parentId,listingId,reviewerName,reviewerId,reviewerLocation,reviewRating,reviewText,reviewDate(ISO),reviewLanguage,hostResponse,reviewPhotos,scrapedAt- Reviews are also mirrored to a per-run named dataset
reviews-<runId>. - Reviews are additional to
maxItemsβmaxItemscaps listings only. Cap reviews per listing withmaxReviewsPerListing.
Unavailable values are emitted as null β never fabricated. Fee coverage depends on Airbnb returning a full price quote for the chosen dates; if a listing has no separate cleaning/service fee or tax line for those dates, those fields are null.
Input
| Field | Type | Notes |
|---|---|---|
locationQueries | array | Cities/keywords, e.g. ["paris", "Austin--TX"] (US: add --ST). |
startUrls | array | Direct room URLs, numeric room IDs, or search URLs. Room URLs/IDs are scraped directly. |
checkin / checkout | date | Absolute YYYY-MM-DD or relative (14 days, 2 weeks). Defaults: 30/34 days out. |
adults / children / infants / pets | integer | Guest configuration used in price quotes. |
maxItems | integer | Listing cap (default 10). Reviews do not count toward it. |
maxPages | integer | Optional cap on search pages. |
strictGeo | boolean | Keep only listings whose coordinates fall in the resolved area. |
includeDetails | boolean | Fetch host/amenities/photos/fees per listing (default true). Room URLs/IDs always fetch details. |
includeReviews | boolean | Fetch individual reviews as child rows (default false). |
maxReviewsPerListing | integer | Cap reviews per listing (0 = unlimited). |
minPrice / maxPrice | integer | Nightly-price filters (0 = off). |
roomType | select | any / entire_home / private_room / shared_room / hotel_room. |
superhostOnly / guestFavoriteOnly | boolean | Trust-flag filters. |
minRating / minReviews | number/integer | Quality filters (0 = off). |
keywords / excludeKeywords | array | Title/description include/exclude filters. |
currency / locale | select | Currency and language/region. |
state / country | string | Optional disambiguation of the location. |
aiEnhancement / aiModel / aiApiKey | AI | Optional review analysis (sentiment/topics/language). Requires reviews enabled + a key. |
proxyConfiguration | proxy | Starts direct, escalates to datacenter then residential on blocks. |
How it works
- Search pages are parsed from Airbnb's embedded state JSON to get listing IDs plus coordinates, specs, ratings, badges, thumbnails and the search price.
- For each listing (when
includeDetailsis on) a single StaysPdpSections GraphQL request returns the host profile, amenities, full photo gallery, description, sleeping arrangements and the itemized price breakdown. - When
includeReviewsis on, StaysPdpReviewsQuery is paginated to collect individual reviews, emitted as child rows linked to the listing. - Prices are flattened to numeric columns; missing values stay
null.
Output views
The default dataset view is a table with identity/type first, then specs, trust flags, ratings, flattened numeric price columns, media/host counts, coordinates, review columns (for child rows), and scrapedAt. Export as JSON, CSV, or Excel from the Dataset tab.
Billing
Charged per result row (row_result) β one charge per listing, and one per review row when reviews are enabled.
Local run
Create storage/key_value_stores/default/INPUT.json:
{"locationQueries": ["Austin--TX"],"maxItems": 3,"checkin": "30 days","checkout": "34 days","includeDetails": true,"includeReviews": true,"maxReviewsPerListing": 10,"currency": "USD","locale": "en-US","proxyConfiguration": { "useApifyProxy": false }}
Then from the actor folder: python -m src. Results land in storage/datasets/default.
SEO keywords
Airbnb scraper, Airbnb listings scraper, Airbnb reviews scraper, Airbnb host scraper, Airbnb price scraper, Airbnb fees scraper, Airbnb amenities scraper, Airbnb data extraction, Apify Airbnb actor, Airbnb room URL scraper, Airbnb market research, Airbnb short-term rental data, Airbnb API alternative, Airbnb dataset export.