Airbnb Scraper — Vacation Rental Prices & Availability
Pricing
Pay per usage
Airbnb Scraper — Vacation Rental Prices & Availability
Scrape Airbnb listings for any city and dates: nightly rate and total stay price, availability, rating and review count, property type, beds, amenities, host and coordinates. Short-term rental data for occupancy and pricing research, without a login or an API key.
Pricing
Pay per usage
Rating
5.0
(1)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Airbnb Scraper extracts Airbnb listings for any place and dates: the price for the stay and per night in the currency you choose, rating and review count, property type and area, coordinates, bedrooms and beds, Guest favorite and Superhost badges, and photos. Switch on details and every listing also comes with its description, the full amenities list by group, the host and Superhost status, guest capacity, bathrooms, review tags and whether the exact location is shown. It reads the data Airbnb renders into its own pages, so there is no browser, no proxy and no login — a search of sixty listings takes a few seconds and costs a fraction of a cent in platform usage.

Give it a place the way you would type it into Airbnb, a check-in and check-out date and the party size, or paste Airbnb search URLs with your own filters, or listing URLs to open in full. Export as JSON, CSV or Excel, run it on a schedule, or call it from the API and AI agents.
What is Airbnb Scraper?
It is an Airbnb data scraper for people who need listing prices and availability as a table rather than a screen: hosts and property managers comparing their rates with the street, analysts sizing a short-term rental market, travel apps, and anyone building a price watch for a destination. It answers "what does a two-bedroom in Canggu cost that week", "which villas in Ubud are Guest favorites under $80 a night" and "what amenities does this listing actually have".
What data can Airbnb Scraper extract?
| Field | Example |
|---|---|
name, propertyType, area | Hidden Point Villa "WOODEN HOUSE" · Villa · Ubud |
priceTotal, pricePerNight, currency, nights | 159 · 53 · USD · 3 |
priceOriginal | 210 — the struck-through price when a discount is shown |
rating, reviewCount | 4.97 · 346 |
badges, isGuestFavorite | ["Guest favorite"] · true |
bedInfo | ["1 bedroom", "1 queen bed", "1 bath"] |
highlights | ["Free cancellation", "Book early to save"] |
latitude, longitude | -8.5069 · 115.2625 (approximate, as Airbnb shows before booking) |
images | photo URLs |
checkIn, checkOut, adults | the dates and party the price was quoted for |
url, listingId, position, page, place | link, id, order collected, page, how Airbnb understood the place |
With Open every listing page switched on:
| Field | Example |
|---|---|
description | Full text, HTML removed |
amenities, amenityGroups | 45 items, grouped as Bathroom, Bedroom and laundry, Entertainment… |
hostName, isSuperhost, hostingSince | I Wayan · true · 8 months hosting |
personCapacity, bedrooms, beds, bathrooms | 2 · 1 · 1 · 1 |
roomType, propertyTypeDetail, overviewTitle | Entire home/apt · Entire villa · Entire villa in Ubud, Indonesia |
ratingAverage, ratingCount, reviewTags | 4.97 · 346 · Pool 133, Hospitality 300, Breakfast 149 |
sleepingArrangements, highlightsDetail | ["1 queen bed"] · ["Outdoor entertainment"] |
locationText, isExactLocation | Ubud, Bali, Indonesia · false |
How much does it cost to scrape Airbnb?
Until 22 September 2026 this Actor still bills on Apify platform usage, not on the prices below. The per-event pricing on this page takes effect on 22 September 2026; the Pricing tab shows whichever model is active today. Runs before that date are charged as compute and proxy usage, which for a small test is a few cents.
Pricing is pay per listing: you are charged per listing returned, and a little more per listing opened in full. There is no browser and no proxy in this Actor, so platform usage is close to zero — a search page is one plain request and a listing page one more. See the Pricing tab for the current rates.
How to scrape Airbnb listings
- Type the place into 📍 Where —
Ubud, Bali,Lisbon, Portugal,Brooklyn, NY. Several places, one per line, run in one go. - Set 📅 Check-in and 📅 Check-out. Airbnb quotes a price only for a date range; without dates the Actor searches a stay one month out and says so in the log.
- Set 👥 Adults to the real party size — prices change with occupancy.
- Choose 💯 Maximum listings and 💱 Currency.
- Switch on 🔎 Open every listing page if you need amenities, description and host.
- Click Start, then export from the Output tab or read the dataset through the API.
To use Airbnb's own filters, run the search on airbnb.com, copy the URL from the address bar and paste it into 🔗 Airbnb URLs — every filter in that URL is honoured. Listing URLs pasted there are always opened in full.
⬇️ Input
{"locationQueries": ["Ubud, Bali, Indonesia"],"checkIn": "2026-10-12","checkOut": "2026-10-15","adults": 2,"currency": "USD","maxListings": 60,"includeDetails": false}
Filtered search from an Airbnb URL
{"startUrls": ["https://www.airbnb.com/s/Canggu--Bali--Indonesia/homes?checkin=2026-11-03&checkout=2026-11-06&adults=2&min_bedrooms=2&price_max=150"],"maxListings": 100}
One listing in full
{"startUrls": ["https://www.airbnb.com/rooms/1591176990185841592"],"checkIn": "2026-10-12","checkOut": "2026-10-15"}
⬆️ Output
{"type": "listing","listingId": "30279779","url": "https://www.airbnb.com/rooms/30279779","name": "Hidden Point Villa \"WOODEN HOUSE\"","propertyType": "Villa","area": "Ubud","latitude": -8.5069,"longitude": 115.2625,"priceTotal": 159,"priceOriginal": null,"pricePerNight": 53,"priceText": "$159","priceQualifier": "for 3 nights","currency": "USD","nights": 3,"rating": 4.97,"reviewCount": 346,"badges": ["Guest favorite"],"isGuestFavorite": true,"bedInfo": ["1 bedroom", "1 queen bed", "1 bath"],"highlights": ["Free cancellation"],"images": ["https://a0.muscache.com/im/pictures/…"],"query": "Ubud, Bali, Indonesia","place": "Ubud, Indonesia","checkIn": "2026-10-12","checkOut": "2026-10-15","adults": 2,"position": 1,"page": 1,"scrapedAt": "2026-09-03T14:00:00.000Z"}
With details on, the same row also carries description, amenities, amenityGroups, hostName, isSuperhost, hostingSince, personCapacity, bedrooms, beds, bathrooms, roomType, ratingAverage, ratingCount, reviewTags, sleepingArrangements, locationText and isExactLocation. A page that could not be read arrives as a type: "error" row with the URL and the reason, never as a silently missing listing.
Use cases for Airbnb data
Pricing your own place
Pull every comparable listing in your area for the same dates and see where your nightly rate sits, which badges the competition carries, and what they offer that you do not.
Sizing a short-term rental market
Count listings, property types, ratings and prices for a town before buying or managing there. Run it monthly and keep the history.
Watching prices for a trip
Schedule the same search weekly and watch pricePerNight move for the dates you want.
Travel and property products
Feed listings, coordinates and prices into a map, a comparison page or a recommendation model without maintaining a scraper of your own.
AI agents
An agent asked "find me a villa in Ubud with a pool under $80" can call this Actor with the place, dates and a price cap, and filter on amenities.
Integrations and Airbnb API
Run it from the Apify API, the JavaScript and Python clients, a schedule, or a webhook, and push the dataset to Google Sheets, Slack or a database through n8n, Make or Zapier. Airbnb has no public API for this data; the Actor is the practical substitute.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/airbnb-scraper).
Purpose: returns Airbnb listings for a place and a date range, priced for that stay, with rating, location, beds and badges — and, on request, the description, amenities, host and capacity of each listing. Use it to answer "what does a stay in X cost on these dates", "which listings in X have a pool and a 4.9+ rating" and "what does this listing offer".
Minimal input:
{ "locationQueries": ["Ubud, Bali, Indonesia"], "checkIn": "2026-10-12", "checkOut": "2026-10-15", "adults": 2 }
Output: one row per listing — listingId, url, name, propertyType, area, latitude, longitude, priceTotal, pricePerNight, priceOriginal, currency, nights, rating, reviewCount, badges, isGuestFavorite, bedInfo, highlights, images, place, checkIn, checkOut, adults, position, page, scrapedAt. With includeDetails: true also description, amenities, amenityGroups, hostName, isSuperhost, personCapacity, bedrooms, beds, bathrooms, roomType, ratingAverage, ratingCount, reviewTags, locationText, isExactLocation. Unreadable pages come back as type: "error".
Behaviors an agent should know:
- Prices exist only for a date range. Pass
checkInandcheckOut; without them the Actor picks a stay one month out and logs it.priceTotalis for the whole stay,pricePerNightis derived from it. adultschanges the price. Pass the real party size.maxListings(default 60) caps the run; Airbnb serves 18 per page and rarely more than about 270 per search, so ask for a narrower place rather than a bigger number.includeDetailscosts one request per listing and is the only way to get amenities, description and host. Leave it off for price comparisons.- Airbnb's own filters (
price_max,min_bedrooms,room_types[]…) work throughstartUrls: paste a filtered search URL.priceMin,priceMax,minBedrooms,minBeds,minBathroomsandroomTypescover the common ones directly. - Coordinates are approximate until booking;
isExactLocationsays whether Airbnb shows the exact spot. ratingandreviewCountare empty for new listings without reviews — not zero.- No proxy is used by default because none is needed; a run that meets a challenge page reports it as an
errorrow rather than returning partial silence.
Short-term rental data: nightly rates, availability and occupancy
Every listing comes back with the nightly rate and the total price for the dates you asked about, so the same run answers what a place costs and whether it is free. Run a city on a schedule and the results stack into an availability history — the raw material for occupancy and pricing research on a market, without paying for a short-term rental analytics subscription.
Rental prices by city, in one table
Give it several places at once and every row carries its own location, dates, currency, property type and bed count. That is a like-for-like comparison of holiday rental prices across cities, which is the question most people are actually asking when they open Airbnb with a spreadsheet next to them.
❓ FAQ
Is it legal to scrape Airbnb?
The Actor reads public listing pages and returns the information any visitor sees: prices, ratings, descriptions and amenities. It does not log in, does not collect guest data and does not bypass any access control. How you use the data is subject to your local law and Airbnb's terms — consult a lawyer for commercial use at scale.
Why does a listing show a different price on Airbnb?
Prices depend on dates, party size and currency. The Actor quotes the price for exactly the checkIn, checkOut, adults and currency you set; change any of them and the number changes on Airbnb too. Taxes and fees are as Airbnb displays them in the total.
Can I get more than 270 listings for a place?
Airbnb itself caps a search at roughly fifteen pages. Split a large city into neighbourhoods, or run several date ranges, and the Actor de-duplicates by listing id.
Do I need a proxy?
No. Airbnb serves search and listing pages to plain requests from Apify's servers. The proxy field exists for the day that changes.
Can I use it with the Apify API or an MCP server?
Yes. It runs from the API and the official clients, and AI agents reach it through the Apify MCP server without extra setup.
Does it return guest reviews?
Not the review texts — this Actor returns rating, review count and the review tags Airbnb summarises. Review scraping is a different, heavier job.
Your feedback
Found a place it mis-reads or a field that is empty when it should not be? Open an issue on the Issues tab — every one gets answered.
You might also like
| Actor | What it does |
|---|---|
| Trip.com Scraper | Hotel prices and availability for a city and dates |
| Agoda Reviews Scraper | Hotel reviews, including the Booking.com reviews shown on Agoda |
| Google Flights Scraper | Live flight prices, layovers and booking options |
| Email Verifier & Phone Number Validator | Checks e-mails and phone numbers in bulk |
Also known as
People look for this Actor as an Airbnb scraper, an Airbnb listings API, an Airbnb price scraper, a vacation rental data source, a short-term rental scraper, a holiday rental scraper, an STR analytics feed, and a way to get nightly rates and availability by city.