
Airbnb Scraper
- dtrungtin/airbnb-scraper
- Modified
- Users 3.8k
- Runs 95k
- Created by
Tin Duong
Scrape whole cities or extract data from hundreds of Airbnb rentals in seconds. Extract host information, addresses, locations, prices, availability, stars, reviews, images, and host/guest details for free. Download scraped data in various formats including HTML, JSON and Excel.
What does Airbnb Scraper do?
This scraper can extract all listings for a particular area and all details for a particular Airbnb listing. Airbnb usually only provides the first 300 results on the website and limits the API to 1,000 results. But with our unofficial Airbnb API, you can access all possible results. Now you can:
- get all Airbnb listings from one location: rating, price, number of guests, location details, indicated address, URL, reviews.
- extract all Airbnb reviews from one listing: initial comments, responses, name, rating, language, author ID, posting time, and lots more.
- get Airbnb prices in various currencies.
- specify price range, check-in, and check-out dates.
- scrape listings one by one or by pasting an external link with a list of URLs to scrape (CSV, Google Sheets).
How much does it cost to scrape Airbnb?
Running Airbnb Scraper once will get you 1,000 results for less than USD 1 in Apify platform credits. For more details about the plans we offer, platform credits, and usage, see the platform pricing page or this video guide on ▷ how to choose the right subscription plan.
How to scrape Airbnb data
For a step-by-step guide on how to scrape Airbnb, follow our Airbnb Scraper tutorial.
How can you use scraped Airbnb data?
- Monitor Airbnb listings in your chosen location and get the newest prices updates.
- Predict prices for the given location for the upcoming tourist season.
- Find emerging trends and gain competitive intelligence for the travel industry and adapt your own pricing.
- Analyze customer expectations and preferences in terms of price range, housing size, features, available infrastructure, and much more.
- Analyze reviews using sentiment analysis to identify the most successful locations in town.
- Narrow down emerging popular locations to target with the new touring or lodging offers.
- Support your decisions with data when deciding to open pr visit a new spot away from most popular destinations.
How to scrape Airbnb Destination or Airbnb Place
There are two ways you can scrape Airbnb: either by Destination or by Place.
- Scraping by Destination will get you data from Airbnb search results page. You'll get main info on all available listings in any city or town.
- Scraping by Place will get you all details from a single rental listing (reviews, price, availability). You can add as many listings as you want.
How to scrape all Airbnb listings in an area
It's super easy to get all Airbnb listings by Destination. Just enter the city name as you would do it in and Airbnb search, then indicate the number of results you want to scrape.
Here's its equivalent in JSON:
{ "locationQuery": "Sacramento, California", "maxListings": 200, "simple": true, "includeReviews": true, "maxReviews": 10, "calendarMonths": 0, "addMoreHostInfo": false, "currency": "USD", "proxyConfiguration": { "useApifyProxy": true }, "maxConcurrency": 50, "limitPoints": 100, "timeoutMs": 60000, "debugLog": false, "minPrice": 20, "maxPrice": 200, "checkIn": "2022-08-09" }
How to scrape all details from a single rental listing
It is also easy to get all details for a specific listing. Just enter the URL of the home listing you want to scrape. Note that this parameter only accepts direct listing URLs. Using this field, you can:
- scrape just one URL (one Airbnb listing).
- scrape multiple URLs in parallel by adding more URL fields.
- for convenience, instead of adding multiple URL fields, you can also paste a link to Google Sheets or a CSV containing the list of your URLs.
- paste original or shortened abnb.me URLs.
Here's its equivalent in JSON:
{ "simple": true, "includeReviews": true, "maxReviews": 10, "calendarMonths": 0, "addMoreHostInfo": true, "currency": "USD", "proxyConfiguration": { "useApifyProxy": true }, "maxConcurrency": 50, "limitPoints": 100, "timeoutMs": 60000, "debugLog": false, "minPrice": 20, "maxPrice": 200, "checkIn": "2022-08-09", "startUrls": [ { "url": "https://www.airbnb.com/rooms/30692949" } ], "maxListings": 200 }
For the full list of optional parameters, their default values, and how to set the values of your own, see the Input Schema tab.
Airbnb data output
The output from Airbnb Scraper is stored in the dataset. After the run is finished, you can download the dataset in various data formats (JSON, CSV, XML, RSS, HTML Table).
Output example (scrape by Destination)
{ "url": "https://www.airbnb.com/rooms/24402632", "name": "RIAD BAB 23☀️ PISCINE CHAUFFÉE", "stars": 4.85, "numberOfGuests": 10, "address": "Marrakech, Marrakech-Safi, Morocco", "roomType": "Entire townhouse", "location": { "lat": 31.63399, "lng": -7.99043 }, "reviews": [ { "author": { "firstName": "Jan", "hasProfilePic": true, "id": "7983682", "pictureUrl": "https://a0.muscache.com/im/pictures/user/ef5ec630-b9d9-4b33-b8df-dd1220e7c24d.jpg?aki_policy=profile_x_medium", "smartName": "Jan", "thumbnailUrl": "https://a0.muscache.com/im/pictures/user/ef5ec630-b9d9-4b33-b8df-dd1220e7c24d.jpg?aki_policy=profile_small" }, "comments": "Chloé's Riad BAB23 was a wonderful place to stay.<br/><br/>Right inside of the Marrakesh Medina, with endless opportunities to explore the city and its markets, palaces, gardens, and museums on foot - which we had planned to do.<br/><br/>There's a huge selection of walkable place to eat around the house. Additionally, breakfast and dinner can be arranged at the Riad itself - and we absolutely loved the food made by the riad's own crew. So much so that we kept the breakfast going throughout and had several Moroccon dinners at the house. Exquisite.<br/><br/>Speaking of crew, Chloé was extremely helpful organizing our stay and excursions - and always friendly and reactive. But, even bigger kudos go to the riad's house crew, Aziz & Mohammed who managed things day to day - and the wonderfully friendly and happy cleaning and kitchen crew.<br/><br/>We love Marrakesh and we loved this stay at Chloé's riad. Absolutely wonderful experience. We will be back.", "createdAt": "2023-01-20T15:50:54Z", "id": "808603544614385458", "collectionTag": null, "rating": 5, "recipient": { "firstName": "Chloé", "hasProfilePic": true, "id": "26426272", "pictureUrl": "https://a0.muscache.com/im/pictures/user/b4110954-81a1-4358-adc8-4201b44154bc.jpg?aki_policy=profile_x_medium", "smartName": "Chloé", "thumbnailUrl": "https://a0.muscache.com/im/pictures/user/b4110954-81a1-4358-adc8-4201b44154bc.jpg?aki_policy=profile_small" }, "response": null, "localizedDate": "January 2023", "localizedReview": null } ], "pricing": { "rate": { "amount": 260.4, "amountFormatted": "$260.4", "currency": "USD", "isMicrosAccuracy": false, "displayedPrice": 217, "displayedPriceFormatted": "$217" }, "rateType": "nightly", "rateBreakdown": [ { "date": "7/23/2023", "price": 217, "priceFormatted": "$217" }, { "date": "7/24/2023", "price": 217, "priceFormatted": "$217" }, { "date": "7/25/2023", "price": 217, "priceFormatted": "$217" }, { "date": "7/26/2023", "price": 217, "priceFormatted": "$217" }, { "date": "7/27/2023", "price": 219, "priceFormatted": "$219" } ], "nights": 5, "totalPrice": { "amount": 1302, "amountFormatted": "$1,302", "accommodation": 1087, "cleaningFee": 54, "guestFee": 161, "currency": "USD" } }, "photos": [ { "caption": "Patio Bab Vingt-Trois", "pictureUrl": "https://a0.muscache.com/im/pictures/807af64a-c3ba-4075-9b76-e1f09531c974.jpg?aki_policy=large", "thumbnailUrl": "https://a0.muscache.com/im/pictures/807af64a-c3ba-4075-9b76-e1f09531c974.jpg?aki_policy=small" }, { "caption": "Patio Bab Vingt-Trois", "pictureUrl": "https://a0.muscache.com/im/pictures/ef9ae79b-f360-4a31-adf1-9eb4edede987.jpg?aki_policy=large", "thumbnailUrl": "https://a0.muscache.com/im/pictures/ef9ae79b-f360-4a31-adf1-9eb4edede987.jpg?aki_policy=small" } ], "primaryHost": { "id": 26426272, "firstName": "Chloé", "isSuperHost": true, "hasProfilePic": true, "smartName": "Chloé", "about": "Amoureuse de marrakech, des voyages, de déco et de l’art de recevoir. \n\nJe propose 2 riads dans la medina de marrakech à la location pour des longs week-end en famille ou entre amis ! ", "memberSince": "Joined in January 2015", "languages": [ "English", "Français", "Italiano" ], "responseRate": "100%", "responseTime": "within an hour", "hasInclusionBadge": false, "badges": [ "224 Reviews", "Identity verified" ], "hostUrl": "https://www.airbnb.com/users/show/26426272", "pictureUrl": "https://a0.muscache.com/im/pictures/user/b4110954-81a1-4358-adc8-4201b44154bc.jpg?aki_policy=profile_large", "thumbnailUrl": "https://a0.muscache.com/im/pictures/user/b4110954-81a1-4358-adc8-4201b44154bc.jpg?aki_policy=profile_small", "listingsCount": 2, "totalListingsCount": 2 }, "additionalHosts": [ { "id": 7002687, "firstName": "Lambert", "isSuperHost": false, "hasProfilePic": true, "smartName": "Lambert", "about": "", "memberSince": "Joined in June 2013", "languages": [], "hasInclusionBadge": false, "badges": [], "hostUrl": "https://www.airbnb.com/users/show/7002687", "pictureUrl": "https://a0.muscache.com/im/pictures/user/3ed4129e-75c6-487b-b6a4-719cb8e6a6f7.jpg?aki_policy=profile_large", "thumbnailUrl": "https://a0.muscache.com/im/pictures/user/3ed4129e-75c6-487b-b6a4-719cb8e6a6f7.jpg?aki_policy=profile_small" } ], "isHostedBySuperhost": true }
Limitations
- In order to accomplish the run, the scraper mainly splits the location into smaller areas and divides the price range into smaller ranges. Because of this approach, you might see more crawling pages compared to the results you get, and the run of this actor might take longer to complete.
- Airbnb Places field will only scrape from a URL of a specific listing. This parameter cannot be used for other URLs, such as search result URL, for instance.
Integrations and Airbnb Scraper
Last but not least, Airbnb Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Or you can use webhooks to carry out an action whenever an event occurs, e.g. get a notification whenever Airbnb Scraper successfully finishes a run.
Using Airbnb Scraper with the Apify API
The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.
To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package.
Check out the Apify API reference docs for full details or click on the API tab for code examples.
Other travel scrapers
We have other tourism-related scrapers for you to try, such as Booking Scraper and Tripadvisor Scraper. If you're interested in those, browse the Travel Category in Apify Store.
Your feedback
We're always striving to improve the performance of our actors. To give us technical feedback about Airbnb Scraper or to report a bug, please create an issue on the GitHub page or email us at support@apify.com
and we'll get to it.
- What does Airbnb Scraper do?
- How much does it cost to scrape Airbnb?
- How to scrape Airbnb data
- How can you use scraped Airbnb data?
- How to scrape Airbnb Destination or Airbnb Place
- How to scrape all Airbnb listings in an area
- How to scrape all details from a single rental listing
- Airbnb data output
- Output example (scrape by Destination)
- Limitations
- Integrations and Airbnb Scraper
- Using Airbnb Scraper with the Apify API
- Other travel scrapers
- Your feedback