Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

Pay per event

Go to Apify Store
Airbnb Listings Scraper

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

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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-scraper to 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

ParameterTypeDefaultDescription
locationsarray["Zurich, Switzerland"]One place per entry. Enter one place per line: a single text value is split at commas
maxResultsinteger10Maximum unique listings per location (1-1,000, Airbnb shows about 270 per search)
checkIn, checkOutstringnoneOptional dates, YYYY-MM-DD. Both are needed; otherwise Airbnb picks its own dates
adultsinteger1Adult guests (1-16)
currencystringEURThree-letter currency code
includeDetailsbooleanfalseOpen 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.

EventPriceWhen
airbnb-start$0.005Once per run, when the first listing is saved
airbnb-result$0.003Per listing saved from search results
airbnb-detail-result$0.005Per 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 includeDetails off 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_night and rating are ready for a market map