Airbnb Search Scraper
Pricing
$4.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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:
| Field | Description |
|---|---|
room_id | Airbnb listing id (stable dedup key) |
name | Listing title (e.g. "Latin Quarter & Seine Studio") |
room_type | Type + area (e.g. "Apartment in 5th Arrondissement") |
url | airbnb.com/rooms/<id> — feeds the Detail & Reviews scrapers |
price | Displayed price (e.g. $294) |
price_qualifier | What the price covers (e.g. "for 2 nights") |
price_label | Full price line, incl. any strike-through original |
rating | Guest rating, 0–5 (null when "New") |
review_count | Number of reviews (0 when "New") |
beds / baths / bedrooms | Room info when shown on the card |
latitude / longitude | Map coordinates |
is_superhost | Host is a Superhost |
is_guest_favorite | Listing carries the Guest Favorite badge |
image | Primary photo URL |
Input
| Field | Required | Description |
|---|---|---|
location | ✓ | Where to search — a city, region or landmark (e.g. Paris, New York, Lake Tahoe) |
checkin | Check-in date YYYY-MM-DD. Dates make the price show the stay TOTAL. Defaults to ~3 weeks out. | |
checkout | Check-out date YYYY-MM-DD. Defaults to 2 nights after check-in. | |
adults | Number of adult guests (default 2) | |
max_results | How 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_countare 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
urlthis scraper returns.
Use it from Python
from apify_client import ApifyClientclient = 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"])