Airbnb Search Scraper
Pricing
from $0.50 / 1,000 results
Airbnb Search Scraper
Cheap, fast Airbnb search scraper. Paste a search URL or destination and get every listing — title, price breakdown, rating, coordinates, photos, room topology — at $0.50 per 1,000 results.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
33
Total users
14
Monthly active users
9 days ago
Last modified
Categories
Share
Scrape Airbnb search results from any destination or search URL. This Airbnb search scraper returns every listing with title, nightly price breakdown, star rating, exact coordinates, photos, and room topology — beds, bedrooms, and bathrooms — at $0.50 per 1,000 results.
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 Search Scraper?
Airbnb Search Scraper is an Apify Actor that extracts search-results listings from Airbnb and returns them as clean, structured records. It talks to Airbnb's own search API rather than rendering pages in a browser, which is why it is both the cheapest and one of the fastest ways to pull a full market off Airbnb.
What data can this Airbnb search scraper extract?
Every run writes one row per listing. Full field list:
| Field | Type | Description |
|---|---|---|
id | string | Airbnb's numeric listing id as a string. Stable across runs; use it for deduplication. |
url | string | Canonical listing page, https://www.airbnb.com/rooms/ |
title | string | Card title, usually ' |
name | string | Host-written listing name. |
subtitle | string | Subtitle |
description | string | Comma-joined room topology summary lines from the card. |
roomType | string | Room type |
bedrooms | number | Bedrooms |
beds | number | Beds |
bathrooms | number | Bathrooms |
rating | object | value (0-5), reviewsCount, plus the localized label strings. |
price | object | label is the displayed price string; perNight/nights/taxes/total are parsed numbers when Airbnb provides them;... |
coordinates | object | Coordinates |
badges | array | Badges |
thumbnail | string | First photo URL. |
pictures | array | All card photo URLs. |
searchUrl | string | The seed search this listing came from. |
searchPage | number | Search page |
warning | string | Only present on diagnostic rows, e.g. when a search legitimately returns zero listings. |
scrapedAt | string | Scraped at |
How to scrape Airbnb search results
- Open Airbnb Search Scraper and click Try for free.
- Paste an Airbnb search URL into
startUrls, or just type a destination intolocationQueries. - Set
checkInandcheckOutplus guest counts if you want date-specific pricing. - Narrow the market with
priceMin,priceMax,minBedrooms,minBeds, orminBathrooms. - Set
maxItemsto cap the run, and pick yourcurrencyandlocale. - Click Start and watch rows appear live in the Output tab.
- Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.
Airbnb Search Scraper input options
| Input | Type | What it does | Default |
|---|---|---|---|
startUrls | array | Paste one or more Airbnb search URLs, e.g.... | see schema |
locationQueries | array | Convenience input — list city or destination names instead of URLs. Each entry becomes an Airbnb search. Combined... | |
maxItems | integer | Hard cap on how many listings to push to the dataset across all search URLs combined. Recommend 100–500. Airbnb caps... | 50 |
checkIn | string | YYYY-MM-DD, today or later. Applied to URLs / locations that don't already have a check-in date. Past or invalid... | |
checkOut | string | YYYY-MM-DD, after check-in. Applied if the URL doesn't already have a check-out. | |
adults | integer | Number of adult guests. Applied if URL doesn't already specify. | |
children | integer | Number of children (ages 2-12). | |
infants | integer | Number of infants (under 2). | |
pets | integer | Number of pets traveling with the guest. | |
priceMin | integer | Lower bound for nightly price filter, in the selected currency. | |
priceMax | integer | Upper bound for nightly price filter, in the selected currency. | |
minBedrooms | integer | Minimum number of bedrooms required. | |
minBeds | integer | Minimum number of beds required. | |
minBathrooms | integer | Minimum number of bathrooms required. | |
currency | string | ISO 4217 code. Defaults to USD for stable pricing fields. | "USD" |
locale | string | Language/region for listing text. | "en-US" |
Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.
Example output
{"startUrls": [{"url": "https://www.airbnb.com/s/Asheville--North-Carolina--United-States/homes?adults=2&checkin=2026-06-15&checkout=2026-06-18¤cy=USD"}],"maxItems": 200}
How much does it cost to scrape Airbnb?
This Actor runs on pay per result pricing: $0.0005 per listing ($0.5 per 1,000). A one-time start fee of $0.00005 applies per run.
| Results | Approximate cost |
|---|---|
| 1,000 | $0.50 |
| 10,000 | $5.00 |
| 100,000 | $50.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 Search Scraper at no cost.
What can you build with Airbnb data?
Size an Airbnb market before you buy
Pull every active listing in a ZIP code or city with price, bedroom count, and rating, then compute median nightly rate by bedroom tier to underwrite a short-term-rental purchase.
Track competitor pricing in your neighborhood
Schedule the same search daily and diff the price field per listing to see who is discounting, who is holding rate, and how the market median moves into high season.
Feed a revenue-management or pricing tool
Coordinates on every row let you build a true comp set by radius rather than by Airbnb's fuzzy search area, which is the input most dynamic-pricing models actually need.
Build a short-term-rental research dataset
Stable listing id values make runs joinable over time, so repeated pulls become a longitudinal panel of supply, price, and rating movement.
Generate lead lists of hosts and properties
Every row carries the listing URL, which feeds directly into the Airbnb Listing Details Scraper and Airbnb Host Listings Scraper for full property and host enrichment.
Airbnb scraping tips and limits
- Airbnb's own search caps out well before a large city is fully enumerated. Split a metro into neighborhoods or draw several smaller map areas to get complete coverage.
- Pass
checkInandcheckOutwhenever you care about price. Without dates Airbnb returns indicative pricing that will not match what a guest is quoted. - Keep
currencyfixed across runs — comparing rows pulled in different currencies is the most common source of bad analysis in Airbnb datasets. - Use the search URL from your browser when you have already applied filters in Airbnb's UI. Every filter in that URL is honoured.
Integrations and automation
Run Airbnb Search 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.
Related scrapers
| Actor | What it does |
|---|---|
| Airbnb Listing Details Scraper | Every field on a listing page: photos, amenities, house rules, host. |
| Airbnb Full-Year Price Scraper | Real nightly prices and availability for the next 12 months. |
| Airbnb Reviews Scraper | Every review on a listing with full pagination. |
| VRBO Search Results Scraper | The same market on VRBO and Expedia for cross-platform comparison. |
Frequently asked questions
How many Airbnb listings can I scrape in one run?
There is no Actor-side limit — set maxItems as high as you like. The practical ceiling is Airbnb's own search pagination, which stops returning new results after a few hundred listings per search area. Split the map into smaller areas to go deeper.
Does it return the exact nightly price a guest would pay?
The search row carries the price Airbnb shows on the search card for your dates and guest count. For the fully resolved per-night price including discounts and fees, run the Airbnb Full-Year Price Scraper.
Do I need a Airbnb API key?
No. Airbnb Search 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 Search 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.
Is it legal to scrape Airbnb?
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 to anyone browsing the site. 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.
