Airbnb Listing Details Scraper - Ratings, Host & Property
Pricing
from $4.90 / 1,000 listings
Airbnb Listing Details Scraper - Ratings, Host & Property
Airbnb listing details scraper: pass listing URLs or room IDs and get clean rows - title, description, property and room type, guest capacity, rating, review count, the 4 sub-ratings, superhost flag, host name, city, latitude, longitude and images. No API key, no login.
Pricing
from $4.90 / 1,000 listings
Rating
0.0
(0)
Developer
Flash Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Give it Airbnb listing URLs or room IDs and get back structured detail rows: overall rating, review count, sub-ratings, superhost flag, host name, capacity, beds, city and coordinates - with photos optional. No login, no API key.
- By URL or room ID - paste listings, get 31 stable columns each
- Ratings incl. sub-scores - cleanliness, accuracy, check-in, communication, location, value
- Host context - name, superhost status
- Geo ready - latitude/longitude on every listing for mapping
Quick start
Open the actor, keep the defaults, press Save & start. The reference run below is exactly that. Then adjust the input for your own search and export CSV, JSON or Excel from the dataset tab - or call it from the API and read the dataset programmatically.
A real row
Straight from a reference run, trimmed to the highlights:
{"room_id": "20669368","name": "Little Country Houses - Finley's Fort + hot tub","url": "https://www.airbnb.com/rooms/20669368","description": "A stunning, hand crafted cabin with your own private jacuzzi hot tub located in the beautiful North Cotswold Countryside. A haven to escape to for couples - we do not accept infants in this cabin.\n\nTo truly relax you do not need to drive anywhere as we are just a 5 minute walk from the pretty village of Mickleton where there are 2 pubs, a village shop, deli, butchers and hotel. \n\nIF BOOKED CHECK OUR OTHER CABINS - DAISY'S DEN, DJ'S DIGS, MIRTS MANSION AND JEDS SHED","property_type": "Tiny home","room_type": "Entire home/apt","person_capacity": 2,"bedrooms": 1,"beds": 1,"bathrooms": 1,"rating": 4.91,"review_count": 321}
How it works
Each listing page embeds its data as JSON-LD plus a deferred state blob; the actor fetches the page, parses both, reconciles them into one row and moves to your next listing. No browser is spun up, which is why runs finish in seconds.
Every column, with measured fill
| Column | Filled on the reference run |
|---|---|
room_id | 100% |
name | 100% |
url | 100% |
description | 100% |
property_type | 100% |
room_type | 100% |
person_capacity | 100% |
bedrooms | 100% |
beds | 100% |
bathrooms | 100% |
rating | 100% |
review_count | 100% |
rating_accuracy | 100% |
rating_cleanliness | 100% |
rating_location | 100% |
rating_value | 100% |
rating_checkin | 100% |
rating_communication | 100% |
is_superhost | 100% |
is_guest_favorite | 100% |
host_name | 100% |
host_id | 100% |
host_rating_count | 100% |
locality | 100% |
latitude | 100% |
longitude | 100% |
image | 100% |
images_count | 100% |
scraped_at | 100% |
actor_build | 100% |
actor_run_id | 100% |
A missing value is null; the column set never shifts, so your CSV import is stable across runs.
Input reference
| Field | Type | Default | Notes |
|---|---|---|---|
listingUrls | array | ['https://www.airbnb.c | Full listing URLs, e.g. https://www.airbnb.com/rooms/20669368. Extra query parameters are fine and are ignored |
roomIds | array | Bare numeric Airbnb room IDs, e.g. 20669368 — the number at the end of a listing URL. | |
includeImages | boolean | False | Add an 'images' array with every photo URL found. Off = only the main photo plus a count. |
locale | string | en | Preferred content language for the listing text, e.g. en, fr, es, de. |
maxItems | integer | 50 | Maximum number of listings to scrape in this run. |
proxyConfiguration | object | {'useApifyProxy': Fals | Optional. Route requests through Apify Proxy. Recommended for larger runs: this site throttles or blocks datac |
Pricing
Pay per result - charged only for rows delivered; the current rate is on this page's Pricing tab. Zero results cost zero, and failed fetches are never billed.
Use cases
- Comp analysis - Rate and review-count benchmarks for listings you manage or scout
- Market scans - Turn a saved list of candidate properties into a comparable table
- Due diligence - Verify a listing's real ratings before booking blocks or partnerships
Honest limits
We would rather say it here than have you find out on a paid run:
- Nightly price is not in the output - Airbnb renders price client-side per date search, so any price this page could show would be wrong more often than right. This actor ships the listing facts that are stable
- One listing in = one row out; it does not discover listings by area (by design - discovery is a different, heavier product)
Scheduling & integrations
Every input works identically from the API, so this actor drops into schedules and pipelines: run it on an Apify Schedule for a recurring export, point a webhook at the finished run to push rows into Slack, Google Sheets (via Zapier/Make/n8n) or your warehouse, and page through the dataset with the standard Dataset API. Saved tasks keep your configuration one click away.
FAQ
Why is there no price column? Airbnb computes price per dates/guests at request time; a scraped 'price' would be misleading. Everything else on the listing page is fair game.
Can it find listings in a city? No - it details listings you already have. Feed it URLs from your own search.
Related actors from this account
Built by Flash Scrape - measured claims, stable columns, no API keys. Something missing? Open an issue on this actor and ask.