Airbnb Listings Scraper
Pricing
Pay per event
Airbnb Listings Scraper
Scrape Airbnb listings for any city or region: price per night, rating, reviews, coordinates, photos, host type and room type. Optional details add description, bedrooms, beds, bathrooms and max guests. $0.003 per listing, $0.005 with details, $0.005 per run start.
Pricing
Pay per event
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape stay listings from Airbnb by city or area. Get prices per night and for the whole stay, ratings, review counts, coordinates, host type, badges, photos and, optionally, the description, bedrooms, beds and bathrooms of every listing. No login and no proxy needed.
What data can you extract?
- Listing id, URL, title, listing name and property type (Apartment, Home, Cabin, Room in hotel ...)
- Price for the stay and per night, the original price when discounted, nights, check-in and check-out, in the currency you choose
- Rating and number of reviews
- Latitude and longitude as shown by Airbnb
- Host type (Individual or Business host, searches without dates), Guest favorite and Superhost badges
- Bedrooms, beds and bathrooms (searches with dates, or details mode)
- Photo URLs
- Description, room type and maximum guests (details mode)
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=santamaria-automations/airbnb-listings-scraper
Example prompt once connected:
"Use
airbnb-listings-scraperto find stays in Lisbon for 1-4 December for 2 adults and list the 10 cheapest per night with rating above 4.7."
Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.
How to use
{"locations": ["Zurich, Switzerland", "Lisbon, Portugal"],"maxResults": 40,"checkIn": "2026-12-01","checkOut": "2026-12-04","adults": 2,"currency": "EUR","includeDetails": false}
An empty input {} also works and runs the defaults (Zurich, Switzerland, 10 listings).
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
locations | array | ["Zurich, Switzerland"] | One place per entry. Enter one place per line: a single text value is split at commas |
maxResults | integer | 10 | Maximum unique listings per location (1-1,000, Airbnb shows about 270 per search) |
checkIn, checkOut | string | none | Optional dates, YYYY-MM-DD. Both are needed; otherwise Airbnb picks its own dates |
adults | integer | 1 | Adult guests (1-16) |
currency | string | EUR | Three-letter currency code |
includeDetails | boolean | false | Open every listing page for description, room type, guests, bedrooms, beds, bathrooms |
A listing that matches several locations is returned once.
Limit: Airbnb returns 18 listings per page and about 15 pages per search. Use several or narrower locations (a district instead of a whole city) for more listings.
Output example
{"id": "1682111532175854289","url": "https://www.airbnb.com/rooms/1682111532175854289","title": "Cabin in Rheinau","name": "Forest hut","property_type": "Cabin","location_label": "Rheinau","rating": 4.78,"review_count": 23,"price_total": 483,"price_total_text": "€483","price_per_night": 96.6,"original_price": null,"currency": "EUR","nights": 5,"check_in": "2026-10-25","check_out": "2026-10-30","host_type": "Individual host","is_guest_favorite": false,"is_superhost": true,"latitude": 47.62734,"longitude": 8.59823,"images": ["https://a0.muscache.com/im/pictures/hosting/Hosting-1682111532175854289/original/example.jpeg"],"search_query": "Zurich, Switzerland","source_platform": "airbnb.com","scraped_at": "2026-10-21T12:00:00Z","details_included": false}
Fields that Airbnb does not publish for a listing are null. New listings have no rating yet. Without dates, some results are priced per night only (price_total is then null).
Pricing
Pay per result. You are charged one result event for every row saved to the dataset, plus a one-time start event per run.
| Event | Price | When |
|---|---|---|
airbnb-start | $0.005 | Once per run, when the first listing is saved |
airbnb-result | $0.003 | Per listing saved from search results |
airbnb-detail-result | $0.005 | Per listing saved with listing page data |
The run stops saving listings once your maximum total charge per run is reached. Duplicates are never saved or charged twice, and a restarted run does not charge rows it already saved.
Performance
- Memory: 128 MB (Go binary, HTTP only, no browser)
- Speed: 18 listings per search page; listing pages are fetched a few at a time with short pauses
- Search only: leave
includeDetailsoff for the fastest and cheapest run
Tips
- Add dates and guests to get the real price of your stay; without dates prices are for a short default stay
- Prices include taxes and fees as Airbnb shows them to a guest
- Pair with a spreadsheet or BI tool:
latitude,longitude,price_per_nightandratingare ready for a market map
Related Actors
- Website Email & Phone Scraper -- Extract emails and phones from company websites
- Website Contact Extractor -- Extract team members and decision-makers