Airbnb Scraper
Pricing
from $2.00 / 1,000 listing scrapeds
Airbnb Scraper
Extract Airbnb listings, prices, ratings, host data, amenities & GPS coordinates for any location. Search by city or scrape direct listing URLs. Returns CRM-ready structured JSON. Export scraped data, run via API, schedule and monitor runs, or integrate with other tools.
Pricing
from $2.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 hours ago
Last modified
Categories
Share
🏠 Airbnb Scraper — Extract Listings, Prices & Host Data
What does Airbnb Scraper do?
Airbnb Scraper extracts structured data from Airbnb listings for any location worldwide — prices, ratings, host info, amenities, GPS coordinates, and more. Search by city, region, or zip code, or pass in direct listing URLs for targeted extraction.
Why use Airbnb Scraper?
- No manual browsing — scrape hundreds of listings in minutes, not hours
- Structured JSON output — clean, analysis-ready data for spreadsheets, databases, or AI pipelines
- Dual input mode — search by destination OR scrape specific listing URLs
- Rich host data — Superhost status, response rate, response time per listing
- MCP-compatible — works seamlessly with Claude, ChatGPT, and other AI agents via the Apify MCP server
What data can Airbnb Scraper extract?
| Field | Description | Example |
|---|---|---|
listing_id | Airbnb's unique listing ID | 12345678 |
listing_url | Direct URL to the listing | https://airbnb.com/rooms/12345678 |
name | Listing title | Cozy Downtown Loft with City Views |
description | Full listing description | Welcome to our beautiful... |
property_type | Home, room, hotel room, etc. | Entire home |
room_type | Airbnb room type category | entire_home |
price_per_night | Nightly price (numeric) | 120 |
price_currency | Currency code | USD |
original_price_per_night | Pre-discount price | 150 |
cleaning_fee | One-time cleaning charge | 45 |
total_price | Full stay total (when dates given) | 385 |
rating | Average guest rating (1–5) | 4.87 |
review_count | Number of reviews | 234 |
host_name | Host display name | Sarah |
host_id | Airbnb host ID | 9876543 |
is_superhost | Superhost status | true |
host_response_rate | % of messages responded to | 100% |
host_response_time | Typical response speed | within an hour |
city | City | New York |
state | State or region | NY |
country | Country | United States |
neighborhood | Neighborhood / district | Lower East Side |
latitude | GPS latitude | 40.7128 |
longitude | GPS longitude | -74.0060 |
bedrooms | Number of bedrooms | 2 |
beds | Number of beds | 3 |
bathrooms | Number of bathrooms | 1.5 |
max_guests | Max guest capacity | 4 |
amenities | List of amenities | ["WiFi", "Kitchen", "Pool"] |
thumbnail_url | Main listing photo URL | https://a0.muscache.com/... |
photos | All photo URLs (array) | [...] |
minimum_nights | Minimum stay required | 2 |
cancellation_policy | Cancellation policy name | Flexible |
check_in_time | Check-in time | 3:00 PM |
check_out_time | Check-out time | 11:00 AM |
is_available | Available for your dates | true |
scraped_at | ISO timestamp of scrape | 2026-04-09T12:00:00.000Z |
source_url | URL this record was scraped from | https://airbnb.com/s/... |
Tutorial: How to Use Airbnb Scraper
Method 1 — Search by Location (most common)
- Open the actor and fill in Location / Search Query (e.g.
Miami Beach, FL) - Optionally set check-in/check-out dates to get accurate pricing and availability
- Set Maximum Results (1–300 recommended per search)
- Click Start — results arrive in the Output tab within minutes
Method 2 — Scrape Specific Listings
- Copy the Airbnb listing URL(s) you want to scrape (e.g.
https://www.airbnb.com/rooms/12345678) - Paste them into Direct Listing URLs
- Leave Location / Search Query empty
- Click Start — each listing is scraped for full detail data
Using Filters
Narrow your results with optional filters:
- Check-in / Check-out dates — filters to available properties, gives accurate pricing
- Adults / Children / Pets — filters by guest capacity and pet-friendliness
- Min / Max Price — set a nightly rate budget range
- Minimum Bedrooms — filter by bedroom count
- Property Type — Entire home, Private room, or Hotel room only
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
locationQuery | string | — | City, region, or address to search (e.g. "Paris, France") |
startUrls | array | — | Direct Airbnb listing URLs to scrape |
checkIn | string | — | Check-in date (YYYY-MM-DD) |
checkOut | string | — | Check-out date (YYYY-MM-DD) |
adults | integer | 2 | Number of adult guests |
children | integer | 0 | Number of child guests |
pets | integer | 0 | Number of pets |
minPrice | integer | — | Minimum nightly price (USD) |
maxPrice | integer | — | Maximum nightly price (USD) |
minBedrooms | integer | — | Minimum bedroom count |
propertyType | string | all | entire_home, private_room, hotel_room, or empty for all |
maxResults | integer | 50 | Maximum number of listings to scrape |
proxyConfiguration | object | Residential | Proxy settings (residential recommended) |
Pricing
This actor uses pay-per-event pricing — you only pay for listings actually scraped. No subscription, no monthly fees.
| Volume | Cost |
|---|---|
| 100 listings | $0.20 |
| 500 listings | $1.00 |
| 1,000 listings | $2.00 |
| 10,000 listings | $20.00 |
All costs include compute, proxy, and storage — no surprises.
Code Examples
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('khadinakbar/airbnb-scraper').call({locationQuery: 'Miami Beach, FL',checkIn: '2026-06-01',checkOut: '2026-06-07',adults: 2,maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} listings`);console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('khadinakbar/airbnb-scraper').call(run_input={'locationQuery': 'Miami Beach, FL','checkIn': '2026-06-01','checkOut': '2026-06-07','adults': 2,'maxResults': 100,})items = list(client.dataset(run['defaultDatasetId']).iterate_items())print(f'Scraped {len(items)} listings')print(items[0])
Via API (cURL)
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~airbnb-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"locationQuery": "Miami Beach, FL","maxResults": 50}'
Use Cases
Real estate investment research — Compare nightly rates across neighborhoods to identify high-performing vacation rental markets. Export to Excel and calculate projected annual revenue.
Competitive pricing analysis — Property managers can benchmark their listing against comps in the same area, same bedroom count, same guest capacity.
Travel market research — Researchers and analysts can track pricing trends, seasonal availability, and Superhost density across destinations.
AI-powered travel assistants — With the Apify MCP server, Claude and other AI agents can call this scraper directly in response to queries like "find me pet-friendly 2-bedroom listings in Austin under $200/night."
Hospitality industry data — Track inventory levels, average ratings, and amenity trends across specific markets for hotel and property management companies.
Works Great With
- Apify Shopify Scraper — For e-commerce data alongside your rental research
- Apify Dataset → Google Sheets integration — Export results directly to spreadsheets
- Apify Scheduler — Run weekly to track price trends over time
FAQ
How many results can I get per search? Airbnb typically surfaces up to 300 results per search query. To get more, run multiple searches with different filters (price ranges, neighborhoods, etc.).
Does this require Airbnb login? No — this actor scrapes publicly available listing data. No Airbnb account or credentials required.
How accurate are the prices? Prices are most accurate when you provide check-in/check-out dates. Without dates, you'll see the base nightly rate but not cleaning fees or total stay costs.
Why did I get fewer results than expected? Airbnb may return fewer listings than requested if there aren't enough listings matching your filters. Try broadening your search (remove price filters, reduce guest count, expand the location).
Can I scrape reviews? The current version extracts the rating score and review count. Detailed individual reviews are not included in this version.
What proxy do I need? The actor uses Apify's residential proxy pool by default, which works well for Airbnb. Datacenter proxies may be blocked — residential is recommended.
Legal Disclaimer
This actor is intended for lawful data collection from publicly available information on Airbnb. Users are responsible for compliance with applicable laws, Airbnb's Terms of Service, and data protection regulations (GDPR, CCPA, etc.). The author does not condone unauthorized data collection or any use that violates platform terms. Always use scraped data responsibly.
Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.