Airbnb Reviews Scraper: Anonymous Ratings & Texts avatar

Airbnb Reviews Scraper: Anonymous Ratings & Texts

Pricing

from $1.19 / 1,000 reviews

Go to Apify Store
Airbnb Reviews Scraper: Anonymous Ratings & Texts

Airbnb Reviews Scraper: Anonymous Ratings & Texts

Scrape Airbnb reviews from listing URLs: rating, month, language, text and translation, stay length, trip type, room type and the listing's six category ratings. Anonymous: no author name, photo, profile or location, first names masked in texts. No personal data.

Pricing

from $1.19 / 1,000 reviews

Rating

0.0

(0)

Developer

Flatrow Data Studio

Flatrow Data Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Categories

Share

Airbnb Reviews Scraper – anonymous ratings, texts, translations and stay types, no personal data

  • Verified daily by an automated run on Apify with the default input.
  • Price: $1.80 per 1,000 reviews on the Free plan; on paid plans, from $1.19 for 1,000 (Business plan).
  • Start fee: $0.00005 per run (Apify's minimum).

Airbnb reviews scraper — anonymous, no reviewer names: get the reviews of any Airbnb listing with the month, star rating, language, original text and Airbnb's translation, stay length or trip type, plus the listing's six category ratings, as a clean table or through an API — no login. Use it for Airbnb review analysis, sentiment analysis, benchmarking a listing against its competitors and monitoring new reviews.

No login, no cookies, no personal data: nothing to sign in to, no cookies to paste. Anonymous Airbnb reviews: no author name, photo, profile or location, host replies left out, first names masked in texts.

  • What you get: one flat row per Airbnb review of the listings you give: month, rating, language, original text and Airbnb's translation, stay length or trip type, room type for hotels, whether the host replied, and the listing's average rating, review count and six category ratings on every row. No personal data.
  • For whom: hosts and property managers benchmarking their listings, revenue and market analysts, travel researchers, product teams building sentiment or topic datasets, AI agents through MCP.
  • How much: from $1.80 per 1,000 reviews on the Free plan, lower on paid plans; Apify's free monthly credit of $5 covers about 2,777 reviews. A fixed price per review saved and nothing else (see the Pricing tab); maxReviewsPerListing and maxResults cap every run.

Sample output: one real review of a Lisbon listing, key columns only, nothing about its author (the full row, with the original text and Airbnb's English translation, is under Output example):

{
"platformListingId": "21607939",
"reviewMonth": "2026-09",
"rating": 5,
"language": "es",
"translatedLanguage": "en",
"tripType": "with_kids",
"stayHighlight": "Stayed with kids",
"hasHostResponse": false,
"listingRating": 4.96,
"listingReviewCount": 658,
"listingRatingCleanliness": 4.96,
"listingRatingLocation": 4.78
}

Give this Airbnb reviews scraper a list of listing URLs (or listing ids) and get one flat row per review, in the order you choose (most recent, most relevant, highest or lowest rating first), up to the full history of each listing. Each row has the month of the review, the rating (1 to 5 stars), the language of the original text, the text itself and, when the guest wrote in another language, Airbnb's translation into yours. Airbnb's stay label becomes two clean columns, stayLength (one night, a few nights, about a week, over a week) and tripType (with kids, group, with pets); hotel-type listings add the room type of the stay. Filter on an Airbnb topic (cleanliness, location, noise…), search the texts for a word, or keep only the reviews since a date to monitor new ones cheaply.

No personal data, by design. Airbnb review scrapers usually publish the reviewer's first name, photo, profile link and city, and the host's reply. This Actor publishes none of them: rows are built from a short list of review facts, the first names Airbnb gives with each review are masked inside the texts, links, e-mails and phone numbers are removed, the date is kept to the month and the review id is replaced by an anonymous key. The dataset is safe to store, share and feed to AI agents.

What can you do with Airbnb reviews?

  • Benchmark a listing against its competitors: average rating and category ratings side by side, the share of 4-star reviews, what guests praise and what they complain about (sortBy lowest rating first).
  • Monitor new reviews of your own or competing listings: schedule the Actor with reviewsSince and compare reviewKey from run to run.
  • Build sentiment and topic datasets: original texts and translations in one language, with topic filters (cleanliness, noise, location) and Airbnb's full-text search.
  • Feed AI agents, spreadsheets and BI tools with a stable, documented schema (travel-review/1.1) shared by the review scrapers of the travel studio; join with the Airbnb Listings and Listing Details scrapers on platformListingId.

What data does Airbnb Reviews Scraper extract?

Every row has every column: a value Airbnb does not give is null, so CSV and Excel exports keep the same columns from run to run.

GroupColumns
IdentityschemaVersion, platform, platformListingId, listingUrl, reviewKey
ReviewreviewMonth, rating, ratingMax, language, text, translatedText, translatedLanguage, hasHostResponse
StaystayLength, tripType, stayHighlight, roomType
Requestposition, sortOrder, matchedTopic, searchQuery
Listing ratingslistingRating, listingReviewCount, listingRatingAccuracy, listingRatingCheckIn, listingRatingCleanliness, listingRatingCommunication, listingRatingLocation, listingRatingValue
Booking.com columns of the shared schema (always null here)title, positiveText, negativeText, nights, stayMonth, listingRatingStaff, listingRatingComfort, listingRatingFacilities, listingRatingWifi
ContextscrapedAt

listingRating… columns come from the listing page (one extra request per listing, no extra charge) and are repeated on each of its reviews; untick Add the listing's ratings to skip them. Airbnb publishes no category rating per review: the six category ratings are the listing's averages.

Privacy by design

The rules below are applied to every review before it is saved, in this order, and tested on real captured responses:

  1. No identity of the author or of the host. Never a name, first name, pseudonym, photo, profile link or id, city or country of the guest; nothing about the host; no guest photos. The host's public reply is left out (it may name the guest): only hasHostResponse says whether there is one.
  2. Rows are built from a whitelist of review facts, never by copying Airbnb's response, then pass the studio's privacy filter.
  3. First names masked in the texts. Airbnb sends the host's and the guest's first names with each review: they are replaced in text and translatedText by [host] and [guest] (whole words, any case or accent, every part of names such as "Ana & Rui", and variants one letter away for names of five letters or more, a common typing slip), then forgotten.
  4. Links, e-mails and phone numbers removed from the texts: links become [link], e-mail addresses and phone numbers [redacted].
  5. Date to the month. reviewMonth is the month of publication (UTC); the exact date and time are never published.
  6. No review id. reviewKey is the first 16 characters of a SHA-256 hash of Airbnb's review id: stable from run to run (to deduplicate and spot new reviews) but not reversible.

Limit: review texts are written by guests; we mask the first names Airbnb gives us (host and guest), links, e-mails and phone numbers, but other names a guest may write can remain (a co-host, a member of staff, a neighbour).

How to scrape Airbnb reviews

  1. Paste listing URLs copied from your browser (https://www.airbnb.com/rooms/21607939, any Airbnb country site) or just the numeric ids, one per line.
  2. Choose how many reviews per listing (maxReviewsPerListing, up to the full history) and the order (sortBy).
  3. Optionally filter: a date (reviewsSince), an Airbnb topic (topic) or a word (searchQuery); pick the language of the translations (locale).
  4. Run and open the Output tab: the Overview, Texts and Listing ratings views show the main columns; export everything as JSON, CSV, Excel or through the API.

Input

Give at least one listing URL or id in listingUrls. Field names and defaults are those of the input form.

The input of our validation run: three listings (a Lisbon flat with 658 reviews, a Lisbon hotel with room types, a new listing with a few reviews), the 60 most recent reviews of each, translations into English (every other field keeps its default):

{
"listingUrls": [
"https://www.airbnb.com/rooms/21607939",
"https://www.airbnb.com/rooms/1663639623527062900",
"https://www.airbnb.com/rooms/1767433945191122578"
],
"maxReviewsPerListing": 60,
"sortBy": "MOST_RECENT",
"locale": "en",
"translate": true,
"includeListingRatings": true,
"proxyConfiguration": {
"useApifyProxy": true
},
"debugStoreResponses": false
}

Every field, with its type and default:

FieldTypeDefaultDescription
listingUrlsstring[]—Airbnb listing URLs (/rooms/<id>, any country site) or numeric listing ids, up to 1,000. Duplicates are read once.
maxReviewsPerListinginteger100Reviews kept per listing, in the chosen order (up to 10,000: the full history of most listings). Prefilled with 20 in the form.
maxResultsinteger1000Stop the run after this many reviews over all listings. You are never charged for more. Prefilled with 20 in the form.
sortBystring"MOST_RECENT"MOST_RECENT, BEST_QUALITY (most relevant), RATING_DESC (highest first) or RATING_ASC (lowest first).
reviewsSincestring—Only reviews published on or after this date, YYYY-MM-DD or YYYY-MM. With MOST_RECENT, each listing stops at the first older review.
topicstring—Airbnb review topic, e.g. CLEANLINESS, LOCATION, NOISE, HOSPITALITY (the topics shown above a listing's reviews).
searchQuerystring—Only the reviews containing this word or phrase (Airbnb's full-text search).
localestring"en"Airbnb language code of the translations and stay labels (en, fr, de, es, it, pt, nl…).
translatebooleantrueKeep Airbnb's translation of reviews written in another language (translatedText).
includeListingRatingsbooleantrueRead each listing page once and add its average rating, review count and six category ratings to every row.
proxyConfigurationobject{"useApifyProxy":true}Apify datacenter proxies by default, included in the price; keep them, or bring your own proxy URLs.
maxRequestsinteger2000Safety cap on requests in one run (one per 50 reviews, plus one per listing for its ratings, plus up to 3 per page that Airbnb answers short).
delayMsinteger250Pause between two pages of the same listing, in milliseconds.
debugStoreResponsesbooleanfalseDebugging only: store a copy of every response without the author, host and reply fields.

Output example

One real row, produced by the Actor from a review of a Lisbon listing on airbnb.com (Spanish original, English translation, family stay, host's first name masked). All columns are present, in this order, for every review:

{
"schemaVersion": "travel-review/1.1",
"platform": "airbnb",
"platformListingId": "21607939",
"listingUrl": "https://www.airbnb.com/rooms/21607939",
"reviewKey": "8c279961b553d684",
"reviewMonth": "2026-09",
"rating": 5,
"ratingMax": 5,
"language": "es",
"title": null,
"text": "Hemos recorrido varias ciudades en varios sitios, pero la experiencia en Lisboa ha sido de todo nuestro agrado. Hemos estado como en casa, todo completo en cocina, en baños, en habitaciones.... la distribución es diferente, pero para nosotros ha sido bien. Cocinamos y todo super dotado, las atenciones.... sin palabras. Bella experiencia.\nPor otra parte la ubicación, bus, tren, tranvía, y en medio de todos ,los puntos a recorrer y conocer de tan bella ciudad. A pocos metros y no más de 5 minutos caminando el transporte más lejano.\nCon los niños hemos clasificado los hospedajes y de lejos ha sido el mejor hasta ahora.... solo faltan Madrid y Barcelona.\n[host] ha estado pendiente de todo, con recomendaciones y atenciones...\nQue si volveremos? 100% seguros que sí, y esperamos poder hospedarnos nuevamente en éste espacio.",
"positiveText": null,
"negativeText": null,
"translatedText": "We've visited several cities in various places, but we really enjoyed our experience in Lisbon. We felt at home. The kitchen, bathrooms and bedrooms were fully equipped. The layout is different, but it worked well for us. We cooked, and everything was super well-equipped. The hospitality... I'm speechless. A wonderful experience.\nOn the other hand, the location: buses, trains, trams, and in the middle of all the places to visit and explore in such a beautiful city. The farthest public transportation is just a few meters away and no more than a 5-minute walk.\nWe have rated the places we've stayed with the kids, and this has by far been the best one so far... We just have Madrid and Barcelona left.\n[host] was attentive to everything, with recommendations and thoughtful gestures...\nWill we come back? We're 100% sure we will, and we hope to be able to stay in this place again.",
"translatedLanguage": "en",
"stayLength": null,
"tripType": "with_kids",
"stayHighlight": "Stayed with kids",
"nights": null,
"stayMonth": null,
"roomType": null,
"hasHostResponse": false,
"position": 4,
"sortOrder": "MOST_RECENT",
"matchedTopic": null,
"searchQuery": null,
"listingRating": 4.96,
"listingReviewCount": 658,
"listingRatingAccuracy": 4.97,
"listingRatingCheckIn": 4.99,
"listingRatingCleanliness": 4.96,
"listingRatingCommunication": 5,
"listingRatingLocation": 4.78,
"listingRatingValue": 4.93,
"listingRatingStaff": null,
"listingRatingComfort": null,
"listingRatingFacilities": null,
"listingRatingWifi": null,
"scrapedAt": "2026-10-20T08:00:00.000Z"
}

How much does it cost to scrape Airbnb reviews?

This Actor uses pay-per-event pricing: you pay a fixed price per review saved to your dataset, and nothing else. On the Free plan, reviews cost $1.80 per 1,000, so Apify's free monthly credit of $5 covers about 2,777 reviews; paid plans pay less per review, and the price of every plan tier is on the Pricing tab of this page.

What you pay forHow it is countedPrice
result event: one anonymous review saved to your datasetonce per unique review of the run, capped by maxReviewsPerListing and maxResultsPricing tab, per plan tier
Listing ratings (includeListingRatings)one listing page per listingincluded
Run starta symbolic amount, once per runPricing tab
Compute, proxies, storage and data transferincluded: no platform usage is passed on to you—

The cost of a run is known before you start: 1,000 reviews cost 1,000 times the result price of your tier, whatever the number of listings or pages fetched. Airbnb returns 50 reviews per request, so 1,000 reviews take about half a minute.

Limits and behaviour worth knowing

  • Full history, in Airbnb's order. Airbnb gives every review of a listing, 50 per request; the order is Airbnb's for the chosen sortBy and position keeps it. Ratings are whole stars (1 to 5).
  • Short pages are not the end. After a few pages, Airbnb may start answering only 2 reviews per page to the same visitor. The Actor changes session (proxy session, cookies) every 3 pages to stay under that limit, asks a short page again in a new session (up to 3 times), and goes on until the review count Airbnb announces for the listing. If a listing still gets 5 short pages in a row, it stops early and the log says how many of its reviews are missing: run it again later for the rest (reviewKey stays the same).
  • Stay labels in English and French. stayLength and tripType are filled from Airbnb's labels in English and French; with another locale they may stay null while stayHighlight keeps the label as displayed.
  • Translations are Airbnb's. translatedText is the translation Airbnb shows its visitors, in the locale you choose; the original is always in text.
  • Filters count differently. With topic or searchQuery, Airbnb returns only the matching reviews; listingReviewCount then comes from the listing page only (it is null if the listing ratings are turned off).
  • Removed listings are reported, not fatal. A listing that does not exist any more is named in the log and the run goes on with the others. A run that saves no review at all ends as failed with a message that says why (listings not found, without reviews, or an Airbnb change), so that your schedules notice (no empty successes).
  • Blocking. Airbnb's reviews were served to Apify datacenter proxies without challenge in our tests. An unusable response gets one retry in a new session, then the listing is given up and reported in the log.
  • Airbnb changes. The reviews come from a versioned Airbnb query; if Airbnb retires it, the Actor retries with the previous version and the log says so. The fix is shipped as a new build; check the Changelog.

Integrations and API

Start the Actor from Apify Console, schedule it, or call it from the Apify API with any language (the API tab shows ready-made code for Node.js, Python and curl). Webhooks notify your systems when a run finishes; the dataset can be pulled as JSON, CSV, Excel, XML or RSS, or pushed to Google Sheets, Make, Zapier, n8n, Slack, Airtable, Google Drive and more through the Apify integrations.

Use it from your AI assistant

Add this Actor as a tool to Claude, ChatGPT, Cursor, VS Code or any MCP client with the Apify MCP server URL below (sign in with your Apify account when asked):

https://mcp.apify.com?tools=myth84/airbnb-reviews-scraper

Then ask in plain words. Copy this prompt and change the details:

Use myth84/airbnb-reviews-scraper to get the 30 most recent reviews of this Airbnb listing, in English, and sum up what guests liked and disliked: https://www.airbnb.com/rooms/21607939. Input: {"listingUrls": ["https://www.airbnb.com/rooms/21607939"], "maxReviewsPerListing": 30, "sortBy": "MOST_RECENT", "locale": "en"}. Show the month, rating, trip type and the English text of each review.

For AI agents (MCP)

Through the Apify MCP server this Actor is a tool that answers questions such as "what do guests say about noise in this Airbnb?", "how is this listing rated for cleanliness and what did the last 20 guests write?" or "which reviews of these three listings mention the check-in?".

Minimal input (every other field keeps its default; raise maxReviewsPerListing only when the question needs more reviews):

{
"listingUrls": [
"https://www.airbnb.com/rooms/21607939"
],
"maxReviewsPerListing": 20
}
  • Key output fields: platformListingId, reviewMonth, rating, language, text, translatedText, stayLength, tripType, roomType, hasHostResponse, listingRating, listingReviewCount and the six listingRatingAccuracy … listingRatingValue columns. Every column is always present, in a fixed order; null means Airbnb did not give the value. The full list is in What data does Airbnb Reviews Scraper extract? above.
  • Use it when you have Airbnb listing URLs or ids and need what guests wrote and how they rated their stay: recent reviews, lowest-rated reviews, reviews about a topic or containing a word, reviews since a date. Pass listingUrls (a few URLs) and a small maxReviewsPerListing; add topic, searchQuery, sortBy or reviewsSince to narrow down.
  • Do not use it for finding listings by place or price (use the Airbnb Listings Scraper), amenities and house rules (Airbnb Listing Details Scraper), reviewer or host profiles, host replies or guest photos: it collects no personal data and only reads public reviews.
  • Cost per 1,000 results: 1,000 result events, $1.80 per 1,000 on the Free plan and less on paid plans (Pricing tab); nothing else is charged.
  • Typical time: about two seconds per listing plus one second per 50 reviews: 20 reviews of one listing in a few seconds, 1,000 reviews in about half a minute.

Alternatives and switching

  • Official API. Airbnb does not offer an open API for reviews: its API is reserved to selected partners. This Actor reads the reviews any visitor sees on a public listing page, without the reviewers' identity, with no account, no keys and no approval.
  • Your own scraper. Nothing to build or maintain: pagination over the full history, translations, retries, short pages and Airbnb changes are handled for you, and the anonymisation rules are applied and tested on every row. The columns stay the same from run to run, a run that finds nothing fails with an explicit message instead of succeeding empty, and a scheduled test run catches Airbnb changes early.
  • Another scraper from the Store. The input names differ from one Actor to the next; the usual ones map to this Actor as follows:
Usual inputHereNote
startUrls, urls, listingIdslistingUrlsAirbnb listing URLs or numeric listing ids
maxReviews, maxItemsmaxReviewsPerListingReviews per listing; maxResults caps the whole run
sortsortByMOST_RECENT, BEST_QUALITY, RATING_DESC or RATING_ASC
cutoffDate, startDatereviewsSinceYYYY-MM-DD or YYYY-MM
languagelocaleLanguage of Airbnb's translations and stay labels
translate, translateReviewstranslateKeep Airbnb's translation in translatedText
keyword, searchsearchQueryAirbnb's full-text search of the reviews
category, tagtopicAn Airbnb review topic such as CLEANLINESS or LOCATION
proxyproxyConfigurationApify proxies, included in the price

FAQ

Does Airbnb Reviews Scraper collect personal data?

No. It never saves the reviewer's name, photo, profile, id or location, nothing about the host and no host reply; the first names Airbnb gives with each review are masked in the texts, links, e-mails and phone numbers are removed, dates are kept to the month and review ids are replaced by an anonymous key. See Privacy by design above for the rules and their limit.

Why no reviewer names?

Because names, photos and profile links of reviewers are personal data under the GDPR and similar laws, and they add nothing to an analysis of what guests think of a listing. Leaving them out makes the dataset safe to store, share and process, which reviewer-level data from other scrapers is not. The reviewKey column still lets you deduplicate reviews and follow them from run to run.

Can I get only new reviews?

Yes. Set reviewsSince to the date (or month) of your last run and keep sortBy on MOST_RECENT: each listing stops at the first older review, so a daily run costs only the new reviews. You can also compare the reviewKey column with your previous dataset: it is stable from run to run.

Are sub-ratings per review available?

No: Airbnb publishes only an overall rating (1 to 5 stars) per review. The category ratings (accuracy, check-in, cleanliness, communication, location, value) exist for the listing as a whole: with Add the listing's ratings (on by default) they are repeated on every review row in the listingRating… columns.

How many reviews can I get per listing?

All of them: Airbnb gives the full history of a listing, 50 reviews per request. Set maxReviewsPerListing high enough (up to 10,000) and maxResults above the total you expect.

Which languages are supported?

Reviews in every language are collected with their original text and language code. Translations (translatedText) come in the locale you choose (en, fr, de, es, it, pt, nl…); the stay labels are normalised for English and French, and kept as displayed in stayHighlight for every language.

The Actor only reads reviews that Airbnb shows to any visitor without an account, and it stores no personal data. Scraping public data is generally lawful, but you are responsible for how you use the results and for complying with Airbnb's terms of service and the laws that apply to you; review texts are the guests' own words, use them for analysis rather than republishing.

What if my runs get blocked? Do I need proxies?

Apify datacenter proxies (the default) work for Airbnb reviews and are included in the price. If a run reports blocked responses, increase delayMs and try again later, or bring your own proxy URLs; persistent blocking is fixed as a priority, open an issue with your run id.

How do I export or integrate the results?

From the run's Output tab (JSON, CSV, Excel, XML, RSS) or automatically: Apify API, webhooks, scheduled runs and integrations with Google Sheets, Make, Zapier, n8n, Slack and others. AI agents can call the Actor through the Apify MCP server.

Where do I get support?

Open an issue in the Issues tab of this Actor with your run id and input. Bugs and Airbnb changes are fixed as a priority; feature requests (other review platforms of the travel studio) are welcome.

More scrapers by Flatrow Data Studio

Put what guests say next to prices and availability: the Airbnb scrapers share the listing id (platformListingId), and the travel scrapers of the studio share the same core columns:

Did this scraper give you the data you needed? A rating on its Store page helps other people find it. For a bug or a missing field, open an issue in the Issues tab.

If this Actor saved you time, a short review helps others find it.

This Actor reads publicly available Airbnb reviews without logging in and collects no personal data. You are responsible for your use of the data and for complying with Airbnb's terms and the laws that apply to you.

Not affiliated with, endorsed or sponsored by Airbnb. Airbnb is a trademark of Airbnb, Inc.