Airbnb Search Scraper avatar

Airbnb Search Scraper

Pricing

$4.00 / 1,000 results

Go to Apify Store
Airbnb Search Scraper

Airbnb Search Scraper

Search Airbnb stays for a location and dates — name, price, rating, room type, coordinates, superhost/guest-favorite badges and the listing URL. No login. Pay per result ($4/1k).

Pricing

$4.00 / 1,000 results

Rating

0.0

(0)

Developer

Danny

Danny

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Search Airbnb stays for any location and dates, and get the full listing card for each result — name, nightly/total price, rating, review count, room type, beds, coordinates, superhost & guest-favorite badges, photo, and the listing URL. No login, no browser to manage, fast JSON.

Give it a place (city, region, or landmark) and, optionally, dates and guest count. It reads Airbnb's own search results (18 per page) and pages through them when you ask for more. The listing URLs it returns feed straight into the Airbnb Listing Detail Scraper and Airbnb Listing Reviews Scraper.

Pricing: $4.00 per 1,000 listings (pay per result) — you're only charged for listings actually returned.

What you get

Every listing returns:

FieldDescription
room_idAirbnb listing id (stable dedup key)
nameListing title (e.g. "Latin Quarter & Seine Studio")
room_typeType + area (e.g. "Apartment in 5th Arrondissement")
urlairbnb.com/rooms/<id> — feeds the Detail & Reviews scrapers
priceDisplayed price (e.g. $294)
price_qualifierWhat the price covers (e.g. "for 2 nights")
price_labelFull price line, incl. any strike-through original
ratingGuest rating, 0–5 (null when "New")
review_countNumber of reviews (0 when "New")
beds / baths / bedroomsRoom info when shown on the card
latitude / longitudeMap coordinates
is_superhostHost is a Superhost
is_guest_favoriteListing carries the Guest Favorite badge
imagePrimary photo URL

Input

FieldRequiredDescription
locationWhere to search — a city, region or landmark (e.g. Paris, New York, Lake Tahoe)
checkinCheck-in date YYYY-MM-DD. Dates make the price show the stay TOTAL. Defaults to ~3 weeks out.
checkoutCheck-out date YYYY-MM-DD. Defaults to 2 nights after check-in.
adultsNumber of adult guests (default 2)
max_resultsHow many listings to return (default 18). Above ~18 it pages through Airbnb's results.
{ "location": "Barcelona", "checkin": "2026-09-10", "checkout": "2026-09-13", "adults": 2, "max_results": 36 }

Example output

{
"room_id": "1344613022983239452",
"name": "Latin Quarter & Seine Studio",
"room_type": "Apartment in 5th Arrondissement",
"url": "https://www.airbnb.com/rooms/1344613022983239452",
"price": "$294",
"price_qualifier": "for 2 nights",
"rating": 4.83,
"review_count": 65,
"beds": "1 bed",
"latitude": 48.8464,
"longitude": 2.3522,
"is_superhost": false,
"is_guest_favorite": true,
"image": "https://a0.muscache.com/im/pictures/hosting/...jpeg"
}

Notes & limits

  • Prices are availability- and date-sensitive: a dated search shows the stay total; an undated search uses a default 2-night stay ~3 weeks out. rating/review_count are null/0 for brand-new listings.
  • Results come back in Airbnb's own ranking order and are deduped by room_id.
  • This returns the search card for each stay. For the full listing (amenities, host, description, photos, sub-ratings) use the Airbnb Listing Detail Scraper; for guest reviews use the Airbnb Listing Reviews Scraper — both take the url this scraper returns.

Use it from Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("<THIS_ACTOR_ID>").call(run_input={"location": "Paris", "max_results": 36})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["price"], item["url"])