Airbnb Guest Origin Scraper – Guest Demographics by Country
Pricing
from $2.50 / 1,000 results
Airbnb Guest Origin Scraper – Guest Demographics by Country
Discover WHERE Airbnb guests come from. Extracts reviewer locations from listing reviews (public data, no login) and aggregates guest demographics by country and region — per listing and per market. Search by location, bounding box, URL, or listing IDs.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Luis Segura
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Discover where Airbnb guests actually come from. This actor extracts reviewer locations from Airbnb listing reviews (100% public data — no account or login required) and turns them into ready-to-use guest demographic breakdowns by country and region, per listing and per market.
No account required. No API key needed.
Why this data is valuable
Official tourism statistics tell you who enters a country — they never tell you who stays in short-term rentals, or in which exact neighborhood. This actor fills that gap:
- Hosts & property managers — adapt your listing to your real guest mix (hot water expectations, plug adapters, welcome book language, coffee vs. tea) and target your ads where your guests actually live. If 40% of your guests are Canadian, advertise in Canada.
- STR investors — before buying in a zone, see which nationalities visit it and whether they match your price segment.
- Tourism boards & DMOs — hyperlocal source-market data for vacation rentals that exists in no official statistic.
- Market researchers & consultancies — origin-of-demand studies by micro-zone, with year-over-year trend data included.
What You Get
Three row types in one dataset:
1. review rows — one per review
| Field | Description |
|---|---|
listingId, listingUrl, listingTitle | The listing |
reviewerName, reviewerId | The guest |
date, rating, language | Review metadata |
reviewerLocationRaw | Location exactly as shown on Airbnb, e.g. "Brooklyn, New York" |
country | Normalized country — "United States" |
countryCode | ISO code — "US" |
region | "North America", "Europe", "Caribbean", ... |
2. listing_summary rows — one per listing
Full demographic profile: byCountry (count + % per country), byRegion, topCountry, locationCoveragePct, distinctCountries.
3. global_summary row — one per run
The whole market aggregated, plus byYearTopCountries — top source countries per review year, so you can see demand trends (e.g. Canadian share growing 2022→2025).
How to Use It
Analyze a whole market (easiest):
{ "location": "Lisbon, Portugal", "maxListings": 50 }
Analyze specific listings:
{ "urls": ["https://www.airbnb.com/rooms/48711480"], "maxReviewsPerListing": 0 }
Summaries only (cheapest for market studies):
{ "location": "Tulum, Mexico", "maxListings": 100, "emitReviewRows": false }
Also supports Airbnb search URLs and raw GPS bounding boxes.
Sample Output
{"type": "listing_summary","listingId": "48711480","reviewsScraped": 100,"reviewsWithLocation": 87,"locationCoveragePct": 87,"distinctCountries": 12,"topCountry": "United States","topCountryPct": 43.68,"byCountry": [{ "country": "United States", "countryCode": "US", "count": 38, "pct": 43.68 },{ "country": "Canada", "countryCode": "CA", "count": 14, "pct": 16.09 },{ "country": "France", "countryCode": "FR", "count": 9, "pct": 10.34 }],"byRegion": [{ "region": "North America", "count": 52, "pct": 59.77 },{ "region": "Europe", "count": 21, "pct": 24.14 }]}
How it works
The actor reads the same public reviews data Airbnb shows on every listing page, including the reviewer's self-reported location. Locations are then normalized (handles English, Spanish, French, German and Portuguese location strings, US states, Canadian provinces, and 200+ major cities) into canonical countries and regions.
- Reviews are fetched most-recent-first.
maxReviewsPerListing: 0fetches every review for maximum accuracy.- Not every reviewer sets a location — expect 60–90% coverage; the exact coverage is reported per listing (
locationCoveragePct).
Pricing & Cost
Pay per result. Every dataset row (review, listing summary, global summary) is one result.
| Scenario | Rows (approx.) |
|---|---|
| 1 listing, 100 reviews | ~101 |
| 50 listings × 100 reviews | ~5,051 |
| 100 listings, summaries only | ~101 |
Tip: for market studies, emitReviewRows: false gives you the full demographic picture at ~1% of the cost.
Proxy Recommendations
| Volume | Proxy |
|---|---|
| < 20 listings | None needed |
| 20–100 listings | Apify residential recommended |
| 100+ listings | Apify residential required |
Limitations
- Reviewer location is self-reported and optional — coverage is typically 60–90%, never 100%.
- Locations resolve to country level; city-level analysis is possible from
reviewerLocationRaw. - Unrecognized/ambiguous locations are kept raw with
country: nullso you never lose data.
Legal
This actor collects only publicly visible data shown to any anonymous visitor on airbnb.com listing pages. It does not access private profiles, does not log in, and does not collect contact information. Please use the data in compliance with applicable laws and Airbnb's terms.