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
4
Total users
2
Monthly active users
12 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
