Airbnb Reviews Scraper - Keyword Search & Topic Filters avatar

Airbnb Reviews Scraper - Keyword Search & Topic Filters

Pricing

from $2.30 / 1,000 airbnb reviews

Go to Apify Store
Airbnb Reviews Scraper - Keyword Search & Topic Filters

Airbnb Reviews Scraper - Keyword Search & Topic Filters

Scrape Airbnb guest reviews with ratings, dates, host replies, translations, keyword search, topic filters and listing sub-ratings. Export CSV, Excel, JSON or XML.

Pricing

from $2.30 / 1,000 airbnb reviews

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

🏠 Airbnb Reviews Scraper

🚀 Export every guest review of an Airbnb listing in seconds, with the host's reply, a translation and the listing's six sub-ratings on the same row. All 496 reviews of a New York listing came back in 12 seconds in our test, 50 reviews per request, no login and no proxy.

This Actor reads Airbnb's own review feed, the same one the reviews window on a listing page loads when you scroll, and pages through it until the listing has nothing left. You can sort like Airbnb does, search inside the reviews for a word ("subway", "noise", "parking"), keep only the reviews Airbnb files under one topic (Location, Cleanliness, Check-in and 27 more), and get every review translated into one of 92 languages while the original text stays in its own column.

Every row has 42 fields: the review (rating, text, language, translation, exact date, stay length), the reviewer (name, ID, home town or tenure, photo, profile link), the host reply (text, translation, date), the host (name, ID, profile link, Superhost) and the listing (name, property and room type, location, coordinates, guests, overall rating, review count, cleanliness, accuracy, check-in, communication, location and value ratings, cover photo), plus the listing's review topics with mention counts and Airbnb's own AI summary of each topic.

🎯 Target Audience💡 Primary Use Cases
Short-term rental hosts and property managersRead what guests praise and complain about, across every listing you run
Vacation rental investorsJudge a market or a property by its real guest feedback before buying
Hospitality and travel brandsTrack sentiment and host responsiveness over time
Market researchersCompare neighborhoods, property types and hosts with sub-ratings on every row
Data and AI teamsBuild multilingual review datasets with original text and translation side by side
Reputation and review agenciesMonitor new reviews and flag unanswered complaints

📋 What the Airbnb Reviews Scraper does

  1. Accepts Airbnb listing links from any Airbnb domain (airbnb.com/rooms/12937, airbnb.fr/rooms/29542473?adults=2, /rooms/plus/...) or plain numeric listing IDs.
  2. Calls Airbnb's review feed for each listing, 50 reviews per request (twice what the website loads), until every review is collected or your limit is reached.
  3. Lets Airbnb sort (most recent, most relevant, highest rated, lowest rated), search inside the reviews and filter by topic, so only matching reviews are downloaded.
  4. Keeps only the reviews inside your date window and star range. With the matching sort order it stops paging as soon as it passes the window, so a "last 30 days" run on a listing with 2,000 reviews reads one page.
  5. With Include listing details on (the default), reads the listing page once and adds its name, type, location, coordinates and the six category ratings to every review.
  6. Writes one row per review, deduplicated. Listings that do not exist come back as a free error row that says why.

💡 Why it matters: a listing's star average hides the story. The reviews say whether "4.8" means a spotless room with a noisy street or a great host with a tired bathroom. With keyword search, topic filters and the sub-ratings on every row, you get to that answer in one export instead of an afternoon of scrolling.

🎬 Full Demo (🚧 Coming soon)

📊 Output

Each dataset row is one Airbnb review. 42 columns per row.

FieldTypeDescription
🖼 imageUrlstringReviewer profile photo
🆔 reviewIdstringAirbnb review ID
🏷 listingIdstringAirbnb listing ID
🔗 listingUrlstringLink to the listing
⭐ ratingnumberStars from 1 to 5 (some older reviews have none)
💬 reviewTextstringReview in the language the guest wrote it
🗣 reviewLanguagestringLanguage code of the original review
🌐 translatedTextstringAirbnb's translation into your chosen language, N/A when not needed
📅 createdAtstringPublication date and time, ISO 8601 UTC
🗓 localizedDatestringDate as Airbnb shows it ("3 days ago", "October 2025")
🛏 stayDetailstringStay length or trip type ("Stayed a few nights", "Stayed with kids")
👤 reviewerNamestringReviewer first name
🔢 reviewerIdstringReviewer user ID
📍 reviewerLocationstringReviewer home town, when shown
⏳ reviewerTenurestring"10 years on Airbnb", shown when there is no home town
🔗 reviewerProfileUrlstringReviewer profile link
↩️ hostResponsestringPublic reply from the host, N/A when there is none
🌐 hostResponseTranslatedstringTranslation of the reply, when Airbnb provides one
🗓 hostResponseDatestringWhen the host replied
🧑‍💼 hostNamestringHost name
🔢 hostIdstringHost user ID
🔗 hostProfileUrlstringHost profile link
🏠 listingTitlestringListing name
🏢 listingPropertyTypestring"Private room in townhouse", "Entire rental unit", ...
🚪 listingRoomTypestringPrivate room, Entire home/apt, Shared room, Hotel room
🗺 listingLocationstringCity, region and country
🧭 listingLatitudenumberListing latitude
🧭 listingLongitudenumberListing longitude
👥 listingGuestsnumberMaximum guests
🌟 listingRatingnumberOverall guest rating
🔢 listingReviewsCountnumberTotal reviews on the listing
🧼 ratingCleanlinessnumberCleanliness rating
🎯 ratingAccuracynumberAccuracy rating
🔑 ratingCheckInnumberCheck-in rating
💌 ratingCommunicationnumberCommunication rating
📍 ratingLocationnumberLocation rating
💰 ratingValuenumberValue rating
🏅 hostIsSuperhoststringYes or No
📷 listingImageUrlstringListing cover photo
🧩 reviewTopicsarrayTopics guests mention on this listing, with mention counts and Airbnb's summary
🕒 scrapedAtstringWhen the row was collected
❌ errorstringPopulated only on failed rows

With Include listing details off, rows keep the 25 review, reviewer, host and topic fields and skip the 17 listing columns.

Real sample records

{
"imageUrl": "https://a0.muscache.com/im/pictures/user/b7232ce5-b54c-46ed-936a-d80c9ef04a89.jpg",
"reviewId": "1539997764983316743",
"listingId": "12937",
"listingUrl": "https://www.airbnb.com/rooms/12937",
"rating": 5,
"reviewText": "Extraordinario anfitrión muy amable y preocupado.\nLa ubicación es excelente con acceso al metro, llegar a Manhattan es muy facil. Una muy buena experiencia para sentirse viviendo en NYC\nRecomendado 100%",
"reviewLanguage": "es",
"translatedText": "Extraordinary very friendly and concerned host.\nThe location is excellent with subway access, getting to Manhattan is very easy. A very good experience to feel living in NYC\nRecommended 100%",
"createdAt": "2025-10-25T19:00:39Z",
"localizedDate": "October 2025",
"stayDetail": "Stayed a few nights",
"reviewerName": "Patricio",
"reviewerId": "262202041",
"reviewerLocation": "Santiago, Chile",
"reviewerTenure": "Not Disclosed",
"reviewerProfileUrl": "https://www.airbnb.com/users/profile/1493601496004129345",
"hostResponse": "Patricio & sons were great guests.\nFriendly , quiet and orderly.\nThey left the place in good condition.\nWe would welcome them back any time.",
"hostResponseTranslated": "N/A",
"hostResponseDate": "November 2025",
"hostName": "Orestes",
"hostId": "50124",
"hostProfileUrl": "https://www.airbnb.com/users/profile/1462507638639660367",
"listingTitle": "1 Stop to Midtown! Private Bedroom, Landmark House",
"listingPropertyType": "Private room in townhouse",
"listingRoomType": "Private room",
"listingLocation": "Queens, New York, United States",
"listingLatitude": 40.74757,
"listingLongitude": -73.94571,
"listingGuests": 2,
"listingRating": 4.92,
"listingReviewsCount": 496,
"ratingCleanliness": 4.86,
"ratingAccuracy": 4.91,
"ratingCheckIn": 4.9,
"ratingCommunication": 4.92,
"ratingLocation": 4.91,
"ratingValue": 4.85,
"hostIsSuperhost": "Yes",
"listingImageUrl": "https://a0.muscache.com/im/pictures/2053dcc6-7721-477f-b579-09ce4d4f7db5.jpg",
"reviewTopics": [
{ "topic": "Getting around", "code": "GETTING_AROUND", "mentions": 268, "summary": "Close to multiple subway lines, making it easy to reach Manhattan, Brooklyn, and Queens." },
{ "topic": "Location", "code": "LOCATION", "mentions": 321, "summary": "Quiet LIC neighborhood with easy subway access to Manhattan, plus nearby restaurants and shops." }
],
"scrapedAt": "2026-09-25T17:46:50.804Z",
"error": null
}
{
"imageUrl": "https://a0.muscache.com/im/pictures/user/933d59f1-86b5-49ab-93b8-68e279a79adc.jpg",
"reviewId": "1771601027250637272",
"listingId": "29542473",
"listingUrl": "https://www.airbnb.com/rooms/29542473",
"rating": 5,
"reviewText": "Really enjoyed my stay at Aube 's charming apartment. The private room was very pretty and comfortable. Aube went out of her way to feel her guests welcome. Loved the convenient location, so close to everything. Montmartre is such a lovely and lively neighborhood!! Will stay again without hesitation! Thank you again.",
"reviewLanguage": "en",
"translatedText": "N/A",
"createdAt": "2026-09-10T08:14:59Z",
"localizedDate": "2 weeks ago",
"stayDetail": "Stayed a few nights",
"reviewerName": "Anna",
"reviewerId": "314247675",
"reviewerLocation": "Not Disclosed",
"reviewerTenure": "7 years on Airbnb",
"reviewerProfileUrl": "https://www.airbnb.com/users/profile/1504216175088852333",
"hostResponse": "Merci Anna pour votre commentaire pertinent. C'est un plaisir de recevoir des voyageuses comme vous. Polie, discrète et sympathique et plus encore. Grand merci à vous. Je vous souhaite plein de belles choses.",
"hostResponseTranslated": "N/A",
"hostResponseDate": "2 weeks ago",
"hostName": "Aube De Paris (Elle/La)",
"hostId": "33566463",
"hostProfileUrl": "https://www.airbnb.com/users/profile/1465490999210414485",
"listingTitle": "Chic room – feminine haven – lively Paris",
"listingPropertyType": "Private room in rental unit",
"listingRoomType": "Private room",
"listingLocation": "Paris, Île-de-France, France",
"listingLatitude": 48.8873,
"listingLongitude": 2.3272,
"listingGuests": 1,
"listingRating": 5,
"listingReviewsCount": 28,
"ratingCleanliness": 5,
"ratingAccuracy": 4.93,
"ratingCheckIn": 4.93,
"ratingCommunication": 5,
"ratingLocation": 4.96,
"ratingValue": 4.96,
"hostIsSuperhost": "Yes",
"listingImageUrl": "https://a0.muscache.com/im/pictures/airflow/Hosting-29542473/original/72f82e4d-c485-47b1-b330-ee737a3badcc.jpg",
"reviewTopics": [
{ "topic": "Hospitality", "code": "HOSPITALITY", "mentions": 25, "summary": "N/A" },
{ "topic": "Getting around", "code": "GETTING_AROUND", "mentions": 8, "summary": "N/A" }
],
"scrapedAt": "2026-09-25T17:45:26.860Z",
"error": null
}
{
"imageUrl": "https://a0.muscache.com/im/pictures/user/1a65831b-75d9-40a8-b092-db993e4421b7.jpg",
"reviewId": "1562520425854549329",
"listingId": "12937",
"listingUrl": "https://www.airbnb.com/rooms/12937",
"rating": 4,
"reviewText": "responsive, hospitable host",
"reviewLanguage": "en",
"translatedText": "N/A",
"createdAt": "2025-11-25T20:49:09Z",
"localizedDate": "November 2025",
"stayDetail": "Stayed a few nights",
"reviewerName": "Hao-Hsuan",
"reviewerId": "418943509",
"reviewerLocation": "Lebanon, New Hampshire",
"reviewerTenure": "Not Disclosed",
"reviewerProfileUrl": "https://www.airbnb.com/users/profile/1481694277724503441",
"hostResponse": "N/A",
"hostResponseTranslated": "N/A",
"hostResponseDate": "N/A",
"hostName": "Orestes",
"hostId": "50124",
"hostProfileUrl": "https://www.airbnb.com/users/profile/1462507638639660367",
"listingTitle": "1 Stop to Midtown! Private Bedroom, Landmark House",
"listingPropertyType": "Private room in townhouse",
"listingRoomType": "Private room",
"listingLocation": "Queens, New York, United States",
"listingLatitude": 40.74757,
"listingLongitude": -73.94571,
"listingGuests": 2,
"listingRating": 4.92,
"listingReviewsCount": 496,
"ratingCleanliness": 4.86,
"ratingAccuracy": 4.91,
"ratingCheckIn": 4.9,
"ratingCommunication": 4.92,
"ratingLocation": 4.91,
"ratingValue": 4.85,
"hostIsSuperhost": "Yes",
"listingImageUrl": "https://a0.muscache.com/im/pictures/2053dcc6-7721-477f-b579-09ce4d4f7db5.jpg",
"reviewTopics": [
{ "topic": "Getting around", "code": "GETTING_AROUND", "mentions": 268, "summary": "Close to multiple subway lines, making it easy to reach Manhattan, Brooklyn, and Queens." },
{ "topic": "Location", "code": "LOCATION", "mentions": 321, "summary": "Quiet LIC neighborhood with easy subway access to Manhattan, plus nearby restaurants and shops." }
],
"scrapedAt": "2026-09-25T17:46:50.804Z",
"error": null
}

reviewTopics is shortened to two topics here. The dataset holds every topic the listing has (10 on both sample listings).

✨ Why choose this Actor

  • Search inside the reviews. Type "noise", "parking" or "wifi" and get only the reviews that mention it, found by Airbnb's own review search. On the sample listing, "subway" matched 139 of 496 reviews.
  • Filter by topic. Keep only the reviews Airbnb files under Cleanliness, Location, Check-in, Bathroom, Value or any of 30 topics, straight from Airbnb.
  • Listing sub-ratings on every row. Cleanliness, accuracy, check-in, communication, location and value next to each review, plus the overall rating, type, location and coordinates of the listing.
  • Airbnb's topic summaries. Each row carries the listing's review topics with how many guests mention each one and Airbnb's one-line summary of what they say.
  • Original and translation side by side. The guest's own words in reviewText, Airbnb's translation in translatedText, in any of 92 languages.
  • Host replies with dates. The reply, its translation when Airbnb has one, and when it was posted, so you can measure response rate and tone.
  • Smart early stop. Date and star windows stop the run as soon as the sort order passes them, so you pay for the reviews you want and nothing else.
  • Fast and light. 50 reviews per request, no browser: a 496-review listing finishes in about 12 seconds.
  • Pay only for reviews. Unknown or removed listings produce a free error row that says why.

📈 How it compares to alternatives

This ActorTypical Airbnb review scrapersCopying reviews by hand
Requires an Airbnb loginNoNoNo
All reviews of a listingYes, paged to the endYesScroll and copy
Keyword search inside reviewsYes, Airbnb's own searchRarelyBrowser find, one listing at a time
Topic filter (Cleanliness, Location, ...)Yes, 30 topicsNoClick each topic chip
Six listing sub-ratings on every rowYesNoLook them up separately
Topic mention counts and summariesYesNoRead them on the page
Translation next to the originalYes, 92 languagesVariesTranslate by hand
Host reply and reply dateYesUsually the reply onlyCopy by hand
Date and star windows with early stopYesDate only, or noneScroll and look

The Actor sees what any visitor to a listing sees. Reviews that Airbnb removed, and listings that are unlisted or deleted, are not available. Airbnb gives no link to a single review, so rows point to the listing. Some reviews from before about 2014 have no star rating, which the Actor reports as Not Disclosed. Keyword search results come back in the original language only: Airbnb does not translate search hits.

🚀 How to use

  1. Create a free Apify account. New accounts include $5 of free platform credit, which is plenty to try this out: console.apify.com/sign-up
  2. Open the Actor and go to the Input tab.
  3. Paste Airbnb listing links into Airbnb listing URLs, or listing numbers into Listing IDs.
  4. Set Max Items to the total number of reviews you want, and optionally Max reviews per listing to spread it across several listings.
  5. Choose the sort order and, if you want, a keyword, a topic, a date window or a star range.
  6. Pick the Language you want translations and dates in, and leave Include listing details on for the full row.
  7. Click Start, then open the Dataset tab and download as CSV, Excel, JSON or XML, or pull it from the API.
{
"startUrls": [{ "url": "https://www.airbnb.com/rooms/12937" }],
"maxItems": 500,
"sortBy": "MOST_RECENT",
"searchQuery": "noise",
"onlyReviewsNewerThan": "1 year",
"locale": "en-US"
}

💼 Business use cases

Guest experience audits for hosts

Export every review of your listings, filter the topic to Cleanliness or Check-in, and read exactly what guests said about the weak sub-rating. stayDetail tells you whether the complaints come from long stays or weekend trips.

Investment due diligence

Before buying or leasing a rental, pull the reviews of the property and its neighbors. Search "noise", "neighbors" or "construction" and compare the six sub-ratings across the block with the coordinates on every row.

Competitor benchmarking for property managers

Run the same date window across your portfolio and the top listings around it. ratingValue, listingRating and the topic mention counts show where competitors win, and hostResponse shows how they handle criticism.

Multilingual sentiment and AI datasets

Collect reviews in their original languages with Airbnb's translation next to each one. Star ratings, dates and topic labels make it a ready training or evaluation set for sentiment and summarization models.

🔌 Automating Airbnb Reviews Scraper

  • Make and Zapier: run the Actor every week for your listings and send new reviews to a sheet, CRM or help desk.
  • Slack: post a message whenever a new review with 3 stars or fewer arrives, using the star range filter.
  • Airbyte: sync datasets into Snowflake, BigQuery or Postgres to keep a running history of reviews and sub-ratings.
  • GitHub: schedule runs from Actions and keep versioned snapshots of a market's reviews.
  • Google Drive: drop a CSV or Google Sheet into a shared folder after every run.
  • API and webhooks: every run emits a dataset ID; subscribe to the run succeeded webhook and process the reviews wherever you need them.

🌟 Beyond business use cases

  • Research: study how guests describe neighborhoods, how hosts answer criticism, or how short-term rentals are perceived across cities and languages.
  • Personal: before booking, search a shortlist of listings for the things you care about ("stairs", "crib", "air conditioning").
  • Non-profit: document how short-term rentals affect a neighborhood from the words of the people who stayed there.
  • Experimentation: a clean, multilingual review dataset with ratings and topic labels is a good playground for NLP projects.

🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant to get help designing your run:

I am using the ParseForge Airbnb Reviews Scraper on Apify. It takes Airbnb listing URLs or IDs and returns one row per guest review with 42 fields, including rating, reviewText, reviewLanguage, translatedText, createdAt, stayDetail, reviewerName, reviewerLocation, hostResponse, hostResponseDate, hostName, hostIsSuperhost, listingTitle, listingPropertyType, listingLocation, listingLatitude, listingLongitude, listingRating, ratingCleanliness, ratingAccuracy, ratingCheckIn, ratingCommunication, ratingLocation, ratingValue and reviewTopics. It can sort reviews, search inside them by keyword, filter by one of 30 Airbnb review topics, keep a date window or star range, and translate into 92 languages. Help me design a run to answer this question: [your question here].

❓ Frequently Asked Questions

🔐 Do I need an Airbnb account? No. The Actor reads only what Airbnb shows to anyone who opens a listing. You never supply credentials.

📚 How many reviews can I get from one listing? All of them. The Actor pages through Airbnb's review feed, 50 reviews per request, until it ends. In our test it collected all 496 reviews of one listing in about 12 seconds.

🔎 How does keyword search work? The word or phrase goes to Airbnb's own review search, the magnifier in the reviews window. Only matching reviews are returned and charged. Search hits come back in their original language because Airbnb does not translate them.

🧩 Which review topics can I filter by? Any of the 30 topics Airbnb uses, such as Location, Cleanliness, Hospitality, Check-in, Bathroom, Sleep quality, Value, View, Pool or Kitchen. Topics differ by listing: a listing without the chosen topic returns no reviews, and the log says so.

🌐 How do translations work? Choose a Language. Reviews written in another language get Airbnb's translation in translatedText, and the original stays in reviewText. Relative dates and reviewer locations follow the chosen language too. Listing details are always in English.

📅 How does the date filter work? Use a date (YYYY-MM-DD) or a relative value such as 30 days, 6 months or 1 year. With Most recent sorting the Actor stops at the first older review, so it never downloads the rest of the history.

⭐ Why is the rating "Not Disclosed" on some reviews? Airbnb shows no star rating on some reviews, mostly ones written before about 2014. When you set a star range, those reviews are skipped.

📍 Why do some rows show tenure instead of a home town? Airbnb shows the reviewer's home town when they have set one, and "N years on Airbnb" otherwise. The Actor puts each in its own column so neither is mistaken for the other.

🚫 Why did a listing return an error row? The listing ID does not exist, or the listing was removed or unlisted. Error rows are never charged.

🌍 Do I need a proxy? No for normal use. Airbnb's review feed answered every request in our tests without one, from a home IP and from Apify's cloud. The proxy setting is there if you run very large jobs.

🏨 Does it work for Airbnb Experiences? No. This Actor reads reviews of stays (homes, rooms, hotels listed on Airbnb). For listing data such as prices and amenities, see the recommended Actors below.

📥 What export formats are supported? CSV, Excel, JSON, XML, plus direct API access and integrations with Make, Zapier, Airbyte, Slack, Google Drive and more.

⚖️ Is this legal? The Actor collects reviews that Airbnb publishes to everyone. Reviews include first names and photos of real people, so you remain responsible for how you use the data, including privacy law such as GDPR and CCPA, and Airbnb's terms.

🔌 Integrate with any app

Every run writes to an Apify dataset reachable through a REST API, so the output drops into whatever you already use. Native integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and webhooks, and the API covers everything else.

💡 Pro Tip: browse the complete ParseForge collection.

🆘 Need Help? Open our contact form

⚠️ Disclaimer: independent tool, not affiliated with Airbnb; only publicly available data.