Airbnb Scraper: Whole-City Listings, Prices, Hosts & Reviews
Pricing
from $0.80 / 1,000 listings
Airbnb Scraper: Whole-City Listings, Prices, Hosts & Reviews
Get every Airbnb listing in a city or from listing links: price per night, rating, reviews, guests, bedrooms, host and Superhost status. Add details, availability calendar and reviews.
Pricing
from $0.80 / 1,000 listings
Rating
0.0
(0)
Developer
Stratum ICS
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Airbnb Scraper do?
Airbnb Scraper extracts Airbnb listings for any city, region or neighborhood, or from listing links: price per night, total price for your dates, rating, number of reviews, guests, bedrooms, beds, bathrooms, property and room type, host name and Superhost status, Guest favorite badge, location and photos. Add the listing details (description, amenities, house rules, check-in times, cancellation policy, rating breakdown, host response rate), the availability calendar and the reviews when you need them.
It reads the whole city, not just the first few hundred results: an Airbnb search stops at about 280 listings, so the scraper splits the map into small areas until every listing is covered. A run for Austin, TX saved 7,989 listings inside the city outline Airbnb draws. Use it from the Apify Console, through the Apify API as an Airbnb API alternative, or from any AI agent connected to Apify.
Why use this Airbnb scraper?
- Every listing in a city. The map is split until each area fits on one Airbnb results page, so nothing is skipped. For Austin, the 767 map areas read returned 8,690 different listings where Airbnb's own counts for those areas add up to 8,499; 7,989 of them are inside Austin's outline (the rest are kept out unless you turn the boundary off).
- Prices for your dates. With check-in and check-out you get the total for the stay with fees, the price before a discount, the nightly rate and each fee line. Without dates you get every listing and its nightly rate.
- Host and size on every row. Guests, bedrooms, beds, host name, host profile and Superhost status come with every listing at the base price, not as an extra.
- Details, calendar and reviews on demand. Description, every amenity, house rules, check-in and check-out times, cancellation policy, sleeping arrangements, rating per category and host response rate and time; availability and minimum nights for the next 12 months; reviews with dates, reviewer and host replies.
- Any listing link. Paste links from any Airbnb country site (airbnb.com, airbnb.co.uk, airbnb.de...) or bare listing ids.
- Filters like on Airbnb. Guests, price per night, type of place, minimum bedrooms, beds and bathrooms, currency and language.
- Fast and light. Plain HTTP requests and no browser: a town of 1,100 listings takes about 3 minutes, and all of Austin about 15.
Typical uses: short-term rental investment research (supply, prices and occupancy by neighborhood), revenue management and competitor price tracking for property managers, market reports for analysts, finding Superhosts and multi-listing hosts, and monitoring availability with the calendar.
What data can you extract from Airbnb?
| Field | Example |
|---|---|
title, url, id | 18th Floor Studio Suite Downtown Luxury High Rise · listing link |
propertyType, roomType | Apartment · Entire home/apt |
city, neighborhood, country, lat, lng | Austin · Downtown Austin · United States · 30.25737 · -97.73919 |
rating, reviewsCount | 4.93 · 152 |
pricePerNight, totalPrice, totalPriceBeforeDiscount | 183.67 · 551 · 921 (USD, Nov 20 to 23) |
priceBreakdown | 3 nights x $183.67, cleaning and resort fees, discounts |
guests, bedrooms, beds, bathrooms | 2 · 1 · 1 · 1 |
hostName, hostId, hostUrl, isSuperhost | Alex · profile id · profile link · true |
isGuestFavorite, badges, photos | true · Guest favorite · first 10 photo links |
description, amenities, houseRules | with listing details |
checkInTime, checkOutTime, cancellationPolicy | 4:00 PM - 10:00 PM · 11:00 AM · refund steps (with trip dates) |
categoryRatings | accuracy, check-in, cleanliness, communication, location, value |
hostResponseRate, hostResponseTime, hostYearsHosting | 100 · Responds within an hour · 13 |
availableDays30, availableDays90, calendar | 8 · 57 · one entry per day with minimum nights |
reviews | text, rating, date, reviewer, host reply |
Each run also saves a free summary of every search (area read, map areas, Airbnb's counts, listings found and saved) in the SUMMARY record of the run's key-value store.
How to scrape Airbnb
- Open the Input tab and enter one or more locations as you would on Airbnb, for example
Austin, TXorLisbon. Or paste listing links. - Set Max listings per location. This also caps what you pay; set a high number to read the whole place.
- Optionally add check-in and check-out dates, guests and filters (price per night, type of place, minimum bedrooms).
- Turn on listing details, the availability calendar or reviews per listing if you need them.
- Click Start. Listings appear in the Output tab as they are found.
- Download the results as CSV, Excel, JSON or HTML, or send them to Google Sheets, Zapier, Make or n8n.
How much does it cost to scrape Airbnb?
You pay per listing saved, plus the extras you turn on:
| Event | Price |
|---|---|
| Listing saved (all fields of the first table rows) | $0.0015 ($1.50 per 1,000) |
| Listing details | $0.0005 ($0.50 per 1,000) |
| Availability calendar (12 months) | $0.0005 ($0.50 per 1,000) |
| Review | $0.0005 ($0.50 per 1,000) |
| Search summary, listings outside the boundary | Free |
1,000 listings cost $1.50. The whole of Austin (7,989 listings) costs about $12, or about $20 with details and calendars. Adding the 20 newest reviews to 500 listings costs 500 x $0.0015 + 10,000 x $0.0005 = $5.75. Apify's free plan includes $5 of monthly credit, enough for more than 3,000 listings.
Larger Apify plans pay less automatically: listings cost $1.20 per 1,000 on Starter, $1.00 on Scale and $0.80 on Business, and details and calendars $0.40, $0.30 and $0.15. Each run also has a small start fee.
Input
See the Input tab for every option. A whole-city search for a weekend:
{"locations": ["Austin, TX"],"maxListings": 100000,"checkIn": "2026-11-20","checkOut": "2026-11-23","adults": 2,"roomType": "entire","currency": "USD"}
Listing links with everything:
{"listingUrls": ["https://www.airbnb.com/rooms/23860926", "https://www.airbnb.co.uk/rooms/5819674"],"checkIn": "2026-12-11","checkOut": "2026-12-14","includeDetails": true,"includeCalendar": true,"maxReviewsPerListing": 50}
- Locations: a city, region, neighborhood or district. The scraper uses the outline Airbnb draws for the place; turn off Only listings inside the place's boundary to keep the surroundings too.
- Dates: with dates, only listings free on those dates are returned, with their total price. Without dates every listing is returned with a nightly rate for dates Airbnb picks (shown in
priceCheckInandpriceCheckOut). - Currency and language: prices come in the currency you choose; Airbnb's labels follow the language, while titles and descriptions stay as the host wrote them.
Output
You can download the dataset in various formats such as JSON, HTML, CSV or Excel. A listing from a dated search (photos trimmed to two):
{"id": "925896424191418887","url": "https://www.airbnb.com/rooms/925896424191418887","title": "18th Floor Studio Suite Downtown Luxury High Rise","propertyType": "Apartment","roomType": "Entire home/apt","city": "Austin","neighborhood": "Downtown Austin","country": "United States","lat": 30.25737,"lng": -97.73919,"rating": 4.93,"reviewsCount": 152,"isNew": false,"pricePerNight": 183.67,"totalPrice": 551,"totalPriceBeforeDiscount": 921,"priceBreakdown": [{ "label": "3 nights x $183.67", "amount": 551 }],"currency": "USD","priceCheckIn": "2026-11-20","priceCheckOut": "2026-11-23","guests": 2,"bedrooms": 1,"beds": 1,"bathrooms": 1,"hostId": "1462667116177391509","hostName": "Alex","hostUrl": "https://www.airbnb.com/users/profile/1462667116177391509","isSuperhost": true,"isGuestFavorite": true,"photos": ["https://a0.muscache.com/im/pictures/miso/Hosting-925896424191418887/original/82b31f90-51ed-4069-8a27-4b4e4f7a957c.jpeg","https://a0.muscache.com/im/pictures/miso/Hosting-925896424191418887/original/7b3da2a5-177f-4093-86e5-a1e432cf4dc9.jpeg"],"badges": ["Guest favorite"],"searchLocation": "Austin, TX","scrapedAt": "2026-10-18T04:20:37.694Z"}
The extra fields of a listing with details and calendar (Lisbon, priced in euros; long lists trimmed):
{"title": "Beautiful apartment in Bairro Alto -Quiet","neighborhood": "Misericórdia","totalPrice": 250,"totalPriceBeforeDiscount": 299,"priceBreakdown": [{ "label": "3 nights x €99.55", "amount": 298.65 },{ "label": "Early booking discount", "amount": -49.5 },{ "label": "Price after discount", "amount": 249.15 }],"currency": "EUR","amenities": ["Bathtub", "Hair dryer", "Cleaning products", "Shampoo", "Body soap"],"houseRules": ["Check-in: 4:00 PM - 10:00 PM","Checkout before 11:00 AM","Self check-in with lockbox","2 guests maximum","No pets"],"checkInTime": "4:00 PM - 10:00 PM","checkOutTime": "11:00 AM","cancellationPolicy": {"summary": "Free cancellation for 24 hours. After that, the reservation is non-refundable.","milestones": [{"refund": "Full refund","when": "Within 24 hours after booking","terms": "Get back 100% of what you paid."},{ "refund": "No refund", "when": "After Oct 19 5:46 AM", "terms": "This reservation is non-refundable." }]},"sleepingArrangements": [{ "room": "Bedroom", "beds": "1 double bed" }],"categoryRatings": {"accuracy": 4.83,"checkIn": 4.88,"cleanliness": 4.74,"communication": 4.87,"location": 4.87,"value": 4.7},"photoCount": 45,"hostIsVerified": true,"hostResponseRate": 100,"hostResponseTime": "Responds within an hour","hostYearsHosting": 13,"hostRating": 4.82,"hostReviewsCount": 2602,"availableDays30": 8,"availableDays90": 57,"availableDaysInCalendar": 315,"calendar": [{"date": "2026-10-18","available": false,"minNights": 2,"maxNights": 360,"availableForCheckIn": false,"availableForCheckOut": false}]}
Tips for better results
- Read a whole market with a high Max listings per location. Results arrive as the map is read, and the search summary shows how complete the run was.
- Compare prices fairly with fixed dates and guests: Airbnb then prices every listing for the same stay.
- Occupancy research: turn on the calendar and look at
availableDays30andavailableDays90, or open the Calendar view for one row per day. - Reviews for analysis: the Reviews view in the Output tab and in exports gives one row per review next to its listing.
- Large runs with details read three or four pages per listing; for tens of thousands of listings, raise the run timeout in the run options.
- The datacenter proxy is on by default. In our tests Airbnb answered both the proxy and a direct connection (proxy off) without refusing requests, and direct runs were faster. If Airbnb ever refuses the proxy, the scraper switches to a direct connection on its own.
Integrations and API
- API: start runs and download results from any language. The API tab has ready code in Python, JavaScript and cURL.
- Python:
from apify_client import ApifyClient, thenclient.actor("stratumics/airbnb-scraper").call(run_input={"locations": ["Austin, TX"], "maxListings": 500}). - JavaScript:
import { ApifyClient } from 'apify-client', thenclient.actor('stratumics/airbnb-scraper').call({ locations: ['Austin, TX'], maxListings: 500 }). - No-code: Zapier, Make, n8n, Google Sheets and Slack from the Integrations tab, for example to append each weekly price check to a sheet.
- AI agents: connect any MCP-capable assistant to Apify's MCP server (
mcp.apify.com) and it can call this scraper as a tool to look up listings and prices.
FAQ
Is it legal to scrape Airbnb?
This scraper reads what Airbnb shows to every visitor without logging in. Listings include some personal data: host first names, host and reviewer profile links and pictures, and reviewers' first names with their reviews. Personal data is protected by the GDPR in the European Union and by other laws around the world, so only collect it when you have a legitimate reason, and consult a lawyer if you are unsure. Also consider Airbnb's Terms of Service for your use case.
How many listings can I get from one search?
All the listings Airbnb has in the place. Airbnb itself shows at most about 280 per search and counts beyond 1,000 only as "Over 1,000". The scraper divides the map until every area holds at most 40 listings, reads each area on one results page, and checks the result against Airbnb's own count for each area.
Why do prices without dates show different dates for each listing?
Without dates Airbnb prices each listing for dates it picks (often the next free week that meets the minimum stay). The nightly rate is comparable; the total is not, so it is left empty. Give check-in and check-out dates to price every listing for the same stay.
Why is the location approximate?
Airbnb shows an approximate location for most homes to protect hosts' privacy, and the scraper gives the coordinates Airbnb shows.
Why are some fields empty?
bathrooms comes from the search card when Airbnb shows it there and is always filled with listing details. rating stays empty until a listing has three reviews, as on Airbnb. cancellationPolicy needs trip dates, because Airbnb states it only for a stay.
Does it need an Airbnb account or cookies?
No. It reads Airbnb as a logged-out visitor, with no account, login or cookies.
Found a problem or need a field?
Open an issue in the Issues tab with the input you used, and we will look at it.
Other tools from Stratum ICS
- App Store Reviews Scraper: Get Apple App Store reviews with star ratings, titles, text, app versions, helpful votes and developer replies, well past Apple's 500-review limit, for any country, plus app ratings.
- Bilibili Scraper: Scrape Bilibili videos by search, link or uploader without logging in: views, likes, coins, tags, uploader profiles, comments with replies and danmaku, in clean rows.
- Facebook Ads Library Scraper: Get ads from the Meta (Facebook) Ad Library by keyword, advertiser page or library link: texts, images, videos, dates, platforms and versions, plus spend for political ads.
- Facebook Posts Scraper: Get posts from public Facebook pages: text, reactions by type, comments, shares, views and media, plus page details with followers, contacts, rating and creation date.
- Google Ads Transparency Scraper: Get the ads any advertiser runs on Google Search, YouTube, Shopping, Maps and Play, from the Ads Transparency Center: images, formats, dates, regions and EU reach.
- Google Maps Reviews Scraper: Get the Google Maps reviews of any place: rating, full text, exact date, photos, owner reply, reviewer details and food or service scores.
- Google Maps Scraper: Get the businesses on Google Maps for any search and area: name, address, phone, website, rating, review count, opening hours, plus emails and social profiles.
- Google News Scraper: Get Google News articles with real publisher URLs (not Google redirects), source, date, image, author and optional full text.
- Google Play Reviews Scraper: Get Google Play reviews with star ratings, text, app versions, thumbs-up counts, developer replies and feature ratings in any language, plus app details with installs and star histogram.
- Google Trends Scraper: Get Google Trends data as JSON, CSV or Excel: interest over time, interest by region and city, related queries, and trending searches by country.
- Instagram Scraper: Scrape public Instagram profiles, posts, reels and comments without logging in: followers, bio, posts count, captions, likes, video views, media links, tags and music.
- LinkedIn Jobs Scraper: Scrape LinkedIn jobs with full descriptions, salary ranges, seniority, job type and applicant counts.
- Reddit Scraper: Get Reddit posts and full comment threads from subreddits, searches, user profiles and post links: titles, text, scores, flair, media and replies.
- Telegram Channel Scraper: Get messages from public Telegram channels with views, dates, media, reactions, polls and forwards, plus channel info with exact subscriber counts.
- Threads Scraper: Scrape Threads profiles, posts, replies and keyword search: followers, bio, post text, likes, replies, reposts, quotes, media and links.
- TikTok Comments Scraper: Export TikTok comments and replies from any video or photo post: text, date, likes, reply count, commenter, pinned and creator-liked flags, plus video stats.
- TikTok Scraper: Scrape TikTok profiles and videos: followers, likes, bio, the latest 10 to 12 videos of each profile, and full stats for any video link.
- Website Contact Scraper: Turn a list of websites into one row per company with verified emails, formatted phone numbers, social profiles (LinkedIn, Facebook, Instagram, X), address and contact page.
- YouTube Scraper: Get YouTube videos from searches, channels, playlists and links with exact views, likes, comment counts, dates and tags, plus channel profiles and comments.
- YouTube Transcript Scraper: Get YouTube transcripts and captions as plain text, timed segments, SRT or WebVTT, from video links, whole channels or playlists, in any language YouTube offers.