Airbnb Search Scraper avatar

Airbnb Search Scraper

Pricing

from $2.00 / 1,000 listings

Go to Apify Store
Airbnb Search Scraper

Airbnb Search Scraper

Scrapes Airbnb search results with full filter support: dates, guests, price, room type, property type, amenities, booking options, and category tags.

Pricing

from $2.00 / 1,000 listings

Rating

0.0

(0)

Developer

electra bot

electra bot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Search Airbnb listings by location and filters — and get name, price (with discounts), rating, review count, coordinates, room type, Superhost and Guest-favourite badges, and photos — as JSON, CSV, or Excel.

No browser, no API key. Full filter support: dates, guests, price range, bedrooms, beds, bathrooms, room type, Superhost.

Pay per result — you're charged per listing delivered.


What can I use it for?

  • Market & pricing research — what do comparable stays charge in a city, on your dates? Prices come parsed as numbers, not strings.
  • Short-let investment analysis — ratings, review counts, and coordinates let you map supply, demand, and quality by neighbourhood.
  • Competitor monitoring — track a market's listings, prices, and badges over time.
  • Travel and comparison sites — build inventory feeds with images and deep links.
  • Data science / AI — geo-coded, structured listing data ready for modelling.

Input

FieldRequiredDescription
Locatione.g. Lisbon, Portugal. Provide this or a search URL.
…or an Airbnb search URLPaste a ready-made Airbnb search link (with your own filters or map bounds).
Check-in / Check-outYYYY-MM-DD. Prices are only exact when dates are set — otherwise Airbnb shows indicative pricing.
Adults / Children / Infants / PetsGuest counts (affects availability and price).
Min / Max pricePer-night price band.
Min bedrooms / beds / bathroomsSize filters.
Room typesEntire home/apt, Private room, Shared room, Hotel room.
Superhost onlyRestrict to Superhost listings.
CurrencyISO code (USD, EUR, GBP…). Default USD.
Max listings1–1,000 (default 100). Each listing is one billable result.
Proxy configurationAutomatic 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",
"name": "THE miniPENTHOUSE terrace & SPA",
"roomType": "Room in Lisbon",
"locationLine": "Home Out 303 - Suite w/WC + balcony",
"details": ["2 bedrooms", "12–17 Jan"],
"rating": 4.93,
"reviewsCount": 45,
"priceLabel": "$1,079",
"price": 1079.0,
"originalPrice": 1199.0,
"currency": "$",
"priceQualifier": "for 5 nights",
"isGuestFavorite": true,
"isSuperhost": false,
"badges": ["Guest favourite"],
"latitude": 38.6929,
"longitude": -9.298,
"imageUrls": ["https://a0.muscache.com/im/pictures/..."],
"thumbnailUrl": "https://a0.muscache.com/im/pictures/..."
}
FieldDescription
price / originalPriceParsed numbers, not display strings — sort and average them directly. Discounted stays show both.
rating / reviewsCountParsed out of Airbnb's rating label
latitude / longitudeMap listings, cluster by neighbourhood, compute distances
isGuestFavorite / isSuperhostQuality signals
imageUrlsFull-size photo URLs

Why this scraper is reliable

  • Reads Airbnb's own structured data — the actor parses the GraphQL payload Airbnb embeds in its search pages, so you get exactly the values the site shows, not text scraped off the screen.
  • No browser — one request per page of 18 listings. Fast and cheap.
  • Fails loudly on format changes — if Airbnb changes its page structure, the run reports schema drift explicitly instead of quietly returning an empty dataset. (A scraper that silently returns nothing when a site changes is worse than one that stops: you'd never know your data was wrong.) A daily automated check on our side catches this before you do.
  • Block-aware with automatic escalation — datacenter proxy first, then residential, then a fresh IP, before ever giving up.
  • Prices parsed across locales$1,234.50, €1.234,50, ₹1,07,897 all become correct numbers.
  • Batch-safe — listings are saved incrementally, deduplicated across pages, and runs are checkpointed: an interruption never loses finished work or double-charges you.

Tips & limits

  • Set check-in/check-out dates for exact prices. Without dates, Airbnb shows indicative pricing that can differ from a real booking quote.
  • Airbnb's search returns roughly 270–300 listings per query. To cover a whole city, split it into neighbourhoods (or paste map-bounded search URLs) rather than raising Max listings.
  • price reflects Airbnb's displayed total for the selected dates and guests (see priceQualifier, e.g. "for 5 nights").

Use it from code

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("electrabot.info/airbnb-search-scraper").call(
run_input={"location": "Lisbon, Portugal", "checkIn": "2026-09-01",
"checkOut": "2026-09-05", "adults": 2, "maxResults": 200}
)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
avg = sum(r["price"] for r in rows if r["price"]) / len(rows)
print(f"average: {avg:.0f}")

FAQ

Why are some prices null? Occasionally a listing shows no price (unavailable for your dates). The record is still returned with everything else.

Can I search a map area instead of a city name? Yes — draw the area on Airbnb, copy the URL, and paste it into Airbnb search URL.

Does it get amenities / host details / full descriptions? Those live on each listing's own page, not in search results. Tell us in the Issues tab if you need a detail-page scraper.

Is scraping Airbnb legal? This actor accesses only publicly available search results. 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.