Airbnb Scraper — Listings, Prices, Reviews & Calendars
Pricing
from $3.00 / 1,000 listings
Airbnb Scraper — Listings, Prices, Reviews & Calendars
Scrape Airbnb listings by location or search URL: prices for your dates, ratings, rooms, coordinates, hosts, amenities and house rules, plus guest reviews and availability calendars.
Pricing
from $3.00 / 1,000 listings
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape Airbnb the way a guest sees it: search any location (or paste any Airbnb search URL) and get every listing with its price for your dates, rating, rooms, coordinates and badges. Turn on details for the full listing page (description, amenities, house rules, check-in/out times, host profile, sub-ratings, license number), or switch the mode to collect guest reviews or availability calendars. No login, no browser, no cookies needed.
What you can do with it
- Compare prices of a city or neighborhood for specific dates (short-term rental market research, pricing tools).
- Build lead lists of hosts and Superhosts, or track competitors' listings.
- Analyse guest reviews (sentiment, host responses, languages) for any listing.
- Track occupancy: day-by-day availability and minimum-night rules for up to 12 months.
- Run it on a schedule and get only new or changed listings, reviews or calendars.
What data does it extract?
Listings (mode: listings) — one item per listing from your searches:
| Field | Example |
|---|---|
id, url | 32422325, https://www.airbnb.com/rooms/32422325 |
name, title, subtitle | Brand new apartment right in the heart of Alfama., Apartment in Santa Maria Maior |
propertyType, neighborhood | Apartment, Santa Maria Maior |
latitude, longitude | 38.71167, -9.12559 (approximate, as Airbnb shows it) |
currency, checkIn, checkOut, nights | USD, 2026-11-12, 2026-11-15, 3 |
pricePerNight, priceTotal, originalPriceTotal | 124.36, 374, 443 (struck-through price) |
priceLabel, priceDetails | $374 for 3 nights, originally $443, the price breakdown lines |
rating, reviewCount, isNew | 4.82, 481, false |
bedrooms, beds, bathrooms, roomInfo | 1, 2, 1, ["1 bedroom", "2 beds", "1 bath"] |
isSuperhost, isGuestFavorite, badges | false, true, ["Guest favorite"] |
freeCancellation, highlights | true, ["Pay $0 today", "Free cancellation"] |
thumbnail, photos | photo URLs |
searchQuery, position | the search the listing came from and its rank |
With details (includeDetails: true, and always for listing URLs / ids) each listing also has:
description, summary ("Entire rental unit in Lisbon, Portugal"), roomType ("Entire home/apt"), guests,
amenities, amenityGroups, amenitiesNotIncluded, houseRules, checkInTime, checkOutTime, additionalRules,
safetyAndProperty, sleepingArrangements, ratingDetails (cleanliness, accuracy, check-in, communication,
location, value), listingHighlights, licenseNumber, hostId, hostName, host (Superhost, verified, rating,
reviews, years hosting, response rate and time, about, profile URL), coHosts, all photos; with dates also
available, instantBook and cancellationPolicy ("Free cancellation before November 15").
Reviews (mode: reviews): listingId, reviewId, rating, text, language, createdAt, localizedDate,
stayDetails ("Stayed about a week"), reviewerName (first name as shown), reviewerLocation (or
reviewerTenure such as "4 years on Airbnb" when no location is shown), reviewerProfileUrl, hostResponse, hostResponseDate, hostName, translatedText (Airbnb's English
translation of reviews in other languages), photos.
Calendars (mode: calendar): id, name, from, to, availableDays, unavailableDays,
firstAvailableDate, unavailableDates and days[] with date, available, availableForCheckin,
availableForCheckout, minNights, maxNights.
How to scrape Airbnb listings
- Add one or more Locations ("Lisbon, Portugal", "Brooklyn, NY") or paste Airbnb URLs — search pages with any filters, map area or category, or listing pages.
- Set check-in / check-out dates and guests to get the exact price of that stay. Without dates Airbnb quotes a
sample stay (see
stayDates). - Optional filters: price per night, type of place, bedrooms / beds / bathrooms, amenities, Superhost, Instant Book, Guest favorite, currency.
- Run. Export to JSON, CSV, Excel or use the API.
{"mode": "listings","locations": ["Lisbon, Portugal"],"checkIn": "2026-11-12","checkOut": "2026-11-15","adults": 2,"roomType": "entire","priceMax": 200,"maxItems": 500}
Output (shortened):
{"type": "listing","id": "32422325","url": "https://www.airbnb.com/rooms/32422325","name": "Brand new apartment right in the heart of Alfama.","title": "Apartment in Santa Maria Maior","latitude": 38.71167,"longitude": -9.12559,"currency": "USD","checkIn": "2026-11-12","checkOut": "2026-11-15","nights": 3,"pricePerNight": 124.36,"priceTotal": 374,"originalPriceTotal": 443,"priceLabel": "$374 for 3 nights, originally $443","rating": 4.82,"reviewCount": 481,"bedrooms": 1,"beds": 2,"bathrooms": 1,"isSuperhost": false,"isGuestFavorite": true,"freeCancellation": true,"position": 4}
With "includeDetails": true (shortened):
{"name": "Casa Priorado/Pistachio Green Apartment","available": true,"instantBook": false,"cancellationPolicy": "Free cancellation before November 15","guests": 2,"roomType": "Entire home/apt","propertyType": "Entire rental unit","checkInTime": "3:00 PM - 12:00 AM","checkOutTime": "11:00 AM","licenseNumber": "159944/AL","hostName": "Casa Priorado","host": { "id": "595519769", "isSuperhost": true, "rating": 4.95, "reviewCount": 230, "yearsHosting": 1,"responseRate": "100%", "responseTime": "Responds within an hour" },"amenities": ["City skyline view", "Hair dryer", "Wifi", "Kitchen", "..."],"houseRules": ["Check-in: 3:00 PM - 12:00 AM", "Checkout before 11:00 AM", "2 guests maximum", "..."],"ratingDetails": { "cleanliness": 4.95, "accuracy": 4.94, "checkin": 4.97, "communication": 4.98,"location": 4.79, "value": 4.89 }}
How many listings can I get per search?
Airbnb's result list for one search ends after roughly 300-360 listings, however many places the search has. When a
search has more, the scraper automatically splits it into nightly price bands (Airbnb's own price filter) and reads
each band, so one location returns thousands of listings: a test run collected 1,500 unique Lisbon listings for
fixed dates in 2.5 minutes. Set maxItems to what you need; you only pay for listings saved.
How to scrape Airbnb reviews
Set mode to reviews and add listing URLs / ids (or locations: the top maxListingsPerSearch listings of each
search are used). Reviews come 50 per request, newest first by default (or most relevant / highest / lowest rated).
reviewsNewerThan ("7 days", "2026-09-01") stops paging once a whole page is older.
{ "mode": "reviews", "startUrls": [{ "url": "https://www.airbnb.com/rooms/31820112" }], "maxReviewsPerListing": 200 }
{"type": "review","listingId": "3777540","reviewId": "1778101155240201234","rating": 1,"text": "Escadas muito sujas lugar muito sujo porta da entrada não trava qualquer um\nPode entrar","translatedText": "Very dirty stairs, very dirty place, entrance door doesn't lock, anyone can get in.\nYou can come in.","language": "pt","createdAt": "2026-09-19T07:29:35Z","stayDetails": "Stayed one night","reviewerName": "Ryan","reviewerTenure": "4 years on Airbnb","hostName": "Tin","hostResponse": "This is a residential building located in a safe residential area, ...","hostResponseDate": "2 weeks ago"}
How to get Airbnb availability calendars
Set mode to calendar. Each listing gives one item with up to 12 months of days (from today): available or not,
whether check-in / check-out is allowed that day, and the minimum / maximum nights. Airbnb no longer shows nightly
prices in the calendar; for prices of specific dates use listings mode with check-in / check-out.
Monitor changes on a schedule
Turn on Only new or changed items and save the input as a task with a Schedule (Apify Console → Schedules). Each
run remembers what earlier runs returned and outputs only listings that are new or whose total price for your dates,
struck-through price or availability changed (changeType: "new" or "changed", with the old values in
previousValues); in reviews mode only reviews not seen before; in calendar mode only listings whose availability
changed on a day both runs cover (newlyUnavailableDates, newlyAvailableDates). Unchanged items are not saved and
not charged. Use fixed dates, and a search whose results fit in maxItems (narrow it with filters or a map area):
Airbnb reorders large result lists between visits, so on a broad search listings at the edge of the window can show
up as new. Use monitoringKey to keep several schedules on the same search apart.
Does it work without login?
Yes. It reads the same public data a logged-out visitor sees, through Airbnb's own web API. No account, cookies or browser are needed, and nothing behind a login is collected.
Pricing
Pay per result, platform usage included in your Apify plan:
| Item | Price |
|---|---|
| Listing from search results | $0.003 |
| Listing with details (details on, or listing URL / id input) | $0.0045 |
| Review | $0.0035 |
| Availability calendar (one listing, up to 12 months) | $0.002 |
Platform usage is small: about $0.007 per 1,000 search listings (1,500 listings: $0.0097, 67 requests).
Proxy note: the default Apify datacenter proxy works for Airbnb; no residential or Unblocker proxy is needed.
Prices follow the currency you set (default USD); amounts converted from the host's currency can move by a few
cents from day to day.
Is it legal to scrape Airbnb?
This actor collects publicly visible data only (listing pages, public reviews with the first name Airbnb shows, public host profile summaries) and nothing behind a login. Respect Airbnb's terms, privacy law (GDPR, CCPA) and the rights of hosts and guests when you store or use the data; do not use it to contact or profile private individuals.