Airbnb Detailed Scraper - Search & Listing Details avatar

Airbnb Detailed Scraper - Search & Listing Details

Pricing

from $3.00 / 1,000 listing details

Go to Apify Store
Airbnb Detailed Scraper - Search & Listing Details

Airbnb Detailed Scraper - Search & Listing Details

Delivers structured Airbnb listing records with pricing, amenities, host details, reviews, and images, queried by location.

Pricing

from $3.00 / 1,000 listing details

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

Airbnb Detailed Scraper creates a structured dataset of Airbnb listing records collected from location search queries. Each dataset item can include the listing name, description, images, location and coordinates, host profile, ratings, features, bedroom and bathroom details, guest and cancellation policy, an optional 12-month availability calendar, and optional image-download links. Query the source with one or more location terms, control the result limit with maxListings and maxPages, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or XML.

Dataset at a glance

PropertyValue
Sourceairbnb.com
Record unitOne listing
Input methodsLocation search queries
Main identifiersidentifier, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML
Update modelFresh records per Actor run
PricingPay per event, per-record events

Coverage and available records

The Actor discovers listings from location search queries and returns, per listing:

  • Base listing fields — name, headline, description, images, and location.
  • Listing details (listingDetails) — pricing, amenities, host info, reviews, ratings, and more.
  • Availability calendar (scrapeCalendar) — a 12-month availability calendar.
  • Image downloads (downloadImages) — listing images zipped with a download link.

Discovery is limited by maxListings (maximum listings) and maxPages (maximum search pages). Apify Residential proxies are recommended; results reflect the location query you provide.

Data dictionary

FieldTypeNullableDescriptionExample
identifierstringNoAirbnb listing ID1234567890123456789
urlstringNoFull listing URLhttps://www.airbnb.com/rooms/...
activebooleanNoWhether the listing is activetrue
headlinestringNoSEO headlineStunning Manhattan studio...
namestringNoListing titleCozy Studio in Midtown East
descriptionstringYesFull property descriptionModern studio apartment...
imagesarrayNoProperty photo objects (identifier, url, title)[...]
locationobjectNoAddress and coordinates{ "address": {...}, "coordinates": {...} }
hostobjectYesHost profile, superhost status, stats{ "host": {...}, "superhost": true }
ratingobjectYesOverall rating, review count, breakdown{ "overall_rating": 4.85 }
featuresarrayYesAmenities and property features[{"name": "Wifi"}]
safety_featuresarrayYesSafety equipment[{"name": "Smoke alarm"}]
bathroomsarrayYesBathroom details and amenities[{"name": "Bathroom 1"}]
bedroomsarrayYesBedroom details with bed types[{"name": "Bedroom 1"}]
supplementobjectYesGuest capacity, pet/children/events policy, cancellation{ "max_guests": 3 }
calendararrayYes12-month availability calendar (when scrapeCalendar is on)[{"available": true, "date": "2025-06-15"}]
imageDownloadUrlstringYesDownload link for zipped images (when downloadImages is on)https://api.apify.com/...zip
imageDownloadStatsobjectYesImage download total/downloaded counts{ "total": 24, "downloaded": 24 }

Example dataset record

{
"identifier": "1234567890123456789",
"url": "https://www.airbnb.com/rooms/1234567890123456789",
"active": true,
"headline": "Stunning Manhattan studio with skyline views",
"name": "Cozy Studio in Midtown East",
"description": "Modern studio apartment in the heart of Manhattan...",
"images": [
{ "identifier": "123", "url": "https://a0.muscache.com/...", "title": "" }
],
"location": {
"address": { "city": "New York", "subdivision": "NY", "country": "United States" },
"coordinates": { "lat": "40.7531", "lng": "-73.9822" }
},
"host": {
"host": { "name": "Jane", "profilePictureUrl": "https://..." },
"superhost": true,
"verified": true
},
"rating": {
"total_reviews": 142,
"overall_rating": 4.85
},
"supplement": {
"max_guests": 3,
"cancellation_policy": "MODERATE"
}
}

The record above was produced by a search for newyork.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
searchQueriesarrayYes—Location stringsLocations to search, e.g. ["newyork"]
maxListingsintegerNo200 = unlimitedMaximum listings to scrape
maxPagesintegerNo50 = unlimitedMaximum search pages to scan
listingDetailsbooleanNofalsetrue / falseExtract detailed listing information
scrapeCalendarbooleanNofalsetrue / falseExtract 12-month availability calendar
downloadImagesbooleanNofalsetrue / falseDownload and zip listing images
proxyConfigurationobjectNoResidentialApify proxy settingsProxy configuration

Minimal request:

{
"searchQueries": ["newyork"]
}

Advanced request:

{
"searchQueries": ["newyork", "paris"],
"maxListings": 100,
"maxPages": 5,
"listingDetails": true,
"scrapeCalendar": true,
"downloadImages": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Retrieve the data through the API

  1. Start the Actor with a JSON input containing at least one searchQueries entry.
  2. Wait for the run to finish.
  3. Read records from the run's default dataset.
  4. Paginate or export the dataset.
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("datascrapers/airbnb-detailed-scraper").call(
run_input={
"searchQueries": ["newyork"],
"maxListings": 20,
"listingDetails": True,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["identifier"], item["name"])

Apify's generated API tab documents the equivalent calls for other languages.

Data quality and record handling

  • Completeness — detail, calendar, and image fields are conditional on the features you enable and on what the source exposes.
  • Feature isolation — details, calendar, and image downloads run independently; a failure in one does not drop the others.
  • Deduplication — the Actor does not deduplicate across runs; use identifier as the stable key downstream.
  • Retry/error behavior — failed operations are skipped; the dataset retains the data that was successfully extracted.
  • Normalization — coordinates are strings; ratings are numeric; dates are ISO YYYY-MM-DD.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL/SupabaseDataset API or webhook consumerRental market analysis
Google SheetsApify integrationListing monitoring
S3/cloud storageScheduled export or integrationCalendar and image snapshots

Pricing and cost examples

Billing is pay per event, charged per extracted record type.

EventWhat countsPrice
listing-detailsFull property details$3.00 / 1,000
listing-urlsListing URL discovered$2.00 / 1,000
listing-calendarAvailability calendar fetched$2.00 / 1,000
image-downloadsImage batch downloaded$4.00 / 1,000
RecordsEstimated base cost (details only)
100$0.30
1,000$3.00
10,000$30.00

Estimates depend on the verified pricing model and which features you enable.

Limitations and responsible data use

  • Only publicly accessible Airbnb listing data is returned.
  • Availability and pricing change frequently and reflect the moment of collection.
  • Fields may be missing or conditional depending on the listing and features enabled.
  • No historical snapshots are stored unless you keep them yourself.
  • You are responsible for complying with Airbnb's terms and applicable laws.

Dataset questions

What does one dataset item represent?

One Airbnb listing record.

Which field should I use as a unique identifier?

Use identifier, the Airbnb listing ID.

Are fields nullable or conditional?

Yes. Detail, calendar, image, host, and rating fields are conditional on the features enabled and the listing's data.

Can I retrieve the records as CSV or JSON?

Yes. Export the default dataset as JSON, CSV, Excel, or XML, or read it through the Apify Dataset API.

How do I paginate large datasets?

Set maxListings and maxPages to bound a run, or paginate the dataset through the Dataset API.

What counts as a billable result?

Each listing URL, detail, calendar, or image batch is a separate event charge, depending on the features enabled.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.