Airbnb Property Scraper
Pricing
Pay per usage
Airbnb Property Scraper
Scrape property listings from Airbnb search results. Extract pricing, ratings, host details, images, GPS coordinates, and listing information in structured JSON. Supports search filters and direct URLs. No login required.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
ScrapySpider
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does Airbnb Property Scraper do?
Airbnb Property Scraper extracts detailed property data from Airbnb search results. Give it a location, dates, and guest/filter options — or paste Airbnb URLs directly — and it will collect structured data on every listed property, including title, description, pricing, ratings, host details, images, and GPS coordinates. Results are available via the Apify API, ready for download in JSON, CSV, or Excel.
Why use Airbnb Property Scraper?
- Market research — Benchmark pricing and availability across a city or neighbourhood.
- Competitive analysis — Compare property types, amenities, and host ratings in any market.
- Travel planning — Collect and filter listings programmatically before booking.
- Data pipelines — Feed Airbnb data into dashboards, spreadsheets, or downstream tools via the Apify API.
How to use Airbnb Property Scraper
- Go to the Actor page in Apify Console and click Try for free.
- Choose your input method:
- Form-based search — Fill in Location, Check-in/Check-out dates, guest counts, and any filters. The Actor builds the Airbnb search URL automatically.
- Direct URL — Paste one or more Airbnb search results pages or individual room URLs into the Start URLs field.
- Click Start and wait for the run to complete.
- Download your results from the Dataset tab in JSON, CSV, or Excel format.
Input
Configure the Actor from the Input tab. You can use direct URLs or the search form fields:
| Field | Type | Description |
|---|---|---|
startUrls | Array | Airbnb search or room URLs to scrape directly |
location | String | City and country, e.g. Berlin, Germany |
checkIn | String | Check-in date in YYYY-MM-DD format |
checkOut | String | Check-out date in YYYY-MM-DD format |
adults | Integer | Number of adults (max 13) |
children | Integer | Number of children aged 2–12 (max 9) |
infants | Integer | Number of infants aged 0–2 (max 5) |
pets | Integer | Number of pets (max 5) |
minPrice | Integer | Minimum nightly price in local currency |
maxPrice | Integer | Maximum nightly price in local currency |
bedrooms | Integer | Minimum bedrooms required (max 8) |
beds | Integer | Minimum beds required (max 8) |
bathrooms | Integer | Minimum bathrooms required (max 8) |
instantBook | Boolean | Only show instantly bookable properties |
flexibleCancellation | Boolean | Only show flexible cancellation properties |
selfCheckIn | Boolean | Only show self check-in properties |
petsAllowed | Boolean | Only show pet-friendly properties |
amenities | Array | Filter by amenity IDs (e.g. [4, 8, 9]) |
propertyType | Array | Filter by property type IDs |
hostLanguages | Array | Filter by host language codes (e.g. ["en", "de"]) |
Example JSON input:
{"location": "Berlin, Germany","checkIn": "2026-06-01","checkOut": "2026-06-07","adults": 2,"children": 1,"minPrice": 50,"maxPrice": 300,"bedrooms": 1,"instantBook": true}
Output
Each scraped property is stored as one item in the dataset. You can download the dataset in various formats such as JSON, CSV, HTML, or Excel.
Example output item:
{"url": "https://www.airbnb.de/rooms/1527677602089269203?check_in=2026-06-17&check_out=2026-06-19","listingId": "1527677602089269203","TitleOfProperty": "Helle Wohnung mit Balkon in Charlottenburg_AP04","DescriptionOfProperty": "Modernes Studio-Apartment in der City-West...","propertyType": "Gesamte Unterkunft: Apartment","personCapacity": 5,"rating": 5,"reviewCount": 38,"pricePerNight": null,"totalPrice": "303 €","originalPrice": "360 €","managedBy": "Lilit","isSuperhost": false,"HostType": "Business","businessName": "LM Hotelbetriebs GmbH","tradeRegisterNumber": "HRB174625B","email": "lundlstudio@gmail.com","phone": "+49 170 2149894","address": "Otto-Suhr-Allee 74, 10585, Berlin, Germany","Region": "Berlin, Deutschland","Latitude": 52.505587267174135,"Longitude": 13.316068341968693,"mapMarkerType": "APPROX","mapMarkerRadiusInMeters": 152,"images": ["https://a0.muscache.com/im/pictures/hosting/..."]}
Data fields
| Field | Description |
|---|---|
url | Full Airbnb listing URL |
listingId | Airbnb's internal listing ID |
TitleOfProperty | Property title |
DescriptionOfProperty | Full property description (plain text) |
propertyType | Type of property (e.g. Entire rental unit, Room in hotel) |
personCapacity | Maximum number of guests |
rating | Average star rating |
reviewCount | Total number of reviews |
pricePerNight | Nightly price (when available from Airbnb API) |
totalPrice | Total price for the stay (discounted or regular) |
originalPrice | Original total price before discount (if a discount is applied) |
managedBy | Host or property manager name |
isSuperhost | Whether the host has Superhost status |
HostType | Business or Individual |
businessName | Registered business name (business hosts only) |
tradeRegisterNumber | Trade/commercial register number (business hosts only) |
email | Host contact email (business hosts only) |
phone | Host contact phone (business hosts only) |
address | Host registered business address (business hosts only) |
Region | City/region label shown on Airbnb |
Latitude / Longitude | GPS coordinates |
coordinates | Object with latitude and longitude keys |
mapMarkerType | EXACT — precise pin; APPROX — area-only pin |
mapMarkerRadiusInMeters | Radius of the approximate location circle (APPROX listings only) |
images | Array of full-resolution image URLs |
Pricing
The Actor runs on the Apify platform. New users get a free tier with enough compute units to scrape hundreds of listings. For large-scale runs, usage-based pricing applies. A single search results page (20 listings) typically costs a few cents.
Tips
- Use direct URLs for the most reliable results — copy the URL from Airbnb after applying your filters in the browser.
- Set
maxRequestsPerCrawlin the source code to limit the number of pages scraped and control costs. - Date format matters — always use
YYYY-MM-DDfor check-in/check-out fields. - Price fields explained —
totalPriceis the stay total after any discount;originalPriceis the pre-discount total (only present when a deal is shown);pricePerNightis the per-night rate when returned by the API. - Business host data —
businessName,tradeRegisterNumber,email,phone, andaddressare populated only for commercial/business hosts. Individual hosts leave these fieldsnull.
FAQ and support
Is scraping Airbnb legal? Scraping publicly available data is generally considered legal, but always review Airbnb's Terms of Service and use the data responsibly. Do not store personal data without a lawful basis.
Some fields are null — why? Business contact details (email, phone, address, businessName, tradeRegisterNumber) are only shown by Airbnb for professional/business hosts. Individual hosts will have null for those fields. Price fields can also be null when Airbnb does not return pricing for the given dates.
Found a bug or need a custom solution? Open an issue on the Actor's Issues tab or contact us through Apify.
Author
ScrapySpider
- Website: ScrapySpider.com
- Email: ScrapySpider@protonmail.com