Airbnb Listing Scraper
Pricing
from $6.00 / 1,000 listings
Airbnb Listing Scraper
Scrapes Airbnb listings with full details: price/night, amenities, host info, ratings, reviews, and 36 fields total.
Pricing
from $6.00 / 1,000 listings
Rating
0.0
(0)
Developer
electra bot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Airbnb Listing Detail Scraper
Get everything on an Airbnb listing's own page — full description, the complete amenity list with availability, host profile (Superhost status, rating, years hosting), guest capacity, sleeping arrangements, house rules, cancellation policy, and exact coordinates — as JSON, CSV, or Excel.
No browser, no API key. Paste listing URLs (or bare IDs) and get structured records back.
Pay per result — you're charged per listing delivered. Dead or removed listings are reported and not charged.
Pairs with our Airbnb Search Scraper: search gives you the catalogue for a city, this gives you the depth on each listing.
What can I use it for?
- Short-let investment analysis — amenities, capacity, and host quality are the variables that drive nightly rates; get them structured.
- Competitor benchmarking — compare your listing's amenities and policies against the top performers in your area.
- Market research — what share of listings in a market offer a dishwasher, a workspace, free parking?
- Travel products & AI — full descriptions and amenity lists, ready for embedding, search, or comparison features.
- Enriching search data — run the Search Scraper for a city, then feed the URLs here for the detail layer.
Input
| Field | Required | Description |
|---|---|---|
| Listing URLs or IDs | ✔ | One or more https://www.airbnb.com/rooms/… URLs or bare numeric IDs. Country domains (airbnb.co.uk, airbnb.de…) work too. |
| Check-in / Check-out | – | YYYY-MM-DD. Affects availability-dependent fields. |
| Adults | – | Guest count. |
| Currency | – | ISO code (USD, EUR, GBP…). Default USD. |
| Proxy configuration | – | Automatic by default: datacenter proxy first, escalating to RESIDENTIAL only if Airbnb blocks it. |
Output
One record per listing:
{"listingId": "45307024","url": "https://www.airbnb.com/rooms/45307024","title": "Rental unit in Paço de Arcos · ★5.0 · 2 bedrooms · 4 beds · 2 private baths","propertyType": "Entire rental unit","personCapacity": 4,"rating": 5.0,"reviewsCount": 236,"description": "Apartment rebuilt by an architect…","latitude": 38.6929,"longitude": -9.298,"locationSubtitle": "Paço de Arcos, Lisboa, Portugal","hostName": "Carlos","hostIsSuperhost": true,"hostRatingAverage": 5.0,"hostRatingCount": 236,"hostYearsHosting": 5,"sleepingArrangements": ["Bedroom 1: 1 double bed", "Bedroom 2: 2 single beds"],"houseRules": "No parties\nNo smoking","cancellationPolicy": "Free cancellation for 48 hours","amenities": [{"name": "Sea view", "group": "Scenic views", "available": true},{"name": "Kitchen", "group": "Kitchen and dining", "available": true},{"name": "Dishwasher", "group": "Kitchen and dining", "available": false}]}
Amenities are the complete list from the listing's "Show all amenities" panel (typically 40–70 entries in 10+ groups), each flagged available or not — not just the handful previewed on the page.
Reliability
- Fail-loud contract — a changed Airbnb page format raises a loud error instead of silently delivering hollow records.
- Dead listings handled per-item — a removed or private listing is reported (and not charged) while the rest of the batch continues.
- Tiered proxy — datacenter first, automatic escalation to residential only when blocked, so you don't pay residential rates by default.
- Resumable — if a run is aborted or capped, resurrect it: already-delivered listings are never re-scraped or re-charged.
Usage from code
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("electrabot.info/airbnb-listing-scraper").call(run_input={"listingUrls": ["https://www.airbnb.com/rooms/45307024"],"currency": "EUR"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], len(item["amenities"]), "amenities")
FAQ
Why did one of my listings fail?
Airbnb serves a valid-but-empty page for listings that were removed or made
private. Those are reported per-listing in the run's SUMMARY and are not
charged; the rest of the batch continues.
Does it include prices? Nightly pricing is a search-results concept (it depends on dates and stay length) — use our Airbnb Search Scraper for parsed prices, then this actor for the detail layer.
Is scraping Airbnb legal? This actor accesses only publicly available listing pages. You are responsible for complying with applicable laws and Airbnb's Terms of Service.
Disclaimer
This is an unofficial tool. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to Airbnb, Inc. "Airbnb" and related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only.
This actor accesses only publicly available information. You are responsible for ensuring your use complies with applicable laws, Airbnb's Terms of Service, and applicable rate-limiting rules. Use it ethically and at your own risk.