Airbnb Scraper — Listings, Prices, Reviews & Availability avatar

Airbnb Scraper — Listings, Prices, Reviews & Availability

Pricing

from $2.00 / 1,000 airbnb listings

Go to Apify Store
Airbnb Scraper — Listings, Prices, Reviews & Availability

Airbnb Scraper — Listings, Prices, Reviews & Availability

Scrape Airbnb listings by location or URL. Export prices, ratings, photos, amenities, host data, reviews, and availability calendars for short-term rental and market research.

Pricing

from $2.00 / 1,000 airbnb listings

Rating

0.0

(0)

Developer

DataForge

DataForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🏡 Airbnb Scraper — Listings, Prices, Reviews & Availability

Create structured Airbnb datasets from destinations and room URLs. Collect prices, ratings, listing locations, photos, property details, amenities, host profiles, guest reviews, and availability metrics for travel research and short-term rental analysis.

✅ Destination search and direct room URLs
✅ Pricing, ratings, capacity, and property details
✅ Hosts, amenities, reviews, and calendar metrics
✅ Automatic input detection and listing deduplication
✅ Separate analysis-ready dataset views


💡 Why this Actor

Many Airbnb scrapers stop at the listing card — a name, a price, a rating. This one goes to the data that short-term-rental operators, analysts, and investors actually decide on:

  • 📅 Availability & occupancy signals — available vs. blocked days plus 30 / 90 / 365-day metrics, not just a nightly price
  • 📊 Review intelligence — full guest review text and a per-listing summary (rating breakdown, category ratings, sentiment) instead of raw dumps
  • 🧩 Analysis-ready split datasets — listings, pricing, hosts, amenities, and reviews in separate clean tables, so no nested-array wrangling in your spreadsheet or BI tool
  • 🔎 Search or audit in one field — mix destinations and exact room URLs in the same queries list; the Actor auto-detects each
  • 🧭 Honest statuses, no fake errorsdetailStatus / reviewsStatus / calendarStatus tell you exactly what each listing returned; an unavailable optional stage never turns a real listing into an error row

⚡ Fast for wide price/supply scans, 🔎 Full when you need hosts, amenities, reviews, and calendars — pick the depth per run so you only pay for the data you use.


📸 Sample output

Airbnb Scraper sample output — real data fields

A real run's output — exportable to JSON, CSV, or Excel.


✨ What can be collected?

🏠 Listing information

  • Listing ID and canonical Airbnb URL
  • Name, title, and displayed location
  • Room type and property type
  • Guest capacity
  • Bedrooms, beds, and bathrooms
  • Listing badges and highlights

💰 Pricing

  • Displayed price
  • Price per night
  • Total price
  • Original or crossed-out price when published
  • Currency
  • Date-aware prices when a stay range is provided

🛏️ Property details

  • Complete public description
  • Amenities
  • House rules
  • Safety information
  • Check-in details
  • Property highlights

👤 Host information

  • Host name and profile information
  • Superhost status
  • Response rate and response time
  • Host highlights
  • Public host statistics returned by Airbnb

⭐ Reviews and availability

  • Guest review text
  • Review date and reviewer information
  • Review count and rating
  • Category ratings
  • Available and blocked calendar days
  • 30, 90, and 365-day availability metrics

🖼️ Media

  • Main listing image
  • Listing photo collections
  • Image captions when available

🎛️ Scraping modes

⚡ Fast mode

Fast mode is designed for destination discovery, price scans, and larger listing samples. It collects structured Airbnb search-card data.

Fast mode can return:

  • Listing ID and URL
  • Listing title and displayed location
  • Displayed price and currency
  • Rating and total review count
  • Capacity, bedrooms, beds, and bathrooms
  • Room type and badges
  • Main image and photo collection
  • reviewsStatus=not_requested
  • calendarStatus=not_requested
{
"mode": "fast",
"queries": ["Prague"],
"adults": 2,
"maxItemsPerQuery": 20,
"currency": "EUR"
}

🔎 Full mode

Full mode performs detailed property enrichment and requests the supported public listing sections, review data, host information, and calendar metrics.

Full mode can return:

  • Complete property description
  • Detailed amenities and highlights
  • Host profile and response information
  • House rules and safety information
  • Guest reviews and review summaries
  • Category ratings
  • Calendar availability and occupancy-style metrics
  • Explicit detail, review, and calendar statuses
{
"mode": "full",
"queries": ["Barcelona"],
"maxItemsPerQuery": 10,
"maxReviewsPerListing": 25,
"currency": "EUR"
}

When an optional listing section is unavailable, the real listing row is preserved and its status explains what was returned.


🧭 How it works

┌──────────────────────────────────────┐
│ queries │
│ • destination │
│ • neighborhood │
│ • region │
│ • Airbnb room URL │
└──────────────────┬───────────────────┘
┌──────────────────────┐
│ Automatic detection │
└──────────┬───────────┘
┌────────┴────────┐
▼ ▼
Destination search Direct room fetch
└────────┬────────┘
Property • host • reviews • calendar
Normalize and remove duplicates
Listings and related datasets

The queries list is required. Destinations and Airbnb room URLs can be placed in the same list.


🚀 More input examples

Search several destinations

{
"mode": "fast",
"queries": ["Prague", "Vienna", "Budapest"],
"maxItemsPerQuery": 25,
"adults": 2,
"currency": "EUR",
"locale": "en"
}
{
"mode": "fast",
"queries": ["New York"],
"dateRange": "2026-09-10/2026-09-15",
"adults": 2,
"children": 1,
"maxItemsPerQuery": 20,
"currency": "USD"
}

Scrape known rooms

{
"mode": "full",
"queries": [
"https://www.airbnb.com/rooms/123456789",
"https://www.airbnb.com/rooms/987654321"
],
"maxReviewsPerListing": 10,
"currency": "USD"
}

Apply property filters

{
"mode": "full",
"queries": ["Lisbon"],
"maxItemsPerQuery": 20,
"minPrice": 80,
"maxPrice": 250,
"minBedrooms": 2,
"minBathrooms": 1,
"roomType": "Entire home/apt",
"maxReviewsPerListing": 5,
"currency": "EUR"
}

🧩 Input fields

FieldTypeDescription
modestringSelects one of the collection modes described above
queriesstring[]Required destinations or Airbnb room URLs
dateRangestringOptional YYYY-MM-DD/YYYY-MM-DD stay range
adultsintegerNumber of adult guests
childrenintegerNumber of children
infantsintegerNumber of infants
petsintegerNumber of pets
maxItemsPerQueryintegerMaximum listings collected for each source
maxReviewsPerListingintegerReviews collected per listing in Full mode
minPrice, maxPriceintegerOptional displayed-price range
minBedroomsintegerMinimum bedrooms
minBathroomsintegerMinimum bathrooms
minBedsintegerMinimum beds
roomTypestringEntire place, private room, shared room, or hotel room
currencystringUSD or EUR
localestringAirbnb locale such as en, de, fr, es, or it
proxyobjectApify Proxy configuration

Empty inputs, unknown fields, unsupported modes, malformed external URLs, invalid dates, and out-of-range limits are rejected before a run is created.


📦 Output structure

Each default dataset row represents one unique Airbnb listing.

{
"id": "123456789",
"url": "https://www.airbnb.com/rooms/123456789",
"name": "Apartment in Prague",
"displayLocation": "Prague, Czechia",
"roomType": "Entire rental unit",
"personCapacity": 4,
"bedrooms": 2,
"beds": 2,
"bathrooms": 1,
"ratingValue": 4.91,
"reviewsCount": 184,
"displayPrice": "€145 night",
"pricePerNight": 145,
"currency": "EUR",
"imageUrl": "https://...",
"scrapeMode": "full",
"detailStatus": "ok",
"reviewsStatus": "ok",
"calendarStatus": "ok"
}
Default dataset
├── 🏡 Listings
├── 💰 Pricing
├── 👤 Hosts and ratings
└── 📅 Calendar metrics
Related datasets
├── ⭐ Reviews
├── 📊 Review summaries
├── 👤 Hosts
├── 🛏️ Amenities
└── 📋 Property information and house rules

These flattened views are convenient for spreadsheets, BI tools, database imports, and API integrations.


🚦 Status fields

FieldMeaning
scrapeModeSelected collection mode
detailStatusListing detail collection result
reviewsStatusGuest review collection result
calendarStatusCalendar collection result

not_requested means the stage was intentionally not used. An unavailable optional stage does not turn a valid listing into a fake error row.


  • 📊 Short-term rental market analysis
  • 💰 Price and availability monitoring
  • 🏙️ Destination research
  • 🏡 Property-market research datasets
  • ⭐ Guest review analysis
  • 👤 Host portfolio research
  • 📈 Travel and real-estate dashboards

⚠️ Public-data availability

Airbnb normally does not expose a private host phone number, private email address, or exact street address before a booking. Displayed location precision, pricing, reviews, and calendar coverage depend on the listing, dates, locale, currency, and market.

The actor exports only public information returned for the listing and never invents hidden contact details.

Use exported data responsibly and comply with applicable travel, privacy, and platform rules.