Airbnb Listing Details Scraper avatar

Airbnb Listing Details Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Airbnb Listing Details Scraper

Airbnb Listing Details Scraper

Paste any Airbnb /rooms/<id> URL and get every PDP field: photos, amenities, host info, ratings, house rules, location, pricing, and more. Fast Cheerio scraper, no browser, undercuts the market.

Pricing

from $1.50 / 1,000 results

Rating

3.7

(4)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

1

Bookmarked

80

Total users

21

Monthly active users

9 hours ago

Last modified

Share

Scrape any Airbnb listing by pasting its /rooms/ URL or listing ID. This Airbnb listing scraper returns the complete property detail page as structured JSON: every photo, the full amenity list, host profile, ratings and category breakdown, house rules, capacity, room topology, and location — plus live pricing for your dates and an optional day-by-day availability calendar in the same row.

No Airbnb API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.

What is Airbnb Listing Details Scraper?

Airbnb Listing Details Scraper is an Apify Actor that extracts full listing detail pages from Airbnb and returns them as clean, structured records. It runs on Airbnb's own persisted-GraphQL endpoint over plain HTTP with no headless browser, which makes it roughly eight times faster and cheaper than a Playwright-based stack. Supply checkIn and checkOut and the same request also returns the quoted price; turn on includeCalendar and you get availability too, so one run replaces three.

What data can this Airbnb listing scraper extract?

Every run writes one row per listing. The full schema carries 37 fields; the most-used ones are below.

FieldTypeDescription
extractionStatusstringOutcome for this listing. 'full' = complete PDP payload extracted (the success case — 99%+ of inputs); 'partial' =...
idstringAirbnb listing identifier. Null only for a run-level error item.
urlstringListing URL requested by the actor. Null only for a run-level error item.
finalUrlstringURL after redirects, when available.
canonicalUrlstringCanonical Airbnb URL from SEO metadata.
titlestringListing title from the PDP payload.
descriptionstringPlain-text long listing description.
propertyTypestringAirbnb property type label.
roomTypestringRoom type value from Airbnb event metadata.
personCapacitynumberMaximum number of guests advertised for the listing.
bedroomsnumberBedroom count parsed from listing title metadata.
bedsnumberBed count parsed from listing title metadata.
bathroomsnumberBathroom count parsed from listing title metadata.
coordinatesobjectApproximate listing latitude and longitude.
locationSubtitlestringLocation subtitle shown on the listing page.
hostobjectHost profile, verification, response, co-host, and metric details.
coverImagestringPrimary listing image URL.
photosarrayOrdered listing photos with labels and room categories.
amenitiesarrayFlat amenity list with availability and category metadata.
amenityGroupsarrayAmenities grouped by Airbnb category.
reviewCountnumberVisible review count.
overallRatingnumberOverall star rating.

See the Output tab in Apify Console for all 37 fields.

How to scrape Airbnb listing details

  1. Open Airbnb Listing Details Scraper and click Try for free.
  2. Paste one or more Airbnb /rooms/<id> URLs into startUrls, or pass bare IDs to listingIds.
  3. Set checkIn and checkOut to get pricing — Airbnb only quotes a price against real dates, so without them every price field is empty by design. Set the guest mix with adults, children, infants, and pets.
  4. Turn on includeCalendar and set calendarMonths if you also want day-by-day availability.
  5. Choose currency and locale, and use includeInlineReviews for a review sample in the same row.
  6. Click Start and watch rows appear live in the Output tab.
  7. Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.

Airbnb Listing Details Scraper input options

InputTypeWhat it doesDefault
startUrlsarrayOne or more Airbnb listing URLs (e.g. https://www.airbnb.com/rooms/12937). Mix freely with listingIds below. Each...see schema
listingIdsarrayConvenience input — pass just the numeric listing IDs and we'll build the URLs for you. Mix with startUrls above.
checkInstringYYYY-MM-DD. Supply check-in AND check-out to get real pricing for those dates: priceAmount, pricePerNightAmount, the...
checkOutstringYYYY-MM-DD. Must be after check-in.
adultsintegerGuest count used for the price quote. Defaults to 1.1
childrenintegerChildren (ages 2-12) included in the quote.
infantsintegerInfants (under 2) included in the quote.
petsintegerPets included in the quote. Affects pet fees in the price breakdown.
includeCalendarbooleanFetch day-by-day availability (bookable, min/max nights, check-in eligibility) plus an occupancy summary. Costs one...false
calendarMonthsintegerHow many months of availability to pull (1-12). Ignored when the calendar is off.6
includePricingbooleanFetch the price quote when check-in/check-out are set. Turn off to skip the extra request if you only need static...true
includeInlineReviewsbooleanFetch the first few reviews per listing (via the same GraphQL backend) so you get a ready-to-use preview alongside...true
inlineReviewsCountintegerHow many inline reviews to attach per listing (max 50). Ignored when includeInlineReviews is off.6
currencystringCurrency for all prices (USD, EUR, GBP, CAD, AUD, ...). Verified 2026-08-30: this is honoured regardless of your..."USD"
localestringLocale for human-readable text in the response (e.g. en-US, en-GB, de, fr, es). Affects amenity labels, review..."en-US"
maxItemsintegerHard cap on the total number of listings to push. Leave empty for no limit.

Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.

Example output

{
"extractionStatus": "active",
"id": "a1b2c3d4",
"url": "https://example.com/item/12345",
"finalUrl": "https://example.com/item/12345",
"canonicalUrl": "https://example.com/item/12345",
"title": "Example title",
"description": "Example text ...",
"propertyType": "...",
"roomType": "...",
"personCapacity": 42.5,
"bedrooms": 3,
"beds": 3,
"bathrooms": 3,
"coordinates": {
"...": "..."
},
"locationSubtitle": "Example title",
"host": {
"...": "..."
},
"coverImage": "...",
"photos": [
"https://example.com/image-1.jpg"
]
}

How much does it cost to scrape Airbnb?

This Actor runs on pay per result pricing: $0.0015 per listing ($1.5 per 1,000). A one-time start fee of $0.00005 applies per run.

ResultsApproximate cost
1,000$1.50
10,000$15.00
100,000$150.00

You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial Airbnb Listing Details Scraper at no cost.

What can you build with Airbnb data?

Audit a short-term-rental portfolio

Pull every listing you manage in one run and check that photos, amenities, and house rules are consistent across the portfolio — the amenity array makes gaps obvious at a glance.

Build competitor comp sheets

Take listing URLs from a search run and enrich each one with capacity, bed count, amenity list, and rating so your comp set compares like with like rather than by price alone.

Power a listing-quality or SEO scoring tool

Photo counts, description length, amenity coverage, and rating all arrive in one row, which is everything a listing-optimisation score needs as input.

Enrich real-estate and investment models

personCapacity, bedrooms, beds, bathrooms, and coordinates give you the physical property profile to pair with revenue data when underwriting a purchase.

Collect training data for property-description models

Title, description, amenity groups, and photo URLs together form a clean multimodal record per property.

Get price, facts, and availability in one request

With dates and includeCalendar set, a single row carries the static property profile, the live quote for your stay, and the forward calendar — replacing three separate scraping jobs.

Airbnb scraping tips and limits

  • Feed this Actor from Airbnb Search Scraper output — the url field on every search row is exactly what startUrls expects.
  • extractionStatus tells you whether a listing resolved fully, partially, or was unavailable. Filter on it before analysis rather than assuming every row is complete.
  • currency is honoured regardless of proxy country, and the output reports both currency (what Airbnb actually returned) and currencyRequested so a mismatch is visible rather than silent.
  • Turn includePricing off when you only need static facts — it saves a request per listing.
  • includeRawPayload is useful when you need a field this Actor does not surface yet — the raw page data is there.

Integrations and automation

Run Airbnb Listing Details Scraper on a schedule to keep a Airbnb dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.

ActorWhat it does
Airbnb Search ScraperFind the listings first — search any destination for $0.50 per 1,000.
Airbnb Reviews ScraperEvery review on a listing, fully paginated.
Airbnb Host Listings ScraperThe host profile plus every other listing they manage.
Airbnb Availability Calendar ScraperDay-by-day availability for the next 12 months.

Frequently asked questions

Can I scrape an Airbnb listing without the listing URL?

Yes. Pass the numeric listing ID to listingIds and the Actor builds the URL for you. IDs are the digits at the end of any airbnb.com/rooms/... link.

Does it include reviews?

It can include a sample inline via includeInlineReviews, up to 50 per listing. For every review with full pagination, use the Airbnb Reviews Scraper instead.

Why are all my price fields empty?

Airbnb only quotes a price against real dates. Supply both checkIn and checkOut and the price fields populate; without them they are empty by design, not because the run failed.

Do I need a Airbnb API key?

No. Airbnb Listing Details Scraper reads publicly available Airbnb pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.

Can I export Airbnb data to CSV, Excel, or Google Sheets?

Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.

Can I run Airbnb Listing Details Scraper on a schedule?

Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.

Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public listing information that Airbnb publishes publicly, with host names appearing as they do on the live page. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.

Support and feedback

Found a bug, a missing field, or a Airbnb page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.