Airbnb Scraper API - Total Prices, Calendar, Reviews & Hosts avatar

Airbnb Scraper API - Total Prices, Calendar, Reviews & Hosts

Pricing

from $1.02 / 1,000 results

Go to Apify Store
Airbnb Scraper API - Total Prices, Calendar, Reviews & Hosts

Airbnb Scraper API - Total Prices, Calendar, Reviews & Hosts

🏠 Scrape Airbnb listings by location, search URL or listing URL with every filter. Real prices for your dates with fee breakdown, full listing page (host, amenities, rules, photos), 12-month availability calendar with occupancy metrics, and reviews. No 270-listing cap. Pay per result.

Pricing

from $1.02 / 1,000 results

Rating

5.0

(1)

Developer

Scrapifier

Scrapifier

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Benchmark nightly rates, measure occupancy, source hosts or build a short-term-rental dataset from Airbnb — 8M+ listings in 220 countries.

⚡ Scrape Airbnb listings by location, search URL or listing URL with every filter the site offers (dates, guests, price, type of place, bedrooms, beds, bathrooms, amenities, Superhost, Instant Book). One row per listing with the real price for your dates and its breakdown (nightly rate, cleaning fee, service fee, taxes, discount, total), rating and reviews count, coordinates, badges and photos. Add the full listing page (description, amenities by group, host profile and stats, house rules, check-in/out times, safety, sleeping arrangement, category ratings, rating distribution, review tags, cancellation policy, all photos), the 12-month availability calendar with occupancy metrics, and the latest reviews — or one row per review. Airbnb stops every search at ~270 listings; this Actor splits big searches by price and map until every listing is reached. No browser, pay per result.

What you get

Listings — one row per listing

FieldExample
listingId, url, name, title, listingType, area45482776, "Cozy studio / Gare de l'Est", Apartment in Paris
rating, reviewCount, isSuperhost, isGuestFavorite, badges4.68, 409, true, false
price, priceQualifier, nightlyPrice, nights, cleaningFee, serviceFee, taxes, discount, priceOriginal, currency154 total, 65.93/night × 2, taxes 22.10, EUR
latitude, longitude, images, imageCount, checkIn, checkOut, matchedInput48.87, 2.36, 6 photos

With Fetch each listing's page on, every row additionally carries:

  • Identity & capacity: propertyType, roomType, pdpType, personCapacity, bedrooms, beds, bathrooms, overviewTitle, registrationNumber, isNewListing.
  • Description: description (translated when Airbnb shows one), descriptionOriginal, descriptionLanguage, neighborhoodDescription.
  • Amenities: amenities by group (Bathroom, Kitchen and dining, Internet and office…), amenityCount, amenitiesNotIncluded.
  • Host: hostName, hostId, hostUrl, hostIsSuperhost, hostIsVerified, hostRating, hostReviewCount, hostYears, hostHighlights, hostAbout, hostType (BUSINESS for professional hosts), cohosts, hostPictureUrl.
  • Rules & policies: houseRules, checkInWindow, checkOutTime, selfCheckIn, safetyAndProperty, thingsToKnow, cancellationPolicy, childrenAllowed, infantsAllowed.
  • Quality: categoryRatings (cleanliness, accuracy, check-in, communication, location, value), ratingDistribution, highlights, reviewTags, availableForDates.
  • Location & media: locationName, isExactLocation, locationVerified, sleepingArrangement, all images with imageCaptions, canonicalUrl, sharingTitle.

With Availability calendar set to 1–12 months, every row carries calendar (day by day: available, min/max nights, check-in/out allowed) and the metrics occupancy30 / occupancy60 / occupancy90 / occupancy365 (share of unavailable days), availableDays, unavailableDays, nextAvailableDate, minNights, maxNights, unavailableStreaks, longestUnavailableStreak. Unavailable days include bookings and host blocks — Airbnb does not tell them apart.

With Reviews per listing > 0, the latest reviews are nested in reviews.

Reviews — one row per review

reviewId, rating, text, textTranslated, language, date, reviewerName, reviewerId, reviewerUrl, reviewerLocation, stayDetails, highlight, hostResponse, photos, plus the listing context (listingId, listingUrl, listingName, listingType, listingRating, listingReviewCount, listingArea, hostName). Sorted most recent / highest / lowest / most relevant, every review reachable (50 per request).

Turn on Flatten rows for spreadsheet-ready columns (categoryRatings_cleanliness, amenities_Kitchen and dining…).

Inputs

FieldTypeDefaultMeaning
Locationslocations["Lisbon, Portugal"]Cities, areas or addresses as typed on Airbnb.
Search URLssearchUrls—Any Airbnb results URL; its dates, guests, filters and map bounds are kept.
Listing URLs / idslistingUrls—Specific listings; each gets its full page.
Data typedataTypelistingslistings / reviews.
Dates & guestscheckIn, checkOut, adults, children, infants, pets1 adultWith dates, prices are the real totals for the stay.
FilterspriceMin, priceMax, roomTypes, minBedrooms, minBeds, minBathrooms, amenities, superhostOnly, instantBookOnly—Applied by Airbnb itself; you only pay for matching listings.
CurrencycurrencyUSD22 currencies.
Listing pageincludeDetailsoffOne extra request per listing for the full record.
CalendarcalendarMonths01–12 months of availability + occupancy metrics (one request per listing).
ReviewsmaxReviewsPerListing, reviewSort0, most recentNested latest reviews (listings) or the per-listing cap (reviews mode; 0 = all).
Max listings per searchmaxListingsPerSearch00 = everything the search returns.
Maximum rowsmaxItems100Total cap — the number of results you pay for. 0 = everything.
Flatten rowsflattenoffFlat columns for CSV/Excel.
Input status reportemitInputStatusonOUTPUT lists, per input, listings found, the count Airbnb announced and requests used.

Examples — all live-verified

1. Every entire home in Lisbon for a weekend, real prices

{ "locations": ["Lisbon, Portugal"], "checkIn": "2026-11-13", "checkOut": "2026-11-15", "adults": 2, "roomTypes": ["entire_home"], "currency": "EUR", "maxItems": 0 }

2. Occupancy and pricing of the competition around a listing (investor / host comps)

{ "searchUrls": [{ "url": "https://www.airbnb.com/s/Paris/homes?checkin=2026-11-10&checkout=2026-11-12&adults=2&min_bedrooms=1&ne_lat=48.88&ne_lng=2.38&sw_lat=48.86&sw_lng=2.34&search_by_map=true" }], "calendarMonths": 3, "includeDetails": true, "currency": "EUR", "maxItems": 150 }

3. Full records for specific listings

{ "listingUrls": ["https://www.airbnb.com/rooms/45482776", "720177146102065251"], "checkIn": "2026-11-10", "checkOut": "2026-11-12", "calendarMonths": 12, "maxReviewsPerListing": 10 }

4. The 200 most recent reviews of each Superhost villa with a pool in Bali

{ "dataType": "reviews", "locations": ["Bali, Indonesia"], "amenities": ["pool"], "superhostOnly": true, "maxListingsPerSearch": 20, "maxReviewsPerListing": 200, "reviewSort": "most_recent" }

5. Budget private rooms in Berlin, spreadsheet export

{ "locations": ["Berlin, Germany"], "roomTypes": ["private_room"], "priceMax": 60, "currency": "EUR", "flatten": true, "maxItems": 300 }

Why this scraper

  • No 270-listing cap — Airbnb shows at most 15 pages per search; bigger searches are split into price ranges and map quadrants automatically until every listing is reached, deduplicated by id.
  • Real prices — with dates, every row has the exact total and its breakdown, in your currency.
  • Occupancy in one run — listings, 12-month calendar, occupancy metrics, host profile and reviews come from one Actor instead of three.
  • Every filter wired — each input is sent to Airbnb as a server-side filter.
  • Honest reporting — the input_status report in OUTPUT shows, per input, listings found, the count the site announced, requests used, and why any input returned nothing.
  • Fast and cheap — no browser: ~1 second per page of 40 listings; a whole city in minutes.

FAQ

Is this legal? The Actor reads only publicly displayed listings, the same pages any visitor sees. You are responsible for using the output in compliance with applicable laws and Airbnb's terms.

Is "occupancy" exact? It is the share of days a listing is not bookable. Airbnb does not say whether a day is booked or blocked by the host, so treat it as an upper bound of real occupancy — the same limitation applies to every occupancy data provider.

Why fewer listings than Airbnb announces? The announced count is an estimate that changes between requests; input_status shows both the estimate and the deduplicated listings actually collected.

Which price is shown without dates? Airbnb's indicative nightly price; set dates for exact totals, fees and taxes.


Looking for more travel and real-estate data? See the rest of the family: AutoScout24, Leboncoin, SeLoger, Bien'ici, Trustpilot.