Airbnb Reviews Scraper avatar

Airbnb Reviews Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Airbnb Reviews Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

3

Bookmarked

13

Total users

4

Monthly active users

4 days ago

Last modified

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?

FieldDescription
property_idNumeric Airbnb listing ID
property_urlRoom URL for the listing
review_idUnique review ID
commentsReview text as published
localized_commentLocalized or translated review text when available
created_atReview creation timestamp
localized_dateHuman-readable review date
ratingStar rating for the review
languageReview language code
responseHost response text when the host replied
reviewer_first_nameReviewer first name
reviewer_locationReviewer location or tenure label
review_photo_urlsPhotos attached to the review
room_type_listing_titleRoom or unit name associated with the review
search_contextURL or property ID used for the run
fetched_atTimestamp 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

  1. Open the Actor on Apify Store.
  2. Paste an Airbnb room URL or enter a numeric property ID.
  3. Set results_wanted and, if needed, max_pages.
  4. Start the run.
  5. 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

ParameterTypeRequiredDefaultDescription
urlStringNohttps://www.airbnb.com/rooms/894121952750427608Room URL. Messy URLs with tracking parameters are supported.
propertyIdStringNo-Numeric ID, or a StayListing, DemandStayListing, or base64 global ID. Takes priority over url.
results_wantedIntegerNo20Maximum number of reviews to save.
max_pagesIntegerNo5Safety cap on review pages.
proxyConfigurationObjectNo{}Apify Proxy or custom proxy URLs for repeated or high-volume runs.

Output Data

FieldTypeDescription
property_idStringNumeric Airbnb listing ID
property_urlStringDirect room URL
review_idStringUnique review ID
commentsStringReview text as published
localized_commentStringLocalized or translated review text
created_atStringReview creation timestamp in ISO format
localized_dateStringHuman-readable review date
localized_responded_dateStringDate shown for the host response
languageStringReview language code
ratingNumberStar rating
rating_accessibility_labelStringScreen-reader label for the rating
responseStringHost response text
reviewer_idStringReviewer user ID
reviewer_first_nameStringReviewer first name
reviewer_picture_urlStringReviewer profile photo URL
reviewer_locationStringReviewer location or tenure label
reviewee_idStringHost user ID
reviewee_first_nameStringHost first name
reviewee_picture_urlStringHost profile photo URL
responder_idStringResponder user ID when separate from the host
responder_first_nameStringResponder first name
review_photo_urlsArrayPhoto URLs attached to the review
room_type_listing_idStringRoom or unit listing ID
room_type_listing_titleStringRoom or unit title
highlight_typeStringReview highlight category
review_highlightStringShort review highlight text
subtitle_itemsArrayExtra review badges or labels
channelStringReview channel when provided
search_contextStringURL or property ID used for the run
fetched_atStringTimestamp 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_pages high enough for your target. Each page holds up to 24 reviews.
  • Keep results_wanted as 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.

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.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

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.