Airbnb Reviews Scraper & Sentiment Analyzer
Pricing
Pay per usage
Airbnb Reviews Scraper & Sentiment Analyzer
Scrape all reviews from any Airbnb listing worldwide. Includes built-in sentiment analysis (positive/negative/neutral/mixed), topic detection (cleanliness, location, value, etc.), and reviewer details. No external API costs.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Luis Segura
Actor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape guest reviews from any Airbnb listing worldwide and get instant sentiment analysis with every review. No external API costs, no ChatGPT fees — sentiment scoring and topic detection are built-in.
What does this Actor do?
This Actor extracts all guest reviews from one or more Airbnb listings and enriches each review with:
- Sentiment score (-5 to +5) — how positive or negative the review is
- Sentiment label —
positive,negative,neutral, ormixed - Topic detection — automatically tags what the review is about: cleanliness, location, value, amenities, communication, check-in, comfort, accuracy
Works for any listing in any country. Supports reviews in English, Spanish, French, Portuguese, German, and Italian.
Why use this instead of other review scrapers?
| Feature | This Actor | Others |
|---|---|---|
| Sentiment analysis | Built-in (free) | Requires GPT-4 ($$$) or manual work |
| Topic detection | 8 categories, multilingual | None or basic |
| Cost per review | ~$0.001 | $0.01-0.05 with AI APIs |
| Languages | 6 languages | English only |
| Host responses | Included | Often missing |
Use cases
- Property managers — Monitor guest satisfaction across your portfolio. Detect negative trends (cleanliness, communication) before they hurt your ratings.
- Real estate investors — Analyze reviews to assess listing quality before purchasing a short-term rental property.
- Market researchers — Compare sentiment across neighborhoods, cities, or property types. Find underserved markets.
- Competitor analysis — Benchmark your reviews against competitors. See what guests praise or complain about.
- Dynamic pricing — Correlate sentiment trends with pricing and occupancy data.
- Travel agencies — Curate listings with consistently positive reviews for your clients.
Input
Provide one or more Airbnb listing URLs or IDs:
{"listingUrls": ["https://www.airbnb.com/rooms/23137877","https://www.airbnb.com/rooms/45678901","12345678"],"maxReviewsPerListing": 100,"includeHostResponse": true,"sortBy": "MOST_RECENT"}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
listingUrls | Array | Required | Airbnb listing URLs or numeric IDs |
maxReviewsPerListing | Number | 100 | Max reviews per listing (0 = all) |
includeHostResponse | Boolean | true | Include host reply to each review |
sortBy | String | MOST_RECENT | Sort order: MOST_RECENT or MOST_RELEVANT |
language | String | (all) | Filter by language code (en, es, fr, etc.) |
requestsPerSecond | Number | 1.5 | Rate limit (lower = safer) |
Output
Each review is returned as a JSON object in the Apify Dataset:
{"listingId": "23137877","listingUrl": "https://www.airbnb.com/rooms/23137877","reviewId": "1234567890","reviewerName": "Maria","reviewerId": "98765432","date": "2025-12-15","comments": "Amazing place! The pool was spotless and the host was incredibly responsive. A bit overpriced for the area but the location makes up for it.","rating": 5,"language": "en","hostResponse": "Thank you Maria! We're glad you enjoyed your stay.","hostResponseDate": "2025-12-16","sentimentScore": 2.35,"sentimentLabel": "positive","sentimentTopics": ["cleanliness", "communication", "value", "location"],"scrapedAt": "2026-04-05T14:30:00.000Z"}
Output fields
| Field | Description |
|---|---|
sentimentScore | Normalized score from -5 (very negative) to +5 (very positive) |
sentimentLabel | Overall classification: positive, negative, neutral, or mixed |
sentimentTopics | What the review discusses: cleanliness, location, value, amenities, communication, checkin, comfort, accuracy |
rating | Star rating given by the guest (1-5) |
comments | Full review text |
hostResponse | Host's reply (if enabled and available) |
Sentiment analysis details
The sentiment engine uses AFINN lexicon-based analysis with a custom Airbnb-specific dictionary (58 extra terms like "superhost", "cockroach", "breathtaking", etc.).
How scoring works:
- Each word in the review is scored against the lexicon
- The score is normalized by review length to produce a -5 to +5 comparative score
- Reviews with strong positive AND negative words are classified as "mixed"
Topic detection scans for category-specific keywords in 6 languages, covering 8 Airbnb-relevant categories.
This approach has two key advantages over LLM-based analysis:
- Zero latency — analysis runs instantly, no API calls
- Zero cost — no per-token charges from OpenAI or similar
How much does it cost?
The Actor uses pay-per-event pricing. You are charged per review scraped. Platform costs (compute, proxy, storage) are included.
Typical cost: ~$1-3 per 1,000 reviews depending on listing complexity and rate limiting.
Tips for best results
- Start with
maxReviewsPerListing: 50to test, then increase - For listings with 1,000+ reviews, set
requestsPerSecond: 1to avoid rate limiting - Export data as CSV or Excel from the Apify Dataset for further analysis
- Use the
languagefilter if you only need reviews in one language - Combine with calendar/pricing data for complete market intelligence
Integrations
Export your data to Google Sheets, Slack, Zapier, or any webhook using Apify integrations. Common workflows:
- Google Sheets — Auto-update a spreadsheet with new reviews weekly
- Slack alerts — Get notified when a competitor receives negative reviews
- Zapier/Make — Trigger workflows based on sentiment changes
Changelog
v1.0.0 (2026-04-05)
- Initial release
- Sentiment analysis with AFINN + custom Airbnb lexicon
- Topic detection across 8 categories in 6 languages
- Adaptive rate limiting with automatic session refresh
- Pay-per-event pricing