Airbnb Reviews Scraper · Bulk Export for Any Listing avatar

Airbnb Reviews Scraper · Bulk Export for Any Listing

Pricing

from $0.00005 / actor start

Go to Apify Store
Airbnb Reviews Scraper · Bulk Export for Any Listing

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

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

2

Monthly active users

a day ago

Last modified

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

ColumnWhat it means for you
listingIdAirbnb’s numeric listing id — handy if you merge with other data
listingUrlThe exact link you pasted — easy to match rows back to your list
listingIndex / listingsTotalWhich listing in your batch (1 of 5, 2 of 5, …) when you run several URLs
reviewTextThe guest’s comment (in the export language you choose — see below)
reviewTextOriginalHow the guest wrote it originally, when Airbnb exposes it — useful when the site translated the main text
ratingStar rating as a number
localizedDateMonth and year you can read at a glance (e.g. “March 2025”)
publishedAtPrecise timestamp when available
reviewerNameFirst name when shown
hostResponseYour (or the host’s) public reply, if any
reviewIdStable id when Airbnb provides it
scrapedAtWhen 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

  1. Open Input.
  2. Under Listing URLs, enter one link per line (or paste a JSON array of strings — not { "url": "…" } objects).
  3. Click Run.
  4. 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 runmaxListings, maxReviewPages, maxReviewsPerListing, reviewsPerPage
  • Speed vs. cautionlistingConcurrency (parallel listings; lower it if Airbnb throttles)
  • LogslogAllListingUrls to print every URL in the run log
  • Fallback controlreviewsFeedDisabled / useListingPagesOnly to 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 install
cp input.json.example input.json # optional; input.json is gitignored locally
npm start
npm 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).