Airbnb Scraper - Listings, Prices & Reviews avatar

Airbnb Scraper - Listings, Prices & Reviews

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Airbnb Scraper - Listings, Prices & Reviews

Airbnb Scraper - Listings, Prices & Reviews

Unofficial Airbnb API & scraper: get listings at scale — price, rating, reviews, room type, amenities, coordinates & images. No login, no API key. Hundreds per search.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share


📌 Overview

The Airbnb Scraper collects short-term-rental listings from any list of locations or Airbnb search URLs and returns each listing with rich, analysis-ready metadata: title, price, rating, review count, exact coordinates, room type, bed/bath layout, badges (e.g. Guest favorite), payment messages and all listing photos. It paginates each search to pull hundreds of listings per location and de-duplicates across pages.

It needs no login, no cookies and no API key — it reads only public search data through residential proxies, so there's zero risk to any Airbnb account. With no headless browser, it's a fast and low-cost way to assemble large rental datasets.

✅ Add many locations (or paste filtered search URLs) and raise maxResults to build a market-wide Airbnb dataset in a single run.


✨ Features

FeatureDescription
📦Hundreds per searchCursor pagination walks the full public result set per location.
💲Full pricingNightly or total-for-stay price, currency and qualifier.
Ratings & reviewsAverage rating and review count per listing.
📍GPS coordinatesExact latitude / longitude for mapping & geo-analysis.
🛏️Room layoutRoom type, bedrooms, beds and bathrooms.
🖼️All photosEvery listing image URL, plus a thumbnail.
🏅Badges & signalsGuest favorite, free cancellation, "Pay $0 today" and more.
👤Host detailsOptional: host name, Superhost status, profile link, years hosting, rating & highlights.
🧰Full amenitiesOptional: complete grouped amenities list (available and unavailable).
📝Rich detailOptional: full description, house rules, cancellation policy and per-category rating breakdown.
🗓️Date & guest filtersCheck-in / check-out, guests, price, bedrooms, room type.
No browserLightweight HTTP access — fast and cheap at scale.
🛡️Login-free & safePublic data over residential proxies — no account, no ban risk.
📤Any formatExport to JSON, CSV, Excel, HTML or pull via API & webhooks.

🎯 Who it's for

  • Real-estate & STR investors — analyse supply, pricing and occupancy signals in a market.
  • Revenue managers & hosts — benchmark comparable listings and tune nightly rates.
  • Travel & proptech products — power search, maps and price-comparison features.
  • Data science & ML — build geo-tagged rental datasets for modelling and trends.
  • Market researchers — measure inventory and amenity mix across cities.

🧾 Input

FieldTypeDescription
locationstringA place to search, e.g. Paris, France.
locationsarraySearch several places in one run.
searchUrlsarrayPaste full Airbnb search URLs (any filters/map area applied).
checkIn / checkOutstringOptional stay dates (YYYY-MM-DD). Prices become total-for-stay.
adults / children / infants / petsintegerGuest counts.
minPrice / maxPriceintegerNightly price range filter.
minBedrooms / minBeds / minBathroomsintegerLayout filters.
roomTypesarrayEntire home/apt · Private room · Shared room · Hotel room.
currencystringPrice currency (ISO code). Default USD.
maxResultsintegerGlobal cap on listings saved. Default 200.
includeDetailsbooleanVisit each listing's room page to add host, full amenities, description, house rules, per-category rating breakdown and highlights. Adds 1 request per listing. Default false.
detailConcurrencyintegerParallel detail-page fetches when includeDetails is on (1–10). Default 5.
proxyConfigurationobjectResidential proxy (required). Pre-configured for you.

Example input

{
"location": "Paris, France",
"checkIn": "2026-08-01",
"checkOut": "2026-08-05",
"adults": 2,
"currency": "EUR",
"maxResults": 300
}

📦 Output

Each listing is saved as one structured record:

{
"id": "49770156",
"url": "https://www.airbnb.com/rooms/49770156",
"name": "Bright apartment with Eiffel Tower view",
"title": "Apartment in 15th Arrondissement",
"subtitle": "Bright apartment with Eiffel Tower view",
"roomType": "Apartment in 15th Arrondissement",
"rating": 5.0,
"reviewsCount": 13,
"ratingLabel": "5.0 (13)",
"price": 1406,
"priceLabel": "$1,406",
"priceQualifier": "for 5 nights",
"currency": "$",
"coordinates": { "latitude": 48.8532, "longitude": 2.29504 },
"roomInfo": { "bedrooms": "1 bedroom", "beds": "1 bed", "bathrooms": "1 bath" },
"badges": ["Guest favorite"],
"isGuestFavorite": true,
"paymentMessages": ["Pay $0 today", "Free cancellation"],
"images": [
"https://a0.muscache.com/im/pictures/hosting/.../original/....jpeg"
],
"thumbnail": "https://a0.muscache.com/im/pictures/hosting/.../original/....jpeg",
"searchLocation": "Paris, France",
"scrapedAt": "2026-06-04T12:00:00.000Z"
}

📖 Output field reference

FieldDescription
id / urlListing ID and direct airbnb.com/rooms/... link
name / title / subtitleListing name, headline (room type + area) and tagline
roomTypeProperty/room type as shown in search
rating / reviewsCount / ratingLabelAverage rating, number of reviews and raw label
price / priceLabel / priceQualifier / currencyNumeric price, display string, qualifier and currency
coordinatesLatitude / longitude for mapping
roomInfoBedrooms, beds and bathrooms
badges / isGuestFavoriteListing badges and the Guest-favorite flag
paymentMessagese.g. "Free cancellation", "Pay $0 today"
images / thumbnailAll photo URLs and a thumbnail
searchLocation / searchUrl / scrapedAtProvenance and timestamp

🔎 Extra fields when includeDetails is enabled

Setting includeDetails: true visits each listing's room page (1 extra request per listing) and merges these fields into the record:

FieldDescription
host{ name, id, url, isSuperhost, isVerified, profilePictureUrl, ratingAverage, ratingCount, yearsHosting, monthsHosting, highlights[], about }
amenitiesFull list of available amenities (e.g. Wifi, Kitchen, Washer)
amenitiesUnavailableAmenities the place explicitly does not offer
amenityGroupsAmenities grouped by category with available flag and subtitles
descriptionFull listing description (plain text)
propertyTypee.g. "Entire rental unit in Paris, France"
capacitye.g. ["2 guests", "1 bedroom", "1 bed", "1 bath"]
summaryTitleCompact summary line, e.g. "Rental unit in Paris · ★5.0 · 1 bedroom · 1 bed · 1 shared bath"
ratingBreakdownPer-category ratings: cleanliness, accuracy, checkin, communication, location, value
houseRules / houseRulesDetailedQuick rules and the grouped house-rules sections
cancellationPolicyCancellation policy name (e.g. "Flexible")
highlightsListing highlights (headline + body)
locationSubtitleNeighbourhood / area subtitle

⚠️ includeDetails adds one request per listing, so runs are slower and use a little more compute. Leave it off (default) for fast, low-cost search-only scraping.

{
"host": {
"name": "Marguerite",
"id": "45878911",
"url": "https://www.airbnb.com/users/show/45878911",
"isSuperhost": true,
"ratingAverage": 4.81,
"ratingCount": 97,
"yearsHosting": 10,
"highlights": ["Speaks English, French, and Spanish"]
},
"amenities": ["Kitchen", "Wifi", "Washer", "Hair dryer", "Refrigerator"],
"amenitiesUnavailable": ["TV", "Dryer", "Air conditioning"],
"ratingBreakdown": { "cleanliness": 4.8, "accuracy": 5.0, "checkin": 5.0, "communication": 5.0, "location": 5.0, "value": 4.9 },
"houseRules": ["Flexible check-in", "Checkout before 12:00 PM", "2 guests maximum"],
"cancellationPolicy": "Flexible"
}

⚙️ How it works

  1. You provide one or more locations or Airbnb search URLs (with any filters).
  2. The actor loads each public search page over a residential proxy and reads the embedded listing data.
  3. It paginates the result set, parsing each listing into a clean, geo-tagged record.
  4. Results are de-duplicated and streamed to your dataset.

No login, no cookies, no API keys — and no Airbnb account is ever used or risked.


❓ FAQ

Is there an Airbnb API, and do I need a key?

Airbnb has no public listings API for scraping prices and reviews. This actor is a no-API-key Airbnb alternative — it reads public search pages, so you get listing data with no Airbnb developer key, no login and no cookies.

Does this Airbnb scraper need a login?

No. It collects only public listing data over residential proxies, so no Airbnb account is ever used or put at risk.

Hundreds per location — it paginates the full public result set. Add multiple locations or paste filtered search URLs to scale into the thousands of listings.

Are GPS coordinates included?

Yes — every listing includes exact latitude and longitude, ideal for maps, heatmaps and geo-analysis.

Can I export Airbnb data to CSV or Excel?

Yes — results stream to a dataset you can download as CSV, JSON, Excel or HTML, or pull live via the Apify API and webhooks.

Can I use my own filtered Airbnb search URL?

Yes — paste any Airbnb search URL into searchUrls (dates, guests, price, map area, room type) and the actor paginates it as-is.

Do I get total price or nightly price?

Set checkIn and checkOut to get the total-for-stay price; leave them empty for the nightly display price.

Is this an unofficial Airbnb API / Airbnb API alternative?

Yes — think of it as an unofficial Airbnb API. Airbnb has no public data API, so this actor is the practical Airbnb API alternative: call it over HTTP, pass a location or search URL, and get structured JSON back — no scraper code to maintain.

How do I export an Airbnb dataset (CSV / JSON / Excel)?

Every run builds a clean Airbnb dataset you can download as CSV, JSON, Excel or HTML, or pull straight into your warehouse via the Apify API. Ideal for an Airbnb price dataset, market research or short-term-rental analytics.

Can I get Airbnb rental price data for a whole city or market?

Yes — point it at a city, neighborhood or filtered map area and it returns every public listing's price, availability and reviews, so you can build city-level Airbnb rental data and track price trends over time.


🔗 Works great with

  • 🏨 Booking.com Hotels & Prices Scraper — compare hotel and rental pricing side by side.
  • 🗺️ Google Maps / Places datasets — enrich listing coordinates with nearby POIs.

📝 Changelog

2026-06-07

  • 📚 Docs: added coverage for Airbnb API alternative, Airbnb data export / dataset and city-level rental price data use cases.

2026-06-05

  • 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
  • ⚡ Stability & performance hardening; fresh rebuild.

2026-06-04

  • Added optional includeDetails mode — enriches each listing from its room page with host (name, Superhost, profile, stats), full amenities list (available + unavailable), description, house rules, cancellation policy, per-category rating breakdown, highlights and coordinates. Adds 1 request per listing; search-only behaviour unchanged when off.
  • Initial release — search by location or URL, full listing fields, cursor pagination.