Airbnb Property Scraper avatar

Airbnb Property Scraper

Pricing

Pay per usage

Go to Apify Store
Airbnb Property Scraper

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

ScrapySpider

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

  1. Go to the Actor page in Apify Console and click Try for free.
  2. 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.
  3. Click Start and wait for the run to complete.
  4. 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:

FieldTypeDescription
startUrlsArrayAirbnb search or room URLs to scrape directly
locationStringCity and country, e.g. Berlin, Germany
checkInStringCheck-in date in YYYY-MM-DD format
checkOutStringCheck-out date in YYYY-MM-DD format
adultsIntegerNumber of adults (max 13)
childrenIntegerNumber of children aged 2–12 (max 9)
infantsIntegerNumber of infants aged 0–2 (max 5)
petsIntegerNumber of pets (max 5)
minPriceIntegerMinimum nightly price in local currency
maxPriceIntegerMaximum nightly price in local currency
bedroomsIntegerMinimum bedrooms required (max 8)
bedsIntegerMinimum beds required (max 8)
bathroomsIntegerMinimum bathrooms required (max 8)
instantBookBooleanOnly show instantly bookable properties
flexibleCancellationBooleanOnly show flexible cancellation properties
selfCheckInBooleanOnly show self check-in properties
petsAllowedBooleanOnly show pet-friendly properties
amenitiesArrayFilter by amenity IDs (e.g. [4, 8, 9])
propertyTypeArrayFilter by property type IDs
hostLanguagesArrayFilter 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

FieldDescription
urlFull Airbnb listing URL
listingIdAirbnb's internal listing ID
TitleOfPropertyProperty title
DescriptionOfPropertyFull property description (plain text)
propertyTypeType of property (e.g. Entire rental unit, Room in hotel)
personCapacityMaximum number of guests
ratingAverage star rating
reviewCountTotal number of reviews
pricePerNightNightly price (when available from Airbnb API)
totalPriceTotal price for the stay (discounted or regular)
originalPriceOriginal total price before discount (if a discount is applied)
managedByHost or property manager name
isSuperhostWhether the host has Superhost status
HostTypeBusiness or Individual
businessNameRegistered business name (business hosts only)
tradeRegisterNumberTrade/commercial register number (business hosts only)
emailHost contact email (business hosts only)
phoneHost contact phone (business hosts only)
addressHost registered business address (business hosts only)
RegionCity/region label shown on Airbnb
Latitude / LongitudeGPS coordinates
coordinatesObject with latitude and longitude keys
mapMarkerTypeEXACT — precise pin; APPROX — area-only pin
mapMarkerRadiusInMetersRadius of the approximate location circle (APPROX listings only)
imagesArray 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 maxRequestsPerCrawl in the source code to limit the number of pages scraped and control costs.
  • Date format matters — always use YYYY-MM-DD for check-in/check-out fields.
  • Price fields explainedtotalPrice is the stay total after any discount; originalPrice is the pre-discount total (only present when a deal is shown); pricePerNight is the per-night rate when returned by the API.
  • Business host databusinessName, tradeRegisterNumber, email, phone, and address are populated only for commercial/business hosts. Individual hosts leave these fields null.

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