Airbnb Scraper — Listings, Prices & Ratings
Pricing
from $4.00 / 1,000 listing scrapeds
Airbnb Scraper — Listings, Prices & Ratings
Scrape Airbnb search results into clean flat JSON: listing IDs and URLs, nightly/total prices with discounts, ratings and review counts, coordinates, images, badges. Any Airbnb search URL with all its filters.
Pricing
from $4.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Ethan Teague
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Scrape Airbnb search results into clean, flat JSON: listing IDs and URLs, prices (including active discounts), ratings and review counts, GPS coordinates, photos, and badges like Guest favorite and Superhost. Paste any Airbnb search URL — every filter you set in the browser is honored: dates, guests, price range, amenities, property types, even a drawn map area.
Built reliability-first: no headless browsers to crash, no brittle CSS selectors — the actor reads Airbnb's own embedded data payload, with automatic retries and IP rotation.
What you get per listing
| Field group | Fields |
|---|---|
| Identity | listingId, direct url, name (host's headline), title (e.g. "Home in Sarasota") |
| Price | priceLabel ("$1,223 for 5 nights, originally $1,573"), price, originalPrice, discountedPrice, priceQualifier, per-night line when shown |
| Quality | rating (4.95), reviewsCount, isNewListing, badges (Guest favorite, Superhost) |
| Location | latitude, longitude — map-ready |
| Media | Up to 5 photo URLs |
| Context | Search location, page, position (rank tracking), check-in/out dates used |
Use cases
- Pricing & revenue research — pull competitors' rates for your dates across a whole market; track discounts week over week.
- Market analysis — supply counts, rating distributions, and price bands by neighborhood (coordinates included for mapping).
- Deal hunting at scale — filter by discount size across hundreds of listings.
- Rank tracking — position field shows where any listing appears for a given search.
- AI agents — feed live short-term-rental market data to agents via API or MCP.
Quick start
- Type plain locations (e.g.
Austin, Texas) — optionally with check-in/out dates and guest count, so prices reflect real stays, or paste full Airbnb search URLs from your browser for full filter control. - Set max listings per search (Airbnb serves ~270 per search — split into narrower searches for full market coverage).
- Run and export JSON/CSV/Excel, or call it on a schedule via the API.
Example input
{"locations": ["Sarasota, Florida"],"checkIn": "2026-08-16","checkOut": "2026-08-21","adults": 2,"maxListingsPerSearch": 180,"currency": "USD"}
Example output
{"type": "listing","listingId": "1652957843916333450","url": "https://www.airbnb.com/rooms/1652957843916333450","name": "Stylish Pool Home 4BR Near Siesta Key \"Palm Noir\"","title": "Home in Sarasota","rating": 5.0,"reviewsCount": 8,"isNewListing": false,"badges": ["Guest favorite"],"priceLabel": "$3,190 for 5 nights","price": "$3,190","priceQualifier": "for 5 nights","latitude": 27.30754,"longitude": -82.52108,"images": ["https://a0.muscache.com/im/pictures/hosting/..."],"searchLocation": "Sarasota, Florida","page": 0,"position": 2}
Pricing
| Event | Price |
|---|---|
| Actor start | $0.001 per run |
| Listing scraped | $0.004 (= $4 per 1,000 listings) |
A full market snapshot (270 listings) ≈ $1.09. You pay only for listings actually delivered — failed requests cost you nothing. Set a Maximum total charge on any run to hard-cap spend.
Use it via API
curl -X POST "https://api.apify.com/v2/acts/USERNAME~airbnb-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"locations": ["Lisbon"], "maxListingsPerSearch": 54}'
Works with the Apify JavaScript/Python clients, schedules, webhooks, and integrations (Google Sheets, Make, Zapier, LangChain), and as an AI-agent tool via the Apify MCP server.
Reliability notes
- Reads Airbnb's embedded state payload — the same data the page itself renders — instead of scraping HTML markup, so cosmetic redesigns don't break it.
- Residential proxy on by default (Airbnb blocks datacenter IPs); requests retry with fresh IPs automatically.
- If Airbnb changes its payload structure, the actor fails loudly with a clear message rather than silently returning junk — and I ship fixes fast. Found an issue? Open it on the Issues tab; I typically respond within a day.
FAQ
Are prices per night or per stay? When your search has dates, Airbnb shows stay totals (the priceQualifier says so, e.g. "for 5 nights") plus a per-night line when available. Without dates, listings show representative nightly pricing.
Why max ~270 listings per search? That's Airbnb's own cap per search. To cover a large market fully, run several narrower searches (by neighborhood, price band, or property type) — the actor dedupes by listingId within a run.
Is this allowed? The actor reads publicly visible search results at polite rates. You're responsible for complying with applicable laws and terms for your use case.
Roadmap — listing detail enrichment (amenities, descriptions, host profiles), reviews, and availability calendars. Open an issue to vote.