Airbnb Reviews Scraper
Pricing
Pay per usage
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
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract Airbnb stay reviews at scale using room URLs or property IDs. Build clean datasets with reviewer details, ratings, comment text, host responses, and timestamps for analytics, market research, and reputation monitoring.
Features
- Simple input mode — Run by Airbnb room URL or direct property ID.
- Messy ID handling — Accepts numeric IDs, room links with query strings, and global ID formats.
- Review pagination — Collects reviews across multiple pages until your target is reached.
- Null-free dataset output — Excludes empty fields to keep data clean and analysis-ready.
- Auto-healing API context — Refreshes Airbnb API key and persisted hash automatically when required.
Use Cases
Hospitality Reputation Monitoring
Track guest sentiment, ratings, and recurring feedback points across one or multiple properties.
Competitor Benchmarking
Collect review quality signals for competing listings in the same destination.
Product and Service Improvements
Analyze repeated complaints and praise themes to improve stay quality and guest experience.
Review Intelligence Workflows
Feed clean review data into dashboards, BI pipelines, LLM summarization tools, or CRM automations.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | String | No | "https://www.airbnb.com/rooms/894121952750427608" | Preferred input. Airbnb room URL (messy query strings are supported). |
propertyId | String | No | "894121952750427608" | Direct property ID. Supports numeric and global ID formats. |
results_wanted | Integer | No | 20 | Maximum number of review records to save. |
max_pages | Integer | No | 5 | Safety cap for pagination loops. |
proxyConfiguration | Object | No | Residential Apify Proxy | Proxy settings for reliability and stability. |
Output Data
Each dataset item contains available review metadata without empty/null values.
| Field | Type | Description |
|---|---|---|
property_id | String | Airbnb property numeric identifier. |
property_url | String | Airbnb room URL. |
review_id | String | Unique review identifier. |
created_at | String | Original review timestamp. |
localized_date | String | Human-readable review date. |
rating | Number | Review rating value. |
language | String | Review language. |
comments | String | Original review text. |
localized_comment | String | Localized/transformed review text when available. |
response | String | Host response text. |
reviewer_first_name | String | Reviewer first name. |
reviewer_location | String | Reviewer location text. |
search_context | String | URL or property ID context used in the run. |
fetched_at | String | Extraction timestamp. |
Usage Examples
Room URL Input
{"url": "https://www.airbnb.com/rooms/894121952750427608","results_wanted": 20,"max_pages": 5}
Property ID Input
{"propertyId": "894121952750427608","results_wanted": 50,"max_pages": 8}
Proxy Configuration
{"url": "https://www.airbnb.com/rooms/894121952750427608","results_wanted": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"property_id": "894121952750427608","property_url": "https://www.airbnb.com/rooms/894121952750427608","review_id": "1260917197138451137","created_at": "2024-08-19T21:06:42.000Z","localized_date": "August 2024","rating": 5,"language": "en","comments": "Very responsive host and great location.","localized_comment": "Very responsive host and great location.","reviewer_first_name": "Olivia","reviewer_location": "Toronto, Canada","search_context": "https://www.airbnb.com/rooms/894121952750427608","fetched_at": "2026-04-22T11:34:08.120Z"}
Tips For Best Results
Prioritize Direct Property Inputs
Use url or propertyId whenever possible for the fastest and most deterministic collection.
Keep Test Runs Small
Start with results_wanted: 20 during validation, then increase for production jobs.
Enable Residential Proxy
For stable long runs and reduced blocking risk, keep residential proxy enabled.
Use URL Or Property ID
This actor is optimized for single-property review extraction from direct room URLs and property IDs.
Integrations
- Google Sheets — Build review trackers and sentiment dashboards.
- Airtable — Create searchable review intelligence databases.
- Looker Studio / BI tools — Visualize rating and sentiment trends.
- Make / Zapier — Trigger workflows from fresh review datasets.
- Webhooks — Push output to your own API or internal systems.
Export Formats
- JSON — For APIs and programmatic pipelines.
- CSV — For spreadsheet and analyst workflows.
- Excel — For business reporting.
- XML — For compatible legacy systems.
Frequently Asked Questions
Can I run with only a property ID?
Yes. A numeric property ID is fully supported.
Does it self-heal if Airbnb changes key/hash values?
Yes. The actor auto-refreshes bootstrap API key and persisted operation hash at runtime.
What happens if some review fields are missing?
Missing/empty fields are excluded from output records automatically.
Can I scrape more than one page of reviews?
Yes. Use max_pages and results_wanted to control pagination depth.
Will this work with long, messy room URLs?
Yes. URLs with extra tracking parameters and query strings are supported.
Support
For issues, improvements, or feature requests, open a ticket via Apify Console.
Resources
Legal Notice
This actor is intended for legitimate data collection and analysis workflows. Users are responsible for complying with applicable laws, platform terms, and usage limits.