Airbnb Scraper: Listings, Prices, Occupancy & Revenue avatar

Airbnb Scraper: Listings, Prices, Occupancy & Revenue

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Airbnb Scraper: Listings, Prices, Occupancy & Revenue

Airbnb Scraper: Listings, Prices, Occupancy & Revenue

Every Airbnb listing in a city with prices, ratings, host & amenities, plus 12-month availability, estimated occupancy and annual revenue per listing. Market summary per area and competitor tracking. Gets past the ~300-result limit. CSV, Excel, JSON, API.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Francesco Ayrton Davoli

Francesco Ayrton Davoli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

Extract every Airbnb listing in a city or area with prices, ratings, photos and, uniquely, 12-month availability, estimated occupancy and estimated annual revenue for each listing. Built for short-term-rental investors, hosts, property managers and analysts who need an affordable alternative to AirDNA-style market data.

  • 🗺️ Whole-city coverage: Airbnb shows at most ~300 results per map view. This Actor detects truncated areas and splits them automatically, so you get all listings, not just the first pages.
  • 💶 Prices: price per night, stay total, cleaning fee, service fee, discounts (exact for your dates when check-in/out are set).
  • 📅 Availability & occupancy: free nights in the next 30/90/365 days, estimated occupancy, next available date, typical minimum stay.
  • 📈 Estimated annual revenue per listing (price per night × estimated occupied nights).
  • 📊 Market summary per location: median price per night and quartiles, median price by number of bedrooms, average occupancy, median and top-quartile annual revenue, share of Superhosts and Guest Favourites.
  • 🔁 Competitor tracking: schedule it on the same area and get price change (€ and %), availability change and new listings since the previous run.
  • 🏠 Listing details (from each listing page): property type ("Entire villa in Monopoli"), guests, bedrooms, beds, baths, review count, the 6 rating categories (cleanliness, accuracy, check-in, communication, location, value), host name, years hosting, response rate, verified/Superhost, host-level rating and reviews, full amenities list (50+ items) with quick flags (pool, A/C, sea view, hot tub, free parking, wifi, kitchen, washer, pets allowed), full description.
  • ⭐ Rating, reviews, Guest Favourite and Superhost flags, coordinates, up to 10 photos.
  • 🔎 Search by location name ("Bari, Italy", "Trastevere, Rome") or paste Airbnb search URLs with your filters.
  • ⚡ Fast and cheap: direct calls to Airbnb's web API, no browser.

Use cases

WhoWhat for
STR investorsCompare occupancy and revenue across neighbourhoods before buying
Hosts & property managersTrack competitor prices and availability, set your rates
Real estate agentsShow buyers the rental potential of an area
Analysts, journalists, city councilsMeasure short-term-rental supply and pressure on housing

Input

FieldDescription
locationsList of places, e.g. ["Monopoli, Italy", "Polignano a Mare"]
startUrlsAirbnb search URLs (filters and map area are kept)
checkIn, checkOutOptional dates for exact prices
adults, roomType, minBedrooms, priceMin, priceMaxOptional filters
currencyEUR, USD, GBP, CHF
includeDetailsListing page details: type, rooms, review count, rating categories, host, amenities (default on)
includeCalendarAvailability & occupancy metrics (default on)
maxItems0 = all listings in the area
trackChanges, trackingIdCompare with the previous run of the same tracked search

Output example

{
"id": "53817392",
"url": "https://www.airbnb.com/rooms/53817392",
"name": "Trullo with pool near Monopoli",
"title": "Home in Monopoli",
"rating": 4.92,
"reviewsCount": 137,
"isGuestFavorite": true,
"isSuperhost": false,
"currency": "EUR",
"pricePerNight": 120,
"priceTotal": 600,
"nights": 5,
"cleaningFee": 50,
"availableNights30": 6,
"availableNights90": 31,
"estimatedOccupancy90": 0.656,
"estimatedOccupancy365": 0.48,
"estimatedAnnualRevenue": 21024,
"nextAvailableDate": "2026-10-19",
"minNightsTypical": 2,
"propertyType": "Entire home in Monopoli, Italy",
"guests": 4,
"bedrooms": 2,
"beds": 3,
"bathrooms": 1,
"ratingCleanliness": 4.95,
"ratingLocation": 4.81,
"hostName": "Paolo",
"hostYearsHosting": 4.2,
"hostResponseRate": 90,
"amenitiesCount": 57,
"hasPool": false,
"hasAirConditioning": true,
"petsAllowed": true,
"lat": 40.95,
"lng": 17.30,
"thumbnail": "https://a0.muscache.com/im/pictures/...",
"searchLocation": "Monopoli, Italy"
}

Market summary

Saved in the run's key-value store as MARKET_SUMMARY (link in the Output tab), one object per location:

{
"location": "Monopoli, Italy",
"listings": 812,
"currency": "EUR",
"pricePerNightMedian": 107.5,
"pricePerNightP25": 82,
"pricePerNightP75": 150,
"medianPricePerNightByBedrooms": {"0": 70, "1": 88, "2": 120, "3": 185, "4+": 290},
"avgEstimatedOccupancy90": 0.58,
"estimatedAnnualRevenueMedian": 18400,
"estimatedAnnualRevenueP75": 27100,
"avgRating": 4.84,
"shareGuestFavorite": 0.41,
"shareSuperhost": 0.33
}

How occupancy is estimated

Airbnb's calendar marks each future night as available or not. Unavailable nights are either booked or blocked by the host, and Airbnb doesn't distinguish them, so estimatedOccupancy* is an upper-bound estimate. It's most reliable for active listings (recent reviews, Guest Favourite). estimatedAnnualRevenue uses the current price per night; prices vary by season, so treat it as an indication, and set check-in/out dates for exact prices.

Tips

  • Results are saved progressively: if a run hits its timeout, everything found so far is already in the dataset.
  • A whole city with details and calendars can take 10–30 minutes: set the run timeout to 1 hour (default).
  • Start with maxItems: 20 to preview, then set 0 for the whole area.
  • Turn off includeDetails and includeCalendar if you only need prices and ratings: runs are several times faster and cheaper.
  • Track competitors: enable trackChanges, set a trackingId (e.g. monopoli-sea-view) and schedule the run daily or weekly.

Responsible use

The Actor collects publicly visible listing data only (no guest data, no host contact details). You are responsible for complying with applicable laws (including GDPR) and Airbnb's terms in how you use the data.