Airbnb Scraper — Listings, Prices & Ratings avatar

Airbnb Scraper — Listings, Prices & Ratings

Pricing

from $4.00 / 1,000 listing scrapeds

Go to Apify Store
Airbnb Scraper — Listings, Prices & Ratings

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

Ethan Teague

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

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 groupFields
IdentitylistingId, direct url, name (host's headline), title (e.g. "Home in Sarasota")
PricepriceLabel ("$1,223 for 5 nights, originally $1,573"), price, originalPrice, discountedPrice, priceQualifier, per-night line when shown
Qualityrating (4.95), reviewsCount, isNewListing, badges (Guest favorite, Superhost)
Locationlatitude, longitude — map-ready
MediaUp to 5 photo URLs
ContextSearch 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

  1. 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.
  2. Set max listings per search (Airbnb serves ~270 per search — split into narrower searches for full market coverage).
  3. 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

EventPrice
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.