Airbnb Reviews Scraper — Ratings, Sentiment & Insights
Pricing
from $2.60 / 1,000 results
Airbnb Reviews Scraper — Ratings, Sentiment & Insights
Scrape Airbnb reviews by city, URL, or ID — text, ratings, dates, reviewer & host, host replies, media, trip type, plus free sentiment and a per-listing insights rollup (category ratings, top keywords, response rate). Part of the Airbnb suite (Search, Listing Details, Revenue Calculator).
Pricing
from $2.60 / 1,000 results
Rating
5.0
(1)
Developer
Malik Mazhar Ali
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Export every guest review from any Airbnb listing — or an entire city — with full text, ratings, dates, reviewer details, host replies, photos, trip type, and language. Then go further than any other scraper: built-in sentiment, aspect tags, and a per-listing insights rollup (category sub-ratings, rating distribution, top keywords, review velocity, host-response rate). All in clean, stable JSON.
🏠 Part of the Airbnb suite — works alongside the Airbnb Search Scraper, Listing Details Scraper, and Revenue & Occupancy Calculator.
Why this one — more data, ~20% cheaper
| Capability | Typical Airbnb review scrapers | This actor |
|---|---|---|
| Review text, rating, date | ✅ | ✅ |
| Reviewer name & photo | ✅ | ✅ |
| Reviewer location | partial | ✅ (cleaned) |
| Reviewer tenure ("4 years on Airbnb") | ❌ | ✅ |
| Host reply + host details | ✅ | ✅ |
| Review photos / media | some | ✅ |
| Trip type (group, family, solo…) | ❌ | ✅ |
| Language + localized text | some | ✅ |
| Sentiment + score (free, no API key) | rare/opt-in | ✅ default |
| Aspect tags (cleanliness, location…) | ❌ | ✅ |
| Scrape by CITY (no URLs needed) | ❌ nobody | ✅ |
| Per-listing insights rollup | ❌ nobody | ✅ |
| ↳ category sub-ratings (6) | ❌ | ✅ |
| ↳ rating distribution (5★→1★) | ❌ | ✅ |
| ↳ sentiment split % | ❌ | ✅ |
| ↳ top positive / negative keywords | ❌ | ✅ |
| ↳ review velocity & host-response rate | ❌ | ✅ |
| Price per 1,000 reviews (Bronze) | ~$4.10 (market leader) | ~$3.30 |
~15 data dimensions vs the usual ~8 — for less money. Reliable by design (residential proxy + Airbnb's own reviews API, paginated).
Quick start
Pick any one input:
- City — type
Austin, TX(we auto-find the top listings and scrape their reviews). No URLs required — unique to this actor. - Listing URLs — paste
https://www.airbnb.com/rooms/<id>. - Listing IDs — paste numeric IDs.
Then set Max reviews per listing (0 = all), Sort (most recent / relevant / highest / lowest), optional Since date for incremental runs, and Start.
Input
| Field | Type | Description |
|---|---|---|
location | string | City to scrape (auto-finds listings). |
listingUrls | array | Airbnb room URLs. |
listingIds | array | Numeric listing IDs. |
maxListings | integer | City mode: how many listings (default 10). |
maxReviewsPerListing | integer | Per listing; 0 = all (default 100). |
sortBy | enum | most-recent / most-relevant / highest-rated / lowest-rated. |
sinceDate | string | Only reviews on/after YYYY-MM-DD (great for incremental). |
locale | enum | Language/region for localized text. |
includeInsights | boolean | Add the per-listing rollup (default true, free). |
webhookUrl | string | POST results when the run finishes. |
proxyConfiguration | object | Residential (US) by default — recommended. |
Provide at least one of location, listingUrls, or listingIds.
Output
Two record types in one dataset (filter on recordType):
review — one per guest review:
reviewId, rating, comment, localizedComment, language, date (ISO) + dateFormatted, reviewerName, reviewerLocation, reviewerTenure, reviewerPhotoUrl, hostReply, hostName, tripType, reviewHighlight, highlightedSentences[], media[], sentiment, sentimentScore, aspects[], listingId, listingUrl, scrapedAt.
listing_insights — one per listing (when includeInsights):
totalReviewsAvailable, reviewsAnalyzed, avgRating, categoryRatings{cleanliness,accuracy,check-in,communication,location,value}, ratingDistribution{5..1}, sentimentSplitPct{positive,neutral,negative}, topPositiveKeywords[], topNegativeKeywords[], languagesBreakdown, hostResponseRatePct, reviewsPerMonth, firstReviewDate, lastReviewDate.
All fields always present (null/empty when unavailable). Full sample: docs/example-output-reviews.json.
Run via API
curl -X POST "https://api.apify.com/v2/acts/malikgen~airbnb-reviews-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"listingUrls":["https://www.airbnb.com/rooms/12937"],"maxReviewsPerListing":100}'
Works with the Apify clients, n8n, Make, and Zapier. Set webhookUrl to push results into your workflow.
Pricing
Pay per review (set in Console). Headline ≈ $3.30 / 1,000 reviews (Bronze) — about 20% under the market leader, with more fields. The per-listing insights rollup is included free.
FAQ
Can I really scrape a whole city? Yes — enter a city and we find the listings and pull their reviews automatically. No other Airbnb reviews scraper does this.
Do I need an API key for sentiment? No. Sentiment, scores, and aspect tags are computed in-actor at no extra cost.
How do incremental runs work? Set sortBy: most-recent + sinceDate — only newer reviews are returned. Pair with webhookUrl for ongoing reputation monitoring.
Why residential proxy? Airbnb is Cloudflare-protected and reviews load via a warmed session. Leave the default proxy on.
🏠 The Airbnb suite
| Actor | Use it for |
|---|---|
| Airbnb Search Scraper | Find listings by city — price, rating, coordinates, superhost. |
| Airbnb Listing Details Scraper | Full property detail from URLs — description, amenities, host, photos. |
| Airbnb Revenue & Occupancy Calculator | Occupancy %, ADR, estimated revenue — the AirDNA alternative. |
| Airbnb Reviews Scraper (this actor) | Reviews + sentiment + per-listing insights. |
Changelog
- 0.1 — Initial release. City / URL / ID input; paginated
StaysPdpReviewsQuery; per-review sentiment + aspects; per-listing insights rollup (category ratings, distribution, sentiment split, keywords, velocity, response rate); reviewer location/tenure split; incrementalsinceDate.
Not affiliated with, endorsed by, or sponsored by Airbnb. Scrapes publicly available review data for legitimate research, sentiment analysis, and reputation monitoring. Respect Airbnb's Terms of Service and applicable laws.