Airbnb Scraper
Pricing
Pay per event
Airbnb Scraper
Extract Airbnb listing prices, reviews, ratings, amenities, and host info for any city worldwide. Vacation rental and short-term rental market research tool. No login required. AI-ready structured data. JSON, CSV, Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
1
Bookmarked
63
Total users
20
Monthly active users
0.55 hours
Issues response
3 days ago
Last modified
Categories
Share
What does Airbnb Scraper do?
Airbnb Scraper extracts all available Airbnb listings for any location worldwide — complete with prices, descriptions, ratings, amenities, host info, GPS coordinates, house rules, and photos. Whether you're researching vacation rentals for travel planning or analyzing a short-term rental market, enter a city name, click Start, and get structured rental data in JSON, CSV, or Excel.
Unlike other Airbnb scrapers, this one uses price-range binary splitting to bypass Airbnb's pagination limits. Most scrapers are capped at 300 results per query — this one finds every listing in your target area, guaranteed.
It works in two modes:
- Full mode (default) — visits each listing page to extract 40+ fields: description, all amenities, host profile, 30+ photos, house rules, cancellation policies, rating breakdowns
- Search-only mode (
skipDetailPages: true) — extracts data from search results only. Faster, same price per listing, but fewer fields.
Who is Airbnb Scraper for?
Real estate investors and analysts
- Compare nightly rates across neighborhoods to identify high-yield rental markets
- Track pricing trends over time by scheduling weekly or monthly scrapes
- Find undervalued properties by combining price data with rating and location data
Property managers and vacation rental hosts
- Benchmark your portfolio's pricing against local competition
- Monitor new listings entering your market
- Analyze amenity trends to improve your listing competitiveness
Travel and hospitality researchers
- Map supply and demand patterns across cities and regions
- Analyze seasonal pricing fluctuations by scraping the same locations with different date ranges
- Study host behavior patterns (Superhost density, response rates, co-hosting trends)
Data scientists and developers
- Build rental market dashboards and pricing models
- Feed Airbnb data into ML pipelines for price prediction
- Combine with review data from our Airbnb Reviews Scraper for sentiment analysis
Why use Airbnb Scraper?
- 100% listing coverage — price-range splitting bypasses Airbnb's pagination limits, finding every listing in your target area. Most competitors cap at ~300 results.
- 100% price coverage — every listing includes pricing data, extracted directly from search results. No missing prices.
- No browser needed — runs on a lightweight HTTP crawler, keeping costs low and speed high
- No API key or login required — just enter a location and go
- Two modes — get a fast market overview (search-only) or rich per-listing data (full mode)
- Flexible output — JSON, CSV, Excel, XML, or HTML table. Integrate via API, webhooks, or 100+ Apify integrations
- 30+ currencies and locales — get prices in EUR, GBP, JPY, or any currency Airbnb supports
What data can you extract from Airbnb?
Full mode (default: skipDetailPages: false)
| Data point | Example |
|---|---|
| Listing ID & URL | 788405891732745420, web URL + Android/iOS deep links |
| Title & description | Full listing name and HTML description |
| Price per night | Nightly rate in your chosen currency, with price breakdown (cleaning fee, service fee, total) |
| Coordinates | Precise GPS latitude/longitude (e.g., 38.546, -8.843) |
| Property & room type | "Entire rental unit", "Private room in villa" |
| Rating | Overall score + breakdown (cleanliness, accuracy, check-in, communication, location, value) + review count |
| Host info | Name, photo, Superhost status, highlights, about, co-hosts |
| Amenities | Full categorized list (13+ groups: kitchen, bathroom, entertainment, safety) |
| House rules | Check-in/out times, guest limits, pet and smoking policies |
| Images | All listing photos with captions (typically 15-40 per listing) |
| Location descriptions | Neighborhood highlights, transit info, area tips |
| Highlights | Featured badges (Self check-in, Great location) |
| Person capacity | Maximum number of guests |
| Cancellation policies | Policy name and terms |
| Superhost status | Whether the host is an Airbnb Superhost |
Search-only mode (skipDetailPages: true)
A faster output with fields available directly from search results:
| Data point | Included |
|---|---|
| Listing ID, URL, deep links | Yes |
| Title | Yes |
| Price per night | Yes |
| Coordinates (approximate) | Yes |
| Room type | Yes |
| Star rating + review count | Yes |
| Thumbnail image | Yes |
| Superhost status | Yes |
| Description, amenities, host info, images, house rules | No — requires detail pages |
How much does it cost to scrape Airbnb?
This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription required. All platform costs (compute, proxy, storage) are included in the price.
| Free plan | Starter ($49/mo) | Scale ($499/mo) | |
|---|---|---|---|
| Per listing | $0.003 | $0.0025 | $0.002 |
| 1,000 listings | $3.00 | $2.50 | $2.00 |
| 10,000 listings | $30.00 | $25.00 | $20.00 |
Higher-tier Apify plans (Gold, Platinum, Diamond) get additional volume discounts down to $0.00075 per listing.
Real-world cost examples:
| Location | Listings found | Mode | Duration | Cost (Free tier) |
|---|---|---|---|---|
| Setúbal, Portugal | 946 | Search-only | ~70 sec | ~$2.84 |
| Setúbal, Portugal | 943 | Full detail | ~4 min | ~$2.83 |
| London, UK | 12,037 | Full detail | ~7 min | ~$36.11 |
| Tokyo, Japan | 14,007 | Full detail | ~7 min | ~$42.02 |
| Brooklyn, NYC | 3,117 | Full detail | ~4 min | ~$9.35 |
| Cape Town, SA | 7,407 | Full detail | ~6 min | ~$22.22 |
Costs shown at Free tier ($0.003/listing). Starter and Scale tiers are 17-33% cheaper.
With the Apify Free plan, you get $5 of free usage per month — enough to scrape ~1,600 listings for free.
How to scrape Airbnb listings
- Go to the Airbnb Scraper on Apify Store
- Click Try for free to open the Actor in Apify Console
- Enter your target location (e.g., "London", "Tokyo, Japan", "Miami Beach, FL")
- Optionally set check-in/check-out dates, guest count, and filters
- Click Start and wait for the run to complete
- Download your data in JSON, CSV, Excel, XML, or HTML table format
The simplest input just requires a location:
{"locationQueries": ["London"]}
For targeted searches with dates and filters:
{"locationQueries": ["Barcelona, Spain"],"checkIn": "2026-06-15","checkOut": "2026-06-22","adults": 2,"currency": "EUR","locale": "en-US"}
Multiple locations in a single run:
{"locationQueries": ["Paris, France","Rome, Italy","Berlin, Germany"]}
Fast search-only mode (no detail pages):
{"locationQueries": ["Tokyo, Japan"],"skipDetailPages": true}
How do I scrape Airbnb listings and prices?
| Parameter | Type | Default | Description |
|---|---|---|---|
locationQueries | string[] | — | Locations to search (e.g., "London", "Paris, France") |
startUrls | URL[] | — | Pre-built Airbnb search URLs (alternative to locationQueries) |
checkIn | string | — | Check-in date in YYYY-MM-DD format |
checkOut | string | — | Check-out date in YYYY-MM-DD format |
adults | integer | 1 | Number of adult guests |
children | integer | 0 | Number of children |
infants | integer | 0 | Number of infants |
pets | integer | 0 | Number of pets |
priceMin | integer | — | Minimum price per night |
priceMax | integer | — | Maximum price per night |
minBeds | integer | — | Minimum number of beds |
minBedrooms | integer | — | Minimum number of bedrooms |
minBathrooms | integer | — | Minimum number of bathrooms |
locale | string | en-US | Language/locale (en-US, de-DE, fr-FR, ja-JP, etc.) |
currency | string | USD | Currency code (USD, EUR, GBP, JPY, etc.) |
skipDetailPages | boolean | false | Skip detail pages for faster, cheaper scraping (less data per listing) |
maxListings | integer | 0 | Stop after this many listings (0 = unlimited) |
maxPricePerNight | integer | 10000 | Upper bound for price-range splitting. Increase if scraping luxury markets. |
maxRequestsPerCrawl | integer | 0 | Limit total HTTP requests (0 = unlimited) |
What data can I extract from Airbnb?
Full listing output (with detail pages):
{"id": "788405891732745420","title": "Recanto da Lima","url": "https://www.airbnb.com/rooms/788405891732745420?adults=1&locale=en-US¤cy=USD","androidLink": "airbnb://rooms/788405891732745420","iosLink": "airbnb://rooms/788405891732745420","locale": "en-US","language": "en","price": {"label": "$45","qualifier": "per night","price": "$45","originalPrice": null,"discountedPrice": null,"breakDown": {"nightlyPrice": "$45","totalPrice": "$315","cleaningFee": "$30","serviceFee": "$50"}},"coordinates": {"latitude": 38.546,"longitude": -8.84326},"description": "Accommodation in a calm and safe residential area...","seoTitle": "Recanto da Lima - Guest suites for Rent in Setúbal","metaDescription": "Private room in Setúbal, Portugal. Accommodation in a calm and safe residential area...","roomType": "Private room in home","isSuperHost": true,"personCapacity": 3,"rating": {"guestSatisfaction": 4.98,"reviewsCount": 129,"cleanliness": 5,"accuracy": 5,"checking": 5,"communication": 5,"location": 4.8,"value": 4.9},"host": {"name": "Cláudia","isSuperHost": true,"profileImage": "https://a0.muscache.com/im/pictures/user/...","highlights": ["Superhost", "128 reviews", "Identity verified"],"about": ["Lives in Setúbal, Portugal", "Speaks English and Portuguese"]},"amenities": [{"title": "Bathroom","values": [{ "title": "Bathtub", "available": true },{ "title": "Hair dryer", "available": true }]}],"houseRules": {"general": [{"title": "Checking in and out","values": [{ "title": "Check-in after 3:00 PM" },{ "title": "Checkout before 11:00 AM" }]}]},"highlights": [{ "title": "Great check-in experience", "subtitle": "100% of recent guests gave check-in a 5-star rating." }],"images": [{"caption": "Photo 1","imageUrl": "https://a0.muscache.com/im/pictures/hosting/.../original/4fc66ff6.jpeg"}],"locationDescriptions": [{ "title": "Setúbal, Portugal", "content": "A calm residential area..." }],"coHosts": [],"isAvailable": true,"thumbnail": "https://a0.muscache.com/im/pictures/hosting/.../original/4fc66ff6.jpeg","timestamp": "2026-01-30T17:10:00.000Z"}
Search-only output (skipDetailPages: true):
{"id": "788405891732745420","title": "Recanto da Lima","url": "https://www.airbnb.com/rooms/788405891732745420","androidLink": "airbnb://rooms/788405891732745420","iosLink": "airbnb://rooms/788405891732745420","locale": "en","language": "en","price": {"label": "$45","qualifier": "per night","price": "$45","originalPrice": null,"discountedPrice": null},"coordinates": {"latitude": 38.546,"longitude": -8.843},"roomType": "Entire home/apt","rating": {"guestSatisfaction": 4.98,"reviewsCount": 129},"thumbnail": "https://a0.muscache.com/im/pictures/hosting/.../original/4fc66ff6.jpeg","coHosts": [],"images": [],"isAvailable": true,"timestamp": "2026-01-30T17:00:00.000Z"}
How do I get the best results from Airbnb Scraper?
- Start small — set
maxListingsto 10 for a test run before scraping an entire city - Use search-only mode (
skipDetailPages: true) for fast market overviews when you only need listing counts, prices, locations, and ratings - Run multiple locations in one run using the
locationQueriesarray — you pay the start fee only once - Increase
maxPricePerNightabove 10000 if scraping luxury markets where listings exceed $10,000/night - Add check-in/check-out dates to get availability-specific pricing breakdowns and total costs including fees
- Use
startUrlsto apply Airbnb filters not available as input fields — set up your search on airbnb.com, copy the URL, and paste it intostartUrls - Schedule recurring runs to build a time series of pricing data for trend analysis
How to monitor Airbnb prices in your area
Price monitoring is one of the most popular use cases for Airbnb Scraper. By scheduling recurring runs against the same location query, you build a time series of nightly rates, occupancy signals, and new listings — without writing a single line of custom tracking code.
Step-by-step price monitoring setup:
- Run the scraper once for your target area (e.g., "Austin, TX") in search-only mode to get a baseline dataset
- Open the Actor in Apify Console, go to Schedules, and create a daily or weekly recurring schedule
- Each run saves a new dataset — compare datasets over time to spot pricing trends, new competition, or seasonal shifts
- Connect to Google Sheets via the Apify integration to get an auto-updating spreadsheet with all historical snapshots
- Add a webhook to receive a Slack/Discord alert when each run completes, so you always know when fresh data is available
What to track:
- Average nightly price per neighborhood over time
- Number of active listings (supply changes)
- Superhost density as a proxy for market maturity
- Price gaps between listing types (entire home vs. private room)
For real estate investors and vacation rental managers, scheduling weekly scrapes of target markets is the cheapest way to track rental market movements — far cheaper than subscribing to a dedicated data provider.
How to download Airbnb listing data without coding
You don't need any programming knowledge to get structured Airbnb data. The entire workflow runs in your browser via Apify Console.
No-code walkthrough:
- Go to Airbnb Scraper and click Try for free
- In the input form, type your target location (e.g., "Miami Beach, FL") into the Location queries field
- Optionally set check-in and check-out dates to get availability-specific pricing
- Click Start — the run takes 1–10 minutes depending on market size
- When it finishes, click Export and choose your format: CSV (Excel-compatible), JSON, or Excel (XLSX)
- Open the CSV in Google Sheets or Microsoft Excel for instant analysis
Tips for non-technical users:
- Use search-only mode (toggle
skipDetailPagesto true) for a faster, cheaper run if you only need prices and ratings - Set
maxListingsto 100 for a quick preview before committing to a full city scrape - The Apify Free plan gives you $5/month in credit — enough for ~1,600 listings at no cost
No API keys, no code, no setup beyond creating a free Apify account.
Airbnb market analysis: how to compare listings
Airbnb Scraper is purpose-built for competitive market analysis. Here's how to use the data to compare listings, identify pricing opportunities, and benchmark your property against the competition.
Key metrics to extract and compare:
| Metric | Field in output | Why it matters |
|---|---|---|
| Nightly price | price.price | Core competitive benchmark |
| Rating breakdown | rating.* | Identify where top performers score vs. average |
| Superhost density | isSuperHost | Signals market competitiveness |
| Review count | rating.reviewsCount | Proxy for booking velocity |
| Amenity gaps | amenities[].values | Find amenities that top listings share but yours lacks |
| Room type mix | roomType | Understand supply structure |
Workflow for a competitive analysis:
- Scrape your target neighborhood in full mode to get all 40+ fields per listing
- Export to CSV and open in Excel or Google Sheets
- Filter by
roomType = "Entire rental unit"to compare apples to apples - Sort by
rating.guestSatisfactiondescending — study the top 20 listings' amenities and pricing - Create a pivot table grouping by price range to see rating distributions at each tier
- Use
coordinatesto build a map visualization in Google Sheets or Tableau
Pair Airbnb Scraper with the Airbnb Reviews Scraper to add sentiment analysis — see what guests praise and complain about across competing listings, and use that to improve your own listing copy and amenities.
Integrations
Airbnb Scraper connects with any cloud service or web app through Apify integrations.
Common workflows:
- Airbnb to Google Sheets — automatically export listing data to a spreadsheet for collaborative analysis and price tracking
- Airbnb to Slack/Discord — get notified when a scraping run completes or when new listings appear in your market
- Airbnb to Make/Zapier — trigger downstream workflows: update a CRM, send email alerts, populate a database
- Airbnb to BigQuery/Snowflake — pipe listing data into your data warehouse via Airbyte for large-scale analytics
- Scheduled runs — set up daily, weekly, or monthly scrapes to track pricing trends over time
- Webhooks — receive results via HTTP POST as soon as the run finishes for real-time processing
Using the Apify API
The Apify API gives you programmatic access to run this Actor, retrieve datasets, and automate scraping workflows.
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/airbnb-listing').call({locationQueries: ['London'],currency: 'GBP',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/airbnb-listing').call(run_input={'locationQueries': ['London'],'currency': 'GBP',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL:
curl "https://api.apify.com/v2/acts/automation-lab~airbnb-listing/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"locationQueries": ["London"], "currency": "GBP"}'
Check out the Apify API reference for full documentation.
Use with AI agents via MCP
Airbnb Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP). This lets you scrape Airbnb data using natural language — just ask your AI assistant to "get Airbnb listings in Tokyo" and it will configure and run the scraper for you.
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Get all Airbnb listings in downtown Miami under $200/night"
- "How many Airbnb listings are available in Tokyo for next month?"
- "Scrape Airbnb data for Paris, Rome, and Berlin and compare average prices"
- "Find all Superhosts with 4.9+ ratings in Barcelona"
Learn more in the Apify MCP documentation.
How many Airbnb listings are there by city?
Airbnb hosts over 8 million active listings in 220+ countries. Here are listing counts from real scraping runs using this actor (2026 data):
| City | Listings found | Scrape time | Cost |
|---|---|---|---|
| Tokyo, Japan | 14,007 | ~7 min | ~$42 |
| London, UK | 12,037 | ~7 min | ~$36 |
| Cape Town, SA | 7,407 | ~6 min | ~$22 |
| Brooklyn, NYC | 3,117 | ~4 min | ~$9 |
These numbers represent all available listings — not the 300-result cap most other Airbnb scrapers return. The price-range binary splitting algorithm discovers every listing in a target area, making this data suitable for market sizing, investment analysis, and academic research.
FAQ
What's the difference between full mode and search-only mode?
Full mode (skipDetailPages: false, the default) extracts rich data for each listing: full description, all amenities, host profile, 30+ photos, house rules, and cancellation policies. It takes longer because it visits each listing page individually.
Search-only mode (skipDetailPages: true) extracts data from search results only. You get: ID, title, URL, price, coordinates, room type, star rating, review count, and a thumbnail. It's roughly 5x faster — ideal for market sizing, location mapping, or when you just need listing counts with prices. Both modes cost the same per listing.
How does this compare to other Airbnb scrapers?
Most Airbnb scrapers on the market are limited by Airbnb's pagination — they return at most 300 results per query. This scraper uses price-range binary splitting to find every listing in your target area, no matter how many there are. In our tests, London returned 12,000+ listings, Tokyo 14,000+, and Cape Town 7,400+. Every result includes pricing data.
How much does it cost?
You pay $3 per 1,000 listings on the Apify Free plan. Higher Apify subscription tiers get volume discounts (down to $0.75 per 1,000 on Diamond). All platform costs are included — no surprise compute or proxy charges. With the Free plan's $5 monthly credit, you can scrape ~1,600 listings at no cost.
How many listings can this scraper find?
There is no hard cap. The price-range splitting algorithm discovers all listings in your target area. In our tests: London returned 12,000+ listings, Tokyo 14,000+, and Cape Town 7,400+.
Can I scrape multiple cities at once?
Yes. Add multiple locations to the locationQueries array and they'll all be scraped in a single run.
Why does every listing have a price?
The scraper extracts prices from search results where Airbnb always includes pricing data. This means 100% price coverage regardless of whether you use full mode or search-only mode.
Can I filter by property type, amenities, or other criteria?
You can filter by price range, number of bedrooms/beds/bathrooms, and guest count directly in the input. For property type and amenity filtering, use startUrls with a pre-filtered Airbnb search URL from your browser.
What if some listings are missing or the run seems slow?
- Make sure your location name is specific enough. "London" works, but "London, UK" is better to avoid ambiguity.
- For cities with 10,000+ listings, a full run may take 5-10 minutes — this is normal.
- If you're scraping luxury markets, increase
maxPricePerNightabove 10000 to ensure high-end listings are included. - Check the run log in Apify Console for any specific errors.
Is it legal to scrape Airbnb?
Our scrapers are ethical and do not extract any private user data. They only extract what Airbnb has chosen to make publicly available on listing pages. We believe that our scrapers, when used for ethical purposes, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the legality of web scraping.
Legality
Airbnb Scraper only accesses publicly available listing data from Airbnb. It does not bypass any login walls, CAPTCHAs, or access controls. The data collected is the same as what any visitor can see when browsing Airbnb listings without an account.
Web scraping of publicly available data is generally legal, but results may contain personal data protected by GDPR and other regulations. You should not scrape personal data unless you have a legitimate reason to do so. Review Airbnb's Terms of Service and applicable laws in your jurisdiction. You can read more about the legality of web scraping.
Related scrapers
- Airbnb Reviews Scraper — Extract all reviews for any Airbnb listing with ratings, sorting, and topic filters
- Booking.com Scraper — Scrape hotels, prices, and ratings from Booking.com
- TripAdvisor Scraper — Scrape reviews, ratings, and business details from TripAdvisor
- Google Maps Reviews Scraper — Extract reviews and ratings from Google Maps business listings
- Trustpilot Scraper — Search for businesses and scrape reviews from Trustpilot
