Airbnb Reviews Scraper · Bulk Export for Any Listing
Pricing
from $0.00005 / actor start
Airbnb Reviews Scraper · Bulk Export for Any Listing
Scrape every guest review from any Airbnb listing. Get rating, comment, date, reviewer name, and host reply — exported as a clean table in one run. Paste Airbnb listing URLs, get all reviews in a structured dataset. No scrolling, no manual copy-paste.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Corentin Robert
Actor stats
0
Bookmarked
19
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Airbnb Reviews Scraper
Collect every guest review from any Airbnb listing — in one clean table you can open in Excel, Google Sheets, or your BI tool.
No manual scrolling. Paste one link or dozens: each review becomes its own row with rating, comment, date, reviewer name, and host reply when Airbnb shows it. Built for hosts monitoring reputation, revenue managers comparing properties, and analysts who need reliable, structured data.
What you get
| Column | What it means for you |
|---|---|
listingId | Airbnb’s numeric listing id — handy if you merge with other data |
listingUrl | The exact link you pasted — easy to match rows back to your list |
listingIndex / listingsTotal | Which listing in your batch (1 of 5, 2 of 5, …) when you run several URLs |
reviewText | The guest’s comment (in the export language you choose — see below) |
reviewTextOriginal | How the guest wrote it originally, when Airbnb exposes it — useful when the site translated the main text |
rating | Star rating as a number |
localizedDate | Month and year you can read at a glance (e.g. “March 2025”) |
publishedAt | Precise timestamp when available |
reviewerName | First name when shown |
hostResponse | Your (or the host’s) public reply, if any |
reviewId | Stable id when Airbnb provides it |
scrapedAt | When this row was written |
Need extra columns? In the JSON input, set "includeVerboseReviewFields": true to add things like reviewer region, highlight tags, and language flags — handy for deep analysis, heavier files.
Dataset views in Apify: use the Reviews (default export) view for a compact column set. With Include all extra fields (JSON), the dataset still stores every key — open Apify’s built-in All fields tab (no separate custom view needed).
How to run
- Open Input.
- Under Listing URLs, enter one link per line (or paste a JSON array of strings — not
{ "url": "…" }objects). - Click Run.
- When it finishes, open Dataset and download CSV / JSON / Excel.
Example input:
{"listingUrls": ["https://www.airbnb.fr/rooms/1234567890123456789"]}
You can also pass a single URL as "url": "https://www.airbnb.com/rooms/…" in JSON.
Language & dates
- Default: text and month names follow each listing’s site (e.g.
airbnb.fr→ French,airbnb.de→ German). You don’t have to configure anything. - Want everything in one language? In JSON, add e.g.
"localizedLanguage": "en"so comments and date labels are aligned in English across all listings. - Prefer the guest’s own wording in the main text column? In JSON:
"preferOriginalReviewText": true.
Translations come from Airbnb’s own content — this actor does not call a separate translation API.
Power users (JSON input)
The form stays simple on purpose. Open the JSON editor when you need to:
- Cap or tune the run —
maxListings,maxReviewPages,maxReviewsPerListing,reviewsPerPage - Speed vs. caution —
listingConcurrency(parallel listings; lower it if Airbnb throttles) - Logs —
logAllListingUrlsto print every URL in the run log - Fallback control —
reviewsFeedDisabled/useListingPagesOnlyto force page-based collection only - Stays / retries — check-in/out, guests, timeouts,
maxRequestRetries, etc.
See CHANGELOG.md for version history and behaviour changes.
While the actor runs
Progress appears in the run log. A copy is also saved under Storage → Key-value store → RUN_LOG, so you can review what happened without scrolling the whole console.
Support
Something wrong? Check RUN_LOG and the run output.
The form uses a simple URL list (strings). If you still see old inputs shaped like { "url": "…", "0": "h", … }, the actor accepts those too (url first, or rebuild from numeric keys).
Custom integrations or consulting: corentin@outreacher.fr.
Developers (local)
npm installcp input.json.example input.json # optional; input.json is gitignored locallynpm startnpm test
Full test suite: npm run test:all — details in tests/README.md. This actor follows the same Apify layout as airbnb-professional-host-scraper in the repo (schemas, changelog, dataset views).