Airbnb Reviews Scraper — Most Comprehensive
Pricing
Pay per event
Airbnb Reviews Scraper — Most Comprehensive
From $0.30 per 1,000 reviews — 16x cheaper than the $5/1k incumbent. Star rating, full text, translations, host responses, dates, review tags. Keyword + date filters with early stop, GDPR-safe PII strip, and a new-review monitor with Slack/email/webhook alerts. No login or API key.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🏠 Airbnb Reviews Scraper — Most Comprehensive (+ New-Review Monitor)
Scrape every review from any Airbnb listing — per-review star rating, full text, automatic translations, host responses, dates, reviewer context, photos, and the listing's review tags — for $0.30 per 1,000 reviews. Then schedule it as a monitor that pings Slack, email, or a webhook the moment a new review lands.
Why this one? (honest comparison)
| This actor | Leading Airbnb reviews scraper | Budget clone | |
|---|---|---|---|
| Price per 1,000 reviews | $0.30 | $5.00 | low-cost, but see below |
| Per-review star rating | ✅ | ✅ | ✅ |
| Host responses (+ responded date) | ✅ | ✅ | — not documented |
| Translated text (Airbnb's own translation) | ✅ | ✅ | — not documented |
| Review tags ("Hot tub", "Cleanliness" + counts) | ✅ | — | — |
| Keyword filter | ✅ | — | — |
| Date-range filter with early stop (don't pay for pages you skip) | ✅ | — | — |
| Min/max rating filter (complaints mining) | ✅ | — | — |
| New-review monitor mode + Slack/email/webhook alerts | ✅ | — | — |
GDPR stripPersonalData toggle (default ON) | ✅ | — | — |
Raw API object passthrough (includeRaw) | ✅ | — | — |
| Failure handling | per-page retries with fresh proxy sessions; one dead listing never kills the run | n/a | n/a |
Competitor columns are based on their public store pages as of June 2026 — check them yourself. A cheap clone already exists and sits at single-digit monthly users: price alone doesn't win this niche. Features are what keep a reviews pipeline alive — filters, translations, host responses, monitoring, and not crashing on a dead listing. That's the gap this actor fills, at 1/16th of the leader's price.
What does Airbnb Reviews Scraper do?
Give it one or more Airbnb listing URLs (any country domain) or bare listing IDs and it returns one clean row per review, exportable to JSON, CSV, Excel, or your app via API. No login, no Airbnb API key, no browser automation — it reads the same public reviews endpoint the Airbnb page itself uses, so it's fast (~50 reviews per request) and cheap.
- ⭐ Per-review star rating (1–5) — not just the listing average.
- 📝 Full review text — plain text and original HTML, plus Airbnb's own translation when the review isn't in English (
text_translated,needs_translation, disclaimer). - 💬 Host responses — full text + the responded date, plain and HTML.
- 📅 Exact ISO timestamps (
created_at) plus Airbnb's humanized date. - 🧳 Stay & reviewer context — reviewer location / tenure on Airbnb, stay context, superhost flags.
- 🏷️ Listing review tags — Airbnb's aggregated themes ("Hot tub" ×157, "Cleanliness" ×62…) with counts, on every row.
- 📸 Review photos where guests attached them.
- 🔎 Filters that save you money — keyword, min/max rating, and a date-range filter that stops paginating early (reviews come newest-first, so
dateFrommeans fewer requests, not just fewer rows). - 🔔 Monitor mode — schedule it and get Slack / email / webhook alerts for every new review on the listings you manage or compete with.
- 🛡️ GDPR-safe by default —
stripPersonalData(ON) removes reviewer name, ID, profile URL, and avatar while keeping all the review substance.
Who is it for?
- 🏘️ Property managers & hosts watching their own (and competitors') listings for new reviews and complaints.
- 📊 Market researchers / data teams mining guest sentiment at scale (the per-review rating + ISO dates make time-series trivial).
- 🤖 AI builders feeding review corpora into LLM sentiment, summarization, or RAG pipelines (
includeRawfuture-proofs your schema). - 💼 Revenue managers & investors doing due diligence on a listing or a whole micro-market before buying/pricing.
- 🛎️ Reputation tools that need host-response coverage rates and response-time stats.
How to use it
- Click Try for free.
- Paste one or more listing URLs (e.g.
https://www.airbnb.com/rooms/20669368) — any country domain works, or just the numeric ID. - (Optional) set filters:
dateFrom,keyword,minRating/maxRating,maxReviews. - Click Start, open the Dataset tab, export.
- (Optional) turn on monitorMode, attach an Apify Schedule, add a Slack/webhook/email channel — and get pinged on every new review.
Quick start
{ "listingUrls": ["https://www.airbnb.com/rooms/20669368"], "maxReviews": 50 }
Complaints mining (what goes wrong at this property?)
{"listingUrls": ["https://www.airbnb.com/rooms/20669368"],"maxRating": 3,"maxReviews": 0}
New-review monitor (the recurring play)
{"listingUrls": ["https://www.airbnb.com/rooms/20669368", "https://www.airbnb.com/rooms/1206441548197247311"],"monitorMode": true,"alertOnNewReview": true,"slackWebhookUrl": "https://hooks.slack.com/services/…"}
Only reviews since January (early-stop = fewer requests)
{"listingUrls": ["https://www.airbnb.com/rooms/20669368"],"dateFrom": "2026-01-01","maxReviews": 0}
Input
| Field | What it does |
|---|---|
listingUrls | Airbnb listing URLs (any country domain) or numeric IDs — one row per review |
maxReviews | cap per listing (default 50; 0 = every review) |
sortBy | newest · oldest · rating-high · rating-low (output order) |
dateFrom | only reviews on/after this date — stops paginating early |
dateTo | only reviews on/before this date |
keyword | only reviews mentioning this word/phrase (text, translation, or host response) |
minRating / maxRating | per-review star-rating band (e.g. maxRating: 3 = complaints) |
stripPersonalData | ON by default — removes reviewer name/ID/profile/avatar |
includeRaw | attach the original API object as raw on every row |
monitorMode, alertOnNewReview | recurring watcher: output/alert only reviews new since last run |
webhookUrl, slackWebhookUrl, emailRecipients | alert channels |
proxyConfiguration, requestConcurrency | proxy + parallel listings |
Output
One dataset record per review. Example (truncated):
{"listing_id": "20669368","listing_url": "https://www.airbnb.com/rooms/20669368","listing_title": "Luxury cabin + hot tub, Stratford-upon-Avon","listing_reviews_count": 307,"listing_review_tags": [{ "tag": "HOT_TUB", "label": "Hot tub", "count": 157 }],"review_id": "1701461540622642748","rating": 5,"text": "Our stay here was Superb.\nThe Cabin was Lovely, very clean and stylish…","language": "en","needs_translation": false,"text_translated": null,"created_at": "2026-06-05T13:40:21Z","localized_date": "1 week ago","reviewer_location": "2 months on Airbnb","reviewer_is_superhost": false,"host_name": "Tanya","host_response": null,"host_responded_date": null,"review_photos": [],"scraped_at": "2026-06-12T18:00:00.000Z"}
Plus on every row: rating_label, text_html, text_translated_html, translation_disclaimer, stay_context, host_response/_html/_translated, host_responder_name, host_is_superhost, highlighted_sentences, is_host_highlighted, collection_tag, channel, room_type_listing_id/_title, is_new (monitor mode), and optionally raw.
How much does it cost?
Pay-per-event — you pay for what you pull, no subscription:
| Event | What it covers | Price |
|---|---|---|
lot-scraped | each review returned | $0.0003 / review |
monitor-run-completed | each scheduled watch run | $0.02 / run |
new-lot-detected | each newly posted review found | $0.005 / review |
alert-delivered | each Slack/email/webhook push | $0.005 / alert |
That's $0.30 per 1,000 reviews — the leading Airbnb reviews actor charges $5.00 per 1,000 for the scrape alone. A daily monitor on 10 listings costs well under a dollar a month plus the new reviews it actually finds.
Is it legal to scrape Airbnb reviews? (read this)
Airbnb reviews are publicly visible without a login, and this actor only reads what any visitor's browser loads. That said:
- Airbnb's Terms of Service prohibit automated access — scraping public pages is generally lawful in many jurisdictions (e.g. the hiQ v. LinkedIn line of cases in the US), but it sits in a ToS-gray zone. You are responsible for your own legal review before commercial use.
- Reviews contain personal data (names, avatars, locations).
stripPersonalDatais ON by default and removes reviewer name, user ID, profile URL, and avatar so your dataset holds review substance, not identities. If you switch it off, you become responsible for a lawful basis under GDPR/CCPA (consent, legitimate interest assessment, deletion handling). - Use the data for analysis/monitoring; don't republish reviewer identities.
FAQ
Do I need an Airbnb account, login, or API key? No. The actor reads the public reviews endpoint that the listing page itself uses — no account, cookies, or official API access.
Which listing URLs work?
Any country domain (airbnb.com, .ca, .co.uk, .fr, …), /rooms/{id}, /rooms/plus/{id}, /luxury/listing/{id}, or just the numeric ID.
Does it get ALL reviews, not just the first page?
Yes — it paginates 50 at a time until it has every review (or hits your maxReviews / dateFrom limit). Verified against listings with 300+ reviews.
Do I get the star rating of each individual review?
Yes — rating (1–5) per review, not just the listing average.
Are non-English reviews translated?
When Airbnb itself serves a translation, you get it in text_translated (with the original in text and language). The actor doesn't run its own MT.
Do I get host replies?
Yes — host_response (plain + HTML + translated when present) and host_responded_date.
Can I get only negative reviews?
Yes — maxRating: 3 returns only 1–3-star reviews. Combine with keyword (e.g. "dirty", "wifi") for complaint mining.
How does the monitor know what's new? It keeps a per-listing seen-set in a named key-value store that persists across runs. Each scheduled run outputs and alerts only reviews it hasn't seen before.
What happens if a listing is deleted or a page fails? The actor detects dead listings and skips them with a warning; every request retries with fresh proxy sessions. One bad listing never crashes the run — you keep everything else.
What does it cost to scrape 10,000 reviews? $3.00 (10,000 × $0.0003), plus Apify platform usage. The $5/1k incumbent would charge $50 for the same pull.
Is the reviewer's name included?
Only if you turn stripPersonalData OFF — by default reviewer name, ID, profile URL, and avatar are removed (GDPR-friendly).
Airbnb changed something and it broke? The actor self-heals the most common breakage (Airbnb rotating its internal query hash) by re-extracting it from Airbnb's own JS bundle at runtime. If something else changes, open an issue — fast fixes.
How fast is it? ~50 reviews per request, sub-second responses: 1,000 reviews in well under a minute.
Can I pipe results to Make / Zapier / n8n / my backend? Yes — webhook alerts for new reviews, or pull the dataset via the Apify API.
You might also like
- 🏨 Booking.com / TripAdvisor reviews scrapers
- 🏠 Airbnb listing & pricing scrapers
- 🔔 Review monitors for other marketplaces
Feedback
Found a missing field or want a new filter? Open an issue on the actor — fast fixes and feature requests welcome.