Airbnb Reviews Scraper
Pricing
from $3.00 / 1,000 record scrapeds
Airbnb Reviews Scraper
Extract comprehensive guest reviews from Airbnb.com including detailed ratings, comments, traveler profiles, and host responses. Perfect for reputation analysis, hospitality market research, and competitive intelligence in the short-term rental industry.
Pricing
from $3.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
Reviewly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
8 hours ago
Last modified
Categories
Share
Airbnb Reviews Scraper — Extract Guest Reviews at Scale
Get structured Airbnb review data from any property listing in minutes — no coding required.
Whether you manage short-term rentals, research hospitality markets, or track competitor performance, this Actor delivers clean, ready-to-use review data directly into your dataset.
- Extract hundreds or thousands of reviews with a single run
- Filter by date to get only what's new since your last extraction
- Full guest profiles, star ratings, host responses, and category scores
- Runs on residential proxies — reliable even at scale
What This Actor Does
Airbnb Reviews Scraper extracts guest reviews from any Airbnb property listing using Airbnb's internal API. Paste in one or more listing URLs, configure your options, and get back a clean JSON dataset with everything you need for analysis, monitoring, or automation.
Who is it for?
- Property managers tracking guest satisfaction across their portfolio
- Short-term rental agencies benchmarking against competitors
- Market researchers studying hospitality trends at scale
- Data scientists building sentiment models from real guest feedback
- Hosts monitoring their reputation and improving performance
Key Features
- Bulk extraction — scrape multiple properties in a single run
- Date filtering — stop at a specific date to collect only recent reviews
- Review limit — cap the number of reviews per property to control cost
- Auto-recovery — automatically refreshes internal API tokens when they expire, so runs don't fail mid-scrape
- Full data — review text, star rating, reviewer profile, host response, language, photos, and more
- Residential proxies — built-in, no setup needed
- Multiple export formats — JSON, CSV, Excel, XML
Why This Actor is Different
Most Airbnb scrapers break frequently because they rely on a hardcoded API query hash that Airbnb rotates regularly. This Actor detects when the hash becomes stale and refreshes it automatically mid-run, without failing or requiring manual intervention.
It also uses Airbnb's internal GraphQL API directly — not HTML parsing — which means:
- Faster extraction (structured data, no DOM traversal)
- More reliable output (no layout-change breakage)
- Richer data (fields that never appear in the HTML)
Input Configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | Yes | — | List of Airbnb listing URLs to scrape |
maxNumberOfReviews | number | No | 0 (all) | Max reviews to collect per property. 0 means no limit |
targetDate | string | No | — | Stop collecting reviews older than this date (ISO 8601: 2025-01-01) |
proxyConfiguration | object | No | US residential | Proxy country override |
Example input:
{"startUrls": [{ "url": "https://www.airbnb.com/rooms/12345678" },{ "url": "https://www.airbnb.fr/rooms/87654321" }],"maxNumberOfReviews": 200,"targetDate": "2025-01-01"}
Tips:
- Both
.comand.frURLs work — mix freely - Use
targetDatewhen scheduling regular runs to avoid re-collecting old reviews - Start with
maxNumberOfReviews: 50to test before a full extraction - Remove query parameters from URLs (everything after
?) for cleaner runs — the Actor handles this automatically
Output Format
Each dataset item corresponds to one property and contains two top-level keys: entity (property metadata) and reviews (the list of extracted reviews).
Sample output:
{"entity": {"score": 4.92,"businessName": "Mountain View Studio Residence","totalNumberOfReviews": 48,"ratings": [{ "count": 30, "name": "Hospitality", "icon": "https://..." },{ "count": 24, "name": "Location", "icon": "https://..." }],"businessUrl": "https://www.airbnb.com/rooms/12345678"},"reviews": [{"reviewId": "1621075446914143951","title": "Great stay","text": "Everything was perfect, highly recommend!","rating": 5,"createdAt": "2026-02-14T15:47:32+00:00","reviewer": {"name": "Sarah","id": "43860269","pictureUrl": "https://...","isSuperhost": false},"response": "Thank you for your stay!","reviewee": {"name": "John","id": "106171829","pictureUrl": "https://...","isSuperhost": false},"language": "en"}]}
Field reference:
| Field | Description |
|---|---|
entity.score | Overall property rating |
entity.businessName | Listing title |
entity.totalNumberOfReviews | Total published review count |
entity.ratings | Category-level scores (Hospitality, Location, etc.) |
entity.businessUrl | Original listing URL |
reviews[].reviewId | Unique Airbnb review identifier |
reviews[].title | Review headline |
reviews[].text | Full review body |
reviews[].rating | Star rating (1–5) |
reviews[].createdAt | Publication date (ISO 8601) |
reviews[].reviewer | Guest name, ID, photo, superhost status |
reviews[].response | Host reply text (or null) |
reviews[].reviewee | Host name, ID, photo |
reviews[].language | Review language code (en, fr, es, etc.) |
How to Use
- Open the Actor in Apify Console
- Paste one or more Airbnb listing URLs into Start URLs
- Optionally set Max Number of Reviews and/or a Target Date
- Click Start and wait for the run to finish
- Download your data as JSON, CSV, or Excel from the Dataset tab
To use the API:
curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://www.airbnb.com/rooms/12345678" }],"maxNumberOfReviews": 100,"targetDate": "2025-01-01"}'
JavaScript (Node.js):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({startUrls: [{ url: 'https://www.airbnb.com/rooms/12345678' }],maxNumberOfReviews: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('YOUR_ACTOR_ID').call(run_input={'startUrls': [{'url': 'https://www.airbnb.com/rooms/12345678'}],'maxNumberOfReviews': 200,})items = client.dataset(run['defaultDatasetId']).list_items().items
Use Cases
1. Reputation Monitoring
Schedule weekly runs on your own listings to track new reviews over time. Use targetDate to collect only what's been posted since the last run. Feed results into a dashboard or alerting system to catch negative feedback fast.
2. Competitive Intelligence
Scrape competitor listings in your market to understand what guests praise or criticize. Identify gaps in your own offering — amenities, communication, cleanliness — and act on real feedback rather than guesswork.
3. Market Research
Collect thousands of reviews across a city or property type to analyze satisfaction trends, pricing sentiment, or seasonal patterns. Export to Excel or Tableau for analysis.
4. Sentiment Analysis & NLP
Build a training dataset for sentiment classifiers or topic models using the text and rating fields. The language field lets you filter by locale for multilingual models.
5. Real Estate Investment
Before acquiring a short-term rental property, scrape its full review history to assess guest satisfaction trends, host responsiveness, and recurring complaints.
Advanced Tips
Scheduling regular extractions:
Use Apify's built-in scheduler to run this Actor weekly or daily. Set targetDate to the date of your last run so you only collect new reviews — keeping costs low and datasets clean.
Scraping large properties: For properties with 500+ reviews, the Actor paginates automatically. No configuration needed — just let it run.
Integrating with other tools: Use Apify webhooks to trigger a downstream action (Slack alert, Google Sheets update, email report) as soon as a run completes.
Proxy country:
By default the Actor uses US residential proxies. If you're scraping .fr listings and getting unexpected results, set proxyConfiguration.apifyProxyCountry to FR.
Pricing
This Actor uses pay-per-event pricing — you only pay for successfully extracted reviews.
| Plan | Price per 1,000 reviews |
|---|---|
| Free / Standard | $3.00 |
| Silver | $2.50 |
| Gold | $2.00 |
Examples:
| Scenario | Reviews | Cost (Standard) |
|---|---|---|
| 1 property, 100 reviews | 100 | $0.30 |
| 10 properties, 50 reviews each | 500 | $1.50 |
| 1 property, 1,000 reviews | 1,000 | $3.00 |
| 100 properties, 100 reviews each | 10,000 | $30.00 |
With Apify's free tier ($5/month credit), you can extract up to 1,666 reviews completely free every month.
FAQ & Troubleshooting
No reviews were extracted
- Verify the URL is a valid Airbnb listing (format:
airbnb.com/rooms/XXXXXXXX) - Make sure the property has published reviews
- Check that
targetDateisn't set too recently
Fewer reviews than expected
- Increase or remove
maxNumberOfReviews - Adjust or remove
targetDate - Some properties have fewer accessible reviews than the displayed count
Missing fields in some reviews
responseisnullwhen the host hasn't replied- Not all reviewers fill every field — this reflects the real data on Airbnb
The run failed mid-way
- Retry the run — the Actor auto-refreshes its internal API token and recovers from transient errors
- If it keeps failing, open an issue on the Issues tab
Can I scrape reviews in bulk across many properties?
Yes — add as many URLs as you need to startUrls. The Actor processes them sequentially.
Is this legal? Web scraping publicly available data is generally permitted for research and analysis. Always ensure your use case complies with Airbnb's terms of service and applicable laws in your jurisdiction.
Support
- Bug reports & feature requests: use the ../../issues
- Custom solutions or integrations: contact me@ahmedhrid.com
- Apify platform help: Apify Documentation · Apify Discord
Built for short-term rental professionals, researchers, and developers who need reliable Airbnb review data at scale.