Airbnb Reviews Scraper — Ratings, Dates & Host Replies
Pricing
from $0.68 / 1,000 results
Airbnb Reviews Scraper — Ratings, Dates & Host Replies
Export every review on an Airbnb stay. Paste one room link or a list and each review comes back with its full text, star rating, the reviewer's name and country, the host's reply, and the exact date it was posted — not the '3 days ago' the page shows.
Pricing
from $0.68 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Airbnb Reviews Scraper
The Actor exports the guest reviews on an Airbnb stay, one row per review: the full text as written, the star rating, the reviewer's first name and stated location, the host's public reply, and the exact date and time the review was posted. A stay that no longer exists is skipped with a warning rather than returned as an empty record.
Accepted input
stay_ids is required and takes one or more stays. Room page links and bare numeric stay IDs are
both accepted, and the two may be mixed in one list. A link is reduced to its /rooms/<id>
segment, so the tracking query string Airbnb appends to shared links can be left in place.
maxReviews caps how many reviews are saved per stay, up to 500, and defaults to 100. Reviews come
back newest first, so a smaller number returns the most recent ones rather than an arbitrary slice.
Set it to 0 for as many as the Actor will fetch.
{"stay_ids": ["https://www.airbnb.com/rooms/4518031","1348596009084608060"],"maxReviews": 100}
Only the /rooms/ identifier resolves. Airbnb search results also carry a propertyId on some
stays, which is a number of the same shape and is not interchangeable; see
Why a stay can return nothing below.
Response fields
Every row carries stay_id, stay_url, review_id, review_text, review_rating, review_date,
review_date_label, review_language, review_translated, review_highlight, reviewer_name,
reviewer_location, reviewer_tenure, reviewer_image, host_reply, host_reply_date,
review_images, stay_reviews_total, and review.
review_date is an absolute UTC timestamp. This is the field the listing page itself does not
give you: it renders relative dates — "3 days ago", "last week" — which are meaningless the moment
a dataset is saved and cannot be sorted, filtered, or compared across runs. Airbnb's own relative
string is still returned as review_date_label for anyone who wants the page's wording.
review_text is the review in the language the guest wrote it, with review_language giving that
language as a two-letter code. review_translated holds Airbnb's translation only when there is
one that actually differs from the original. Airbnb ships the same text under several fields and
they are frequently identical strings, so a translation that matches the original is reported as
empty rather than duplicated into a second column.
reviewer_location and reviewer_tenure are two columns from one source. Airbnb shows a single
line beneath each reviewer's name, and it holds either where that guest lives or how long they have
been a member — "Lima, Peru" and "1 year on Airbnb" come through the same field. Across 200
reviewers on two listings it was an exact even split, so they are separated here: whichever applies
to a given review is filled in and the other is empty. A reviewer_location column fed straight
from Airbnb would otherwise be half membership ages, which breaks any grouping or filtering done on
it.
host_reply is the host's public response, kept verbatim — including any HTML the host's formatting
produced, because stripping it would silently run paragraphs together. host_reply_date is
relative, as Airbnb gives no absolute timestamp for replies.
stay_reviews_total is the stay's true review count, which is usually far larger than the number
of rows saved. It is repeated on every row so a capped run still records what it left behind.
review holds the complete record for anything not flattened into a column of its own.
{"stay_id": "4518031","stay_url": "https://www.airbnb.com/rooms/4518031","review_id": "1749563023499856820","review_rating": 5,"review_date": "2026-08-10T22:29:25Z","review_date_label": "3 days ago","review_language": "es","review_highlight": "Stayed a few nights","reviewer_name": "Gonzalo","reviewer_location": "Lima, Peru","stay_reviews_total": 635}
Why a stay can return nothing
Airbnb does not answer an unknown stay ID with a 404. It returns an ordinary response whose payload is empty, and nothing about the status distinguishes a removed listing from a live one. A stay that has been delisted behaves the same way.
The Actor treats that as the real answer it is: the stay is logged as not found and skipped, and no rows are written. It is not reported as an error, because a listing being gone is a legitimate outcome rather than a failure of the run.
A stay that exists but has never been reviewed is different again, and is logged as such — it produces no rows because there is nothing to write, not because anything went wrong.
The most common cause of an unexpected empty result is a propertyId used in place of a stay ID.
Both appear on Airbnb search results, both are long numbers, and only the stay ID resolves. The id
field returned by the Airbnb Search Scraper is always the correct one.
Behaviour on partial results
A list input is processed to the end regardless of individual failures. A stay that cannot be fetched, whether removed or erroring upstream, is logged and skipped while the remainder continue, so one dead link in a list of fifty does not cost the other forty-nine.
Rows are therefore not guaranteed to cover every stay in the input list. Matching on the returned
stay_id is reliable; matching on position is not.
Reviews are fetched fifty at a time, so a maxReviews of 500 is ten requests per stay and takes
proportionally longer than the default 100.
Related Actors
The Airbnb Search Scraper finds stays by destination when no IDs are held, and its id output
feeds directly into this Actor's stay_ids.
The Airbnb Listing Scraper returns the stay itself — description, amenities, host, and the review scores broken out by category. Those per-category scores are the aggregate; this Actor returns the individual reviews behind them.
The Airbnb Availability Scraper returns the same stay's booking calendar night by night.
