Airbnb Scraper: Host Full Listings
Pricing
$19.99/month + usage
Airbnb Scraper: Host Full Listings
Scrape live Airbnb listings to fuel travel content, destination guides, or SEO research. Find top listings, popular amenities, and guest trends to create high-converting content strategies.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Airbnb Scraper — Host Listings, Superhost Status and Host Contacts
This Airbnb scraper collects Airbnb search listings and enriches each one with its full host block — host ID, name, superhost status, response rate and time, years hosting, and identity verifications — then optionally expands every host into their complete portfolio with per-host summary analytics for portfolio size, average rating, and average price. Short-term-rental analysts, revenue management teams, and market researchers use it to map which hosts and superhosts dominate a market. Every result lands in a structured JSON dataset ready for filtering, export, or further pipeline work.
What is Airbnb Scraper: Host Full Listings?
Airbnb Scraper: Host Full Listings is an Apify Actor that searches Airbnb by location or search URL, pulls back priced, rated listings, and attaches the host who operates each one. Turning on Expand host portfolio additionally fetches every other listing that host manages plus a roll-up summary row, so a single run can go from "listings in a city" to "every host active in that city and everything they own." It runs logged-out — no Airbnb account, cookies, or API key are required.
- Discovers listings by location keyword (
hostMarketQueries) or by pasting Airbnb search URLs (hostSearchUrls) - Attaches the identifying host fields on every row: host ID, name, profile URL, superhost flag, response rate/time, and verifications
- Expands unique hosts into their full managed-listings portfolio plus one
host_summaryanalytics row per host - Returns geographic coordinates, room type, property type, and unit size (bedrooms/beds/bathrooms) on every listing
- Supports region/country disambiguation, currency and locale selection, and Airbnb's own sort orders (relevance, price low-high, price high-low)
- Streams rows to the Apify Dataset as the run progresses, exportable to JSON, CSV, Excel, or via API
What data can I extract with Airbnb Scraper: Host Full Listings?
Every run returns listing rows enriched with host data, and — with portfolio expansion on — portfolio-listing rows and host-summary roll-up rows in the same dataset, distinguished by the type and isChild fields. The table below lists the fields Apify surfaces in the default dataset view.
| Field | Example Value | Use Case |
|---|---|---|
type | "listing" / "host_listing" / "host_summary" | Filter or split the dataset by record kind |
isChild | false | Separate primary search hits from portfolio/roll-up rows |
id | "53658202" | Unique Airbnb listing ID for the search-matched stay |
listingId | "9182736450" | Unique ID of a listing inside a host's portfolio |
title | "Dream OceanView Villa" | Listing headline for display or text search |
name | "Ocean Breeze Studio" | Portfolio listing's name |
hostName | "Mehdi" | Host display name |
isSuperhost | true | Superhost qualification flag |
responseRate | "100%" | Host communication reliability signal |
responseTime | "Responds within an hour" | Host communication speed signal |
hostSince | "14 years" | Host tenure/experience signal |
verifications | ["Identity","Email address","Phone number"] | Trust/identity signals for lead qualification |
listingsCount | 6 | Listings the host manages, per their public profile |
portfolioSize | 4 | Host's authoritative total portfolio size |
portfolioListingsCollected | 4 | How many portfolio listings were actually returned |
avgRating | 4.99 | Mean rating across the host's collected portfolio |
avgPrice | 1192 | Mean nightly price across the host's priced listings |
hostRatingAverage | 4.97 | Host-level review rating |
hostRatingCount | 268 | Host-level review volume |
ratingAverage | 4.99 | Per-listing rating (portfolio rows) |
reviewCount | 45 | Per-listing review volume (portfolio rows) |
roomType | "Entire home" | Room-type classification |
propertyType | "Villa" | Property-type classification |
bedrooms | 3 | Unit size |
beds | 4 | Unit size |
bathrooms | 2 | Unit size |
hostUrl | "https://www.airbnb.com/users/show/4188395" | Host's public profile / contact link |
listingUrl | "https://www.airbnb.com/rooms/9182736450" | Portfolio listing link |
url | "https://www.airbnb.com/rooms/53658202" | Canonical listing link |
scrapedAt | "2026-07-06T08:32:52Z" | Extraction timestamp for freshness tracking |
Beyond the default view, listing rows also carry a rating object (accuracy, checking, cleanliness, communication, location, value, guestSatisfaction, reviewsCount), a price object with a full breakDown (base price, service fee, cleaning fee, taxes, total), coordinates (latitude/longitude), thumbnail, description, currency, locale, hostId, and a nested host object that adds about, highlights, hasIdentityBadge, location, and guestReviewCount. host_summary rows additionally carry avgPriceSampleSize, totalPortfolioReviews, guestReviewCount, location, and seedListingsMatched. Open a row's full JSON in the Dataset tab, or export it, to see every key.
Pricing, ratings and portfolio analytics
The price object carries the full nightly cost breakdown for the stay window you set — base price, cleaning fee, service fee, taxes, and total — so downstream logic can separate advertised price from all-in cost. The rating object splits Airbnb's single guest-satisfaction score into six sub-ratings (accuracy, check-in, cleanliness, communication, location, value) plus review volume. With portfolio expansion on, each host_summary row rolls these up per host: avgPrice (mean nightly price across that host's priced listings, with avgPriceSampleSize reporting how many contributed), avgRating, and totalPortfolioReviews. A revenue analyst can, for example, compare avgPrice against portfolioSize to spot hosts running large, high-yield portfolios in a market.
Location and property targeting data
Every listing carries coordinates (latitude/longitude) for mapping and density work, alongside roomType, propertyType, and unit size (bedrooms, beds, bathrooms) for segmenting inventory by type. On the input side, hostRegion and hostCountry narrow an ambiguous place name to the right map area, and includeNearbyAreas controls whether similarly-named nearby areas are swept in or excluded.
Why not build this yourself?
Airbnb has no public, official third-party API for search listings or host portfolios — anything built in-house has to reverse-engineer Airbnb's internal page data, which is served behind Akamai's bot defense. A plain HTTP client's TLS/JA3 fingerprint gets served an "Access to this page has been denied" page instead of listing data, and getting past that reliably means impersonating a real Chrome TLS fingerprint, handling proxy escalation (direct → datacenter → residential) on blocks, and re-parsing Airbnb's embedded JSON structures (which change without notice) for both the listing page's MEET_YOUR_HOST section and the separate host-profile page's managedListings payload. This Actor already does that work: it impersonates Chrome 131 over curl_cffi, escalates proxy mode automatically on a block, and reads both surfaces so a single run returns priced, rated listings joined to full host and portfolio data — no scraping infrastructure to build or maintain on your side.
Building your own scraper only makes sense if you need custom parsing logic this Actor doesn't expose. For a ready-to-run pipeline into a dataset, API, or downstream export, use this Actor directly.
How to use data extracted from Airbnb?
Travel and OTA analysts
Analysts benchmarking a destination pull hostMarketQueries for target cities, cap results with maxHostListings, and export price, rating, roomType, and propertyType to compare nightly rates and guest-satisfaction sub-scores across neighborhoods. Because price reflects the stayWindowStart/stayWindowEnd you set, the same run doubles as a live rate check for a specific travel-date window, and avgPrice per host (with portfolio expansion on) turns individual listings into market-level pricing benchmarks landed straight in a dataset or BI tool.
Revenue management agencies
Agencies managing multiple STR clients use expandHostPortfolio to pull a competing host's entire managed-listings block in one run — portfolioSize, avgRating, and avgPrice — as a recurring competitive audit. Re-running the same hostMarketQueries weekly against known competitor hosts turns this into portfolio-size and pricing monitoring without manually re-checking each listing.
Market research and intelligence
Researchers map STR density and host concentration by combining coordinates with hostRegion/hostCountry filters, then cross-referencing isSuperhost, listingsCount, and avgRating to see how much of a market's supply sits with a small number of large-portfolio hosts versus individual single-listing hosts.
AI agents and automated pipelines
Because the Actor runs as a standard Apify Actor with a JSON input and dataset output, agent frameworks can call it as a tool to pull host-enriched listing data for a location on demand, feeding a RAG index or an automated lead-scoring pipeline that flags superhosts by verification count and portfolio size without any manual dataset export step.
🔼 Input sample
All 14 input fields are optional — provide at least one hostMarketQueries entry or one hostSearchUrls link, or the run exits with nothing to search.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
hostMarketQueries | No | array | Host market keywords — cities, neighborhoods, or City--ST style keywords | ["paris"] |
hostSearchUrls | No | array | Airbnb search URLs (or other start links) to derive the market from | ["https://www.airbnb.com/s/london/homes"] |
stayWindowStart | No | string | Stay start (check-in) — absolute date or relative (14 days, 2 weeks) | "2026-06-01" |
stayWindowEnd | No | string | Stay end (check-out) — must be after the start | "2026-06-08" |
portfolioCurrency | No | string (enum) | Currency for listing and portfolio prices | "USD" |
portfolioLocale | No | string (enum) | Language/region used to label listings and prices | "en-US" |
maxHostListings | No | integer (1–5000) | Stop after this many search-matched listings collected | 10 |
maxSearchPages | No | integer (1–500) | Optional cap on search result pages scrolled | 10 |
includeNearbyAreas | No | boolean | Off (default) keeps only listings truly inside the named market; on also includes nearby/similarly-named areas | false |
expandHostPortfolio | No | boolean (default false) | When on, emit every listing each host manages plus a host_summary roll-up row | true |
sortOrder | No | string (enum, default "relevance") | Airbnb search result order: relevance, price_asc, price_desc | "price_asc" |
hostRegion | No | string (enum) | Region/state/province to pin an ambiguous market | "California" |
hostCountry | No | string (enum) | Country to pin an ambiguous market | "United States" |
connectionProxy | No | object | Apify Proxy configuration; runs direct by default | {"useApifyProxy": true} |
Example input
{"hostMarketQueries": ["malibu--ca"],"stayWindowStart": "2026-08-01","stayWindowEnd": "2026-08-05","portfolioCurrency": "USD","maxHostListings": 15,"expandHostPortfolio": true,"sortOrder": "relevance","hostCountry": "United States","connectionProxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Common pitfall: maxHostListings caps search-matched listings, not the total rows the run produces — with expandHostPortfolio on, a small maxHostListings value can still return far more rows once every matched host's whole portfolio is expanded. Set maxHostListings low first to check portfolio sizes before scaling up.
🔽 Output sample
Each run pushes typed, normalized JSON rows to the Apify Dataset as it goes — no waiting for the run to finish to see data. Rows are tagged type (listing, host_listing, or host_summary) and isChild, so you can filter one dataset into three logical tables. Export as JSON, CSV, Excel, or pull it via the Apify API. With expandHostPortfolio on, host_summary rows also mirror to a per-run child dataset named <runId>-hosts.
{"type": "listing","isChild": false,"id": "53658202","title": "Dream OceanView Villa","description": "Sunlit 3-bedroom villa steps from the beach, with a private pool and full kitchen.","thumbnail": "https://a0.muscache.com/im/pictures/example-hero.jpg","url": "https://www.airbnb.com/rooms/53658202","currency": "USD","locale": "en-US","rating": {"accuracy": 4.96,"checking": 4.95,"cleanliness": 4.93,"communication": 4.98,"location": 4.87,"value": 4.91,"guestSatisfaction": 4.92,"reviewsCount": 1456},"price": {"label": "USD 210","qualifier": "night","price": "USD 210","originalPrice": "","discountedPrice": "USD 210","breakDown": {"basePrice": { "description": "4 nights x USD 210", "price": "USD 840" },"serviceFee": "USD 75","cleaningFee": "USD 60","taxes": "USD 84","total": { "price": "USD 1059", "description": "Total" },"totalBeforeTaxes": "USD 975"}},"coordinates": { "latitude": 34.0259, "longitude": -118.7798 },"hostId": "4188395","hostName": "Mehdi","hostUrl": "https://www.airbnb.com/users/show/4188395","isSuperhost": true,"responseRate": "100%","responseTime": "Responds within an hour","hostSince": "14 years","verifications": ["Identity", "Email address", "Phone number"],"listingsCount": 6,"hostRatingAverage": 4.97,"hostRatingCount": 268,"host": {"id": "4188395","name": "Mehdi","url": "https://www.airbnb.com/users/show/4188395","isSuperhost": true,"isVerified": true,"responseRate": "100%","responseTime": "Responds within an hour","hostSince": "14 years","ratingAverage": 4.97,"ratingCount": 268,"about": "Full-time host based in Malibu, sharing coastal properties since 2012.","highlights": ["Speaks English and Spanish"],"verifications": ["Identity", "Email address", "Phone number"],"hasIdentityBadge": true,"location": "Malibu, California","listingsCount": 6,"guestReviewCount": 32},"scrapedAt": "2026-07-06T08:32:52Z"}
How do you filter and target specific listings?
hostMarketQueries (a plain place name or City--ST keyword) is more accurate than pasting a hostSearchUrls link when you want the Actor's own geo-matching to lock the result set to the right map area; use search URLs when you already have a specific Airbnb search configured (dates, filters) that you want replicated exactly. For scope, hostRegion and hostCountry disambiguate a place name that exists in multiple countries (there are two Cordobas, for instance), while includeNearbyAreas controls whether the net widens to similarly-named or adjacent areas — leave it off for a tight, single-market pull. stayWindowStart/stayWindowEnd set the date scope that drives live pricing, since Airbnb's price for a given listing depends on the exact stay length and dates requested. This Actor has no rating- or review-count minimum filter built in — quality thresholds are applied downstream by filtering the returned rating/hostRatingAverage/reviewCount fields after extraction. Volume is controlled by maxHostListings (how many search-matched listings to collect) and maxSearchPages (how many result pages to walk to find them); with expandHostPortfolio on, actual row volume grows with each matched host's real portfolio size, which the Actor does not cap.
{ "hostMarketQueries": ["Austin--TX"], "hostCountry": "United States", "maxHostListings": 25 }
{ "hostMarketQueries": ["cordoba"], "hostRegion": "Córdoba", "hostCountry": "Argentina", "includeNearbyAreas": false }
{ "hostMarketQueries": ["lisbon"], "expandHostPortfolio": true, "sortOrder": "price_desc", "maxHostListings": 10 }
▶️ Want to try other Airbnb scrapers?
| Scraper Name | What it extracts |
|---|---|
| Airbnb Full Year Price Tracker Scraper | A full year of nightly Airbnb prices per listing for availability and pricing-calendar analysis |
| Airbnb Occupancy & Rate Analytics Scraper | Occupancy and rate analytics for Airbnb listings over a date range |
| Airbnb Phone Number Scraper with Host Listing Leads Finder | Airbnb listings, host profiles, and experiences discovered via Google SERP, classified with Airbnb ID and result type |
| Google Hotels — Location Details Scraper | Hotel location details from Google Hotels for comparable travel-inventory research |
| Zillow Agents Finder & Reviews Scraper | Real-estate agent profiles and reviews from Zillow |
| Zillow Search Scraper: Investment Analyzer | Zillow property search results with investment and rental-yield analytics |
How to extract Airbnb data programmatically
This Actor runs as a standard Apify Actor: send a JSON input to a run endpoint with your Apify API token, and get structured JSON rows back from the run's dataset — no scraping code to maintain.
Python example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("SimpleAPI/airbnb-scraper-host-full-listings").call(run_input={"hostMarketQueries": ["austin--tx"],"maxHostListings": 20,"expandHostPortfolio": True,"sortOrder": "price_asc",})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("type") == "listing":print(row["hostName"], row["isSuperhost"], row["price"]["price"])
Export to spreadsheets or CRM
Every dataset supports one-click export to CSV, Excel, or JSON from the Apify Dataset tab, or via the API's dataset items endpoint. Map hostName, hostUrl, isSuperhost, responseRate, verifications, and listingsCount straight into CRM columns for host/lead tracking, and price, rating, roomType into a pricing or inventory sheet.
Is it legal to scrape Airbnb listings?
Yes — this Actor extracts data that Airbnb publishes openly on public listing and host-profile pages, without logging in or bypassing any access control. Airbnb search results and listing pages are public business/product data (pricing, availability, property attributes) published to be discovered by prospective guests, which is generally governed by Airbnb's Terms of Service and database-rights considerations rather than by data-protection law. The host block does include a host's self-published name and profile — personal identifiers a host chooses to display publicly to run their business — so if you store host names or profile data in bulk, treat that subset under GDPR/CCPA-style lawful-basis principles. Consult legal counsel for commercial applications involving bulk storage of personal data.
❓ FAQ
What happens if a host removes a listing or it goes off-market?
The Actor returns listings and host profiles exactly as published at request time; a listing that's been removed or taken off-market simply won't appear in a fresh search, and re-running with expandHostPortfolio on will reflect the host's current, updated portfolio rather than a stale one.
Can I get host portfolio data along with the main listing search?
Yes. Every listing row already includes the host block (superhost, response rate/time, verifications, listings count) with no extra step. Turn on expandHostPortfolio to additionally emit one host_listing row per listing the host manages plus one host_summary roll-up row per unique host; this fetches one extra page per unique host, so the more distinct hosts your search returns, the more rows and requests the run produces.
How accurate is the host and pricing data?
The Actor returns data exactly as it appears on the public listing and host-profile pages at the time of the request. Accuracy depends on whether the host keeps their profile and listing details current — for time-sensitive pricing, re-run the Actor close to your target dates and treat price as a point-in-time snapshot rather than a permanent record.
How many listings can I get per run?
maxHostListings accepts 1–5,000 and defaults to 10; that caps the number of search-matched listings collected, not the total dataset rows. With expandHostPortfolio on, each matched host's full real portfolio is added on top, uncapped by maxHostListings, so total row count scales with how many listings the matched hosts actually manage.
How does the portfolio expansion filter work?
Set expandHostPortfolio to true and every unique host behind your matched listings gets expanded into their complete managedListings portfolio plus a host_summary row (portfolio size, average rating, average price, superhost flag). Leave it false (the default) to keep the run to listing rows only, each still carrying the host block.
Does this Actor work with Claude, ChatGPT, and AI agent frameworks?
Yes, as a standard HTTP-callable Apify Actor — any agent framework that can call the Apify API can trigger a run with a JSON input and read the resulting dataset, making it usable as a tool inside a custom agent pipeline.
How does this compare to other Airbnb scrapers?
Compared with scrapers that return only priced listings, this Actor's distinguishing feature is host-level enrichment: it attaches the full host block to every listing and can expand each host into their entire managed portfolio with roll-up analytics, rather than requiring a second, separate lookup per host.
Can I use this without an Airbnb account or API key?
Yes. The Actor runs fully logged-out against Airbnb's public pages — no Airbnb account, cookies, or API key are needed. You only need an Apify account to run the Actor itself.
Do I need to configure a proxy to run this?
No — it connects directly by default and only needs connectionProxy set if your workspace requires routing through Apify Proxy or you hit persistent blocks in a tough network environment.
What region and language options are supported?
portfolioCurrency and portfolioLocale control how prices and text are displayed, each backed by a fixed list of enum values in the input schema, while hostRegion and hostCountry (also enum-backed) narrow ambiguous place names to the right country or region.
Conclusion
Airbnb Scraper: Host Full Listings turns a plain city search into host-centric market intelligence — every listing arrives with its host's identity, trust signals, and communication metrics, and any host can be expanded into their full portfolio with roll-up analytics in the same run. It's built for travel analysts, revenue management teams, and market researchers who need structured, filterable host and listing data without maintaining their own Airbnb scraping infrastructure. Open the Actor on Apify and start a run with a market keyword to see it in your Dataset tab.
