Airbnb Reviews Scraper avatar

Airbnb Reviews Scraper

Pricing

$4.99/month + usage

Go to Apify Store
Airbnb Reviews Scraper

Airbnb Reviews Scraper

Scrape all reviews from Airbnb listings with full pagination, category ratings, star distribution, and host responses. Provide one or more listing URLs and get every review in structured format.

Pricing

$4.99/month + usage

Rating

0.0

(0)

Developer

codingfrontend

codingfrontend

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape all reviews from Airbnb listings with full pagination, category ratings, star distribution, and host responses. Provide one or more listing URLs and get every review in structured format.

Features

  • Full Pagination: Scrolls through the reviews modal to load all reviews (infinite scroll)
  • Rating Summary: Overall rating, star distribution (5★ to 1★ percentages), and category ratings (cleanliness, accuracy, check-in, communication, location, value)
  • Host Responses: Optionally include the host's response to each review
  • Per-Listing Limit: Set maxReviewsPerListing to cap how many reviews to extract per listing (0 = all)
  • Multiple Listings: Provide multiple Airbnb URLs to scrape reviews from all of them in one run

Input Parameters

ParameterTypeDefaultDescription
productUrlsarrayrequiredAirbnb listing URLs to scrape reviews from
maxReviewsPerListinginteger0Max reviews per listing (0 = all reviews)
includeHostResponsesbooleantrueInclude host response for each review
proxyConfigurationobjectProxy settings (residential proxies recommended)

Example Input

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxReviewsPerListing": 10,
"includeHostResponses": true
}

Example Output

Each review is pushed as a separate dataset row:

{
"listingUrl": "https://www.airbnb.com/rooms/1104883308160967951",
"listingTitle": "Luxurious 2BR Apartment with Stunning City Views",
"overallRating": 4.95,
"totalReviewCount": 234,
"starDistribution": {
"5_star": 92,
"4_star": 6,
"3_star": 1,
"2_star": 0,
"1_star": 1
},
"categoryRatings": {
"cleanliness": 5.0,
"accuracy": 4.9,
"checkIn": 5.0,
"communication": 5.0,
"location": 4.8,
"value": 4.7
},
"reviewIndex": 1,
"authorName": "Sarah",
"authorInfo": "London, United Kingdom",
"authorAvatar": "https://a0.muscache.com/im/pictures/user/...",
"rating": 5,
"date": "January 2025",
"stayType": "Stayed 3 nights",
"reviewText": "Absolutely stunning apartment with incredible views. The host was very responsive and the check-in process was seamless. Would definitely recommend!",
"hostResponse": "Thank you so much Sarah! We're glad you enjoyed your stay and hope to welcome you back soon."
}

No Reviews Output

If a listing has no reviews:

{
"listingUrl": "https://www.airbnb.com/rooms/12345678",
"listingTitle": "New Cozy Studio",
"overallRating": null,
"totalReviewCount": 0,
"message": "No reviews found for this listing"
}

Running Locally

cd airbnb-reviews-scraper
npm ci
npm start

Output will be in storage/datasets/default/.

Notes

  • Residential proxies are strongly recommended — Airbnb actively blocks datacenter IPs
  • The scraper opens the reviews modal and scrolls to load all reviews via infinite scroll
  • Two strategies are used to open the modal: navigating to /reviews URL, then falling back to clicking the "Show all reviews" button
  • Maximum concurrency is 2 to avoid rate limiting on review pages
  • Set maxReviewsPerListing: 0 to scrape all reviews (may take longer for listings with hundreds of reviews)