Retrieving digital assets...
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.
99%
30s
500+
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.
maxReviewsPerListing to cap how many reviews to extract per listing (0 = all)| 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) |
{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxReviewsPerListing": 10,
"includeHostResponses": true
}
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."
}
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"
}
cd airbnb-reviews-scraper
npm ci
npm start
Output will be in storage/datasets/default/.
/reviews URL, then falling back to clicking the "Show all reviews" buttonmaxReviewsPerListing: 0 to scrape all reviews (may take longer for listings with hundreds of reviews)Explore more automation tools and scrapers to supercharge your data acquisition workflow.