Airbnb Scraper avatar

Airbnb Scraper

Pricing

$14.99/month + usage

Go to Apify Store
Airbnb Scraper

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

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

0

Monthly active users

5 days ago

Last modified

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 a rating breakdown (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 (+ grouped amenityGroups, 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 β€” maxItems caps listings only. Cap reviews per listing with maxReviewsPerListing.

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

FieldTypeNotes
locationQueriesarrayCities/keywords, e.g. ["paris", "Austin--TX"] (US: add --ST).
startUrlsarrayDirect room URLs, numeric room IDs, or search URLs. Room URLs/IDs are scraped directly.
checkin / checkoutdateAbsolute YYYY-MM-DD or relative (14 days, 2 weeks). Defaults: 30/34 days out.
adults / children / infants / petsintegerGuest configuration used in price quotes.
maxItemsintegerListing cap (default 10). Reviews do not count toward it.
maxPagesintegerOptional cap on search pages.
strictGeobooleanKeep only listings whose coordinates fall in the resolved area.
includeDetailsbooleanFetch host/amenities/photos/fees per listing (default true). Room URLs/IDs always fetch details.
includeReviewsbooleanFetch individual reviews as child rows (default false).
maxReviewsPerListingintegerCap reviews per listing (0 = unlimited).
minPrice / maxPriceintegerNightly-price filters (0 = off).
roomTypeselectany / entire_home / private_room / shared_room / hotel_room.
superhostOnly / guestFavoriteOnlybooleanTrust-flag filters.
minRating / minReviewsnumber/integerQuality filters (0 = off).
keywords / excludeKeywordsarrayTitle/description include/exclude filters.
currency / localeselectCurrency and language/region.
state / countrystringOptional disambiguation of the location.
aiEnhancement / aiModel / aiApiKeyAIOptional review analysis (sentiment/topics/language). Requires reviews enabled + a key.
proxyConfigurationproxyStarts direct, escalates to datacenter then residential on blocks.

How it works

  1. Search pages are parsed from Airbnb's embedded state JSON to get listing IDs plus coordinates, specs, ratings, badges, thumbnails and the search price.
  2. For each listing (when includeDetails is on) a single StaysPdpSections GraphQL request returns the host profile, amenities, full photo gallery, description, sleeping arrangements and the itemized price breakdown.
  3. When includeReviews is on, StaysPdpReviewsQuery is paginated to collect individual reviews, emitted as child rows linked to the listing.
  4. 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.