Airbnb Reviews Scraper
Pricing
$4.99/month + usage
Go to Apify Store
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
Maintained by Community
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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
maxReviewsPerListingto 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
| Parameter | Type | Default | Description |
|---|---|---|---|
productUrls | array | required | Airbnb listing URLs to scrape reviews from |
maxReviewsPerListing | integer | 0 | Max reviews per listing (0 = all reviews) |
includeHostResponses | boolean | true | Include host response for each review |
proxyConfiguration | object | Proxy 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-scrapernpm cinpm 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
/reviewsURL, then falling back to clicking the "Show all reviews" button - Maximum concurrency is 2 to avoid rate limiting on review pages
- Set
maxReviewsPerListing: 0to scrape all reviews (may take longer for listings with hundreds of reviews)