Airbnb Reviews Scraper
Pricing
from $0.80 / 1,000 results
Airbnb Reviews Scraper
Extract reviews, ratings, and guest feedback from Airbnb listings at scale. Gather competitive insights, analyze property performance, and extract structured review data for research, SEO analysis, or market intelligence. Fast, reliable data extraction.
Pricing
from $0.80 / 1,000 results
Rating
5.0
(4)
Developer
Shahid Irfan
Maintained by CommunityActor stats
3
Bookmarked
13
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
What does Airbnb Reviews Scraper do?
Airbnb Reviews Scraper collects guest reviews from an Airbnb listing and returns them as a structured dataset. Give it a room URL or a property ID, set how many reviews you want, and it saves review text, ratings, dates, reviewer details, host responses, and photo URLs.
The Actor is built for hosts, property managers, market researchers, and analysts who need review data in a spreadsheet, database, or dashboard without copying reviews by hand.
Why use Airbnb Reviews Scraper?
- Review monitoring: Track new guest feedback and rating changes for a listing over time.
- Competitor research: Compare review volume, ratings, and recurring complaints across competing properties.
- Guest sentiment analysis: Feed review text into a sentiment model, a BI tool, or an AI pipeline.
- Host response tracking: See which reviews have a host response and which do not.
- Repeatable runs: Schedule the Actor to refresh a dataset daily, weekly, or monthly.
- Direct exports: Download results as JSON, CSV, Excel, XML, or HTML from the Apify dataset.
What data can you extract from Airbnb reviews?
| Field | Description |
|---|---|
property_id | Numeric Airbnb listing ID |
property_url | Room URL for the listing |
review_id | Unique review ID |
comments | Review text as published |
localized_comment | Localized or translated review text when available |
created_at | Review creation timestamp |
localized_date | Human-readable review date |
rating | Star rating for the review |
language | Review language code |
response | Host response text when the host replied |
reviewer_first_name | Reviewer first name |
reviewer_location | Reviewer location or tenure label |
review_photo_urls | Photos attached to the review |
room_type_listing_title | Room or unit name associated with the review |
search_context | URL or property ID used for the run |
fetched_at | Timestamp for when the record was saved |
The dataset also includes reviewer, reviewee, and responder IDs and profile photo URLs, plus review highlight and subtitle fields when Airbnb provides them.
How to use Airbnb Reviews Scraper
- Open the Actor on Apify Store.
- Paste an Airbnb room URL or enter a numeric property ID.
- Set
results_wantedand, if needed,max_pages. - Start the run.
- Open the dataset to preview, download, or connect the results to another tool.
Provide either url or propertyId. If both are present, propertyId wins. If neither is present, the Actor uses the test listing configured as the URL default.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | String | No | https://www.airbnb.com/rooms/894121952750427608 | Room URL. Messy URLs with tracking parameters are supported. |
propertyId | String | No | - | Numeric ID, or a StayListing, DemandStayListing, or base64 global ID. Takes priority over url. |
results_wanted | Integer | No | 20 | Maximum number of reviews to save. |
max_pages | Integer | No | 5 | Safety cap on review pages. |
proxyConfiguration | Object | No | {} | Apify Proxy or custom proxy URLs for repeated or high-volume runs. |
Output Data
| Field | Type | Description |
|---|---|---|
property_id | String | Numeric Airbnb listing ID |
property_url | String | Direct room URL |
review_id | String | Unique review ID |
comments | String | Review text as published |
localized_comment | String | Localized or translated review text |
created_at | String | Review creation timestamp in ISO format |
localized_date | String | Human-readable review date |
localized_responded_date | String | Date shown for the host response |
language | String | Review language code |
rating | Number | Star rating |
rating_accessibility_label | String | Screen-reader label for the rating |
response | String | Host response text |
reviewer_id | String | Reviewer user ID |
reviewer_first_name | String | Reviewer first name |
reviewer_picture_url | String | Reviewer profile photo URL |
reviewer_location | String | Reviewer location or tenure label |
reviewee_id | String | Host user ID |
reviewee_first_name | String | Host first name |
reviewee_picture_url | String | Host profile photo URL |
responder_id | String | Responder user ID when separate from the host |
responder_first_name | String | Responder first name |
review_photo_urls | Array | Photo URLs attached to the review |
room_type_listing_id | String | Room or unit listing ID |
room_type_listing_title | String | Room or unit title |
highlight_type | String | Review highlight category |
review_highlight | String | Short review highlight text |
subtitle_items | Array | Extra review badges or labels |
channel | String | Review channel when provided |
search_context | String | URL or property ID used for the run |
fetched_at | String | Timestamp for when the record was saved |
Empty values are omitted from each record, so a review without a host response does not include a response key.
Usage Examples
Collect reviews from a room URL
This run saves up to 50 reviews from one listing:
{"url": "https://www.airbnb.com/rooms/894121952750427608","results_wanted": 50,"max_pages": 3}
Use a property ID
This run uses a numeric ID and saves up to 100 reviews:
{"propertyId": "894121952750427608","results_wanted": 100,"max_pages": 5}
Run with Apify Proxy
This run enables residential proxy for repeated high-volume collection:
{"url": "https://www.airbnb.com/rooms/894121952750427608","results_wanted": 200,"max_pages": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"property_id": "894121952750427608","property_url": "https://www.airbnb.com/rooms/894121952750427608","review_id": "1778320000688776861","comments": "Very good communication, clean and cozy place, everything according to the description","localized_comment": "Very good communication, clean and cozy place, everything according to the description","created_at": "2026-09-19T14:44:23Z","localized_date": "September 2026","language": "en","rating": 5,"rating_accessibility_label": "Rating, 5 stars","reviewer_id": "412069196","reviewer_first_name": "Dorota","reviewer_picture_url": "https://a0.muscache.com/im/Portrait/Avatars/v2/blue?im_w=240&im_t=D&im_s=86&im_f=AirbnbCerealLatinMedium.ttf&im_c=0d4daa&script=latin","reviewer_location": "5 years on Airbnb","reviewee_id": "2814730","reviewee_first_name": "Jennifer","reviewee_picture_url": "https://a0.muscache.com/im/pictures/user/bd298a4a-a9a8-460f-b5b1-702925c2aa9c.jpg","search_context": "https://www.airbnb.com/rooms/894121952750427608","fetched_at": "2026-10-26T17:08:19.372Z"}
Tips for Best Results
- Use the room URL from a browser address bar. Tracking parameters do not break the input.
- Start with 20 to 50 reviews to confirm the listing and the dataset shape.
- Set
max_pageshigh enough for your target. Each page holds up to 24 reviews. - Keep
results_wantedas the hard limit for the dataset. The Actor stops as soon as it reaches that count. - Enable Apify Proxy for frequent runs or large review volumes. A separate network identity per run reduces interruptions.
- Check the dataset preview before scheduling a long run.
Integrations
- Google Sheets: Send new reviews to a sheet for tracking and sharing.
- Webhooks: Trigger a workflow after each successful run.
- Make or Zapier: Connect review data to no-code automations.
- BI tools: Load the dataset into Looker Studio, Power BI, or Tableau.
- AI pipelines: Use review text for sentiment, topic clustering, or retrieval.
Export Formats
- JSON: For applications and data pipelines.
- CSV: For spreadsheet analysis.
- Excel: For reporting and sharing.
- XML: For systems that require XML input.
- HTML: For a quick readable table.
Frequently Asked Questions
Can I collect reviews with only a property ID?
Yes. Enter the numeric listing ID in propertyId. The Actor also accepts StayListing:<id>, DemandStayListing:<id>, and base64 global IDs.
How many reviews can one run collect?
The Actor can collect every review that Airbnb exposes for the listing, up to results_wanted and max_pages. Set both values high enough for the listing.
Why are some fields missing from a review?
Airbnb does not publish every field for every review. A review without a host response has no response field, and a reviewer without a photo has no reviewer_picture_url. The Actor leaves those keys out instead of writing empty values.
Can I run the Actor on a schedule?
Yes. Apify Console supports hourly, daily, weekly, and custom schedules. Scheduled runs keep a review dataset current without manual work.
Can I export the dataset to CSV or Excel?
Yes. Open the dataset in Apify Console and download it as CSV, Excel, JSON, XML, or HTML. You can also read it through the Apify API.
Does the Actor work with long URLs that contain tracking parameters?
Yes. The Actor reads the room ID from the URL and ignores extra query parameters.
What happens when Airbnb changes its review endpoint?
The Actor reloads the listing page and retries before it reports a failure. When Airbnb changes the data behind a listing, the Actor refreshes the values it needs to read the reviews and continues the run.
Is it legal to collect Airbnb review data?
Collecting public review data can be legal, but you are responsible for complying with applicable laws, Airbnb's terms, and privacy rules in your jurisdiction. Do not use the data to identify or contact reviewers without a lawful basis.
Related Actors
- Propertyfinder Scraper: Collect property listings from Propertyfinder.ae for sales and rental research.
- Apify Store Scraper: Extract Apify Store actor listings and metadata for marketplace research.
Support
For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is designed for legitimate collection of publicly available data. Users are responsible for using the data responsibly and complying with applicable laws, platform terms, and usage limits.