Airbnb Scraper - Listings, Prices & Ratings
Pricing
Pay per usage
Airbnb Scraper - Listings, Prices & Ratings
Scrape Airbnb stays via the internal StaysSearch JSON API. Get listing name, price per night, total price, rating, review count, room type, coordinates, host, amenities, and booking URL. Search by location or a single listing URL. No API key needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Thirdwatch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Airbnb Scraper
Scrape Airbnb stays by city or listing URL — get price per night, rating, review count, room type, coordinates, and the booking link as clean, structured rows.
Search any city, region, or address and pull a ready-to-analyze table of Airbnb stays: listing name, nightly price, total stay price, average rating, review count, property type, exact map coordinates, and the direct booking URL. Built for short-term-rental market research, pricing intelligence, competitor benchmarking, travel aggregators, and investment analysis. Export to JSON, CSV, or Excel, or pipe straight into your own pipeline.
What you get
- Location search (primary path): give it a city like "Lisbon, Portugal" and a result count, and get back a clean row per listing with price, rating, review count, room type, and coordinates — the most reliable way to use this Actor.
- Date-aware pricing: add check-in / check-out dates and a guest count to get the price for that specific stay.
- Single-listing lookup (secondary path): paste one Airbnb listing URL to pull that listing's detail record, including its amenities list.
- Choose your currency: prices come back in USD, EUR, GBP, INR, or any standard currency code you set.
- Stays current automatically as Airbnb updates its site, so your scheduled runs keep working.
Output fields
| Field | Description |
|---|---|
room_id | Airbnb listing ID |
name | Listing title (e.g. "Charming Apartment with Terrace") |
room_type | Property type and area (e.g. "Apartment in Lisbon") |
price_per_night | Displayed nightly price with currency symbol |
total_price | Total for the displayed stay, including the original price when discounted |
rating | Average review rating, when the listing has reviews |
review_count | Number of reviews, when the listing has reviews |
lat | Latitude of the listing |
lng | Longitude of the listing |
host | Host name, when shown |
amenities | Amenities list (populated for single-listing URL lookups) |
images | Listing image URLs |
badges | Badges such as Guest Favorite or Superhost, when present |
url | Direct booking URL for the listing |
search_location | The location you searched (location search only) |
person_capacity | Maximum guests the listing sleeps (single-listing URL lookups only) |
Example output
{"room_id": "1709223735731352361","name": "Sunlit Studio in Alfama with River View","room_type": "Apartment in Lisbon","price_per_night": "$92","total_price": "$416 for 4 nights","rating": 4.89,"review_count": 223,"lat": 38.7118,"lng": -9.1305,"host": "Mariana","amenities": [],"images": ["https://a0.muscache.com/im/pictures/miso/Hosting-1709223735731352361/original/abc123.jpeg"],"badges": ["Guest Favorite"],"url": "https://www.airbnb.com/rooms/1709223735731352361","search_location": "Lisbon, Portugal"}
Input parameters
| Parameter | Required | Description |
|---|---|---|
location | Yes (unless listingUrl is set) | City, region, or address to search for stays — e.g. "Lisbon, Portugal", "Paris", "Bali, Indonesia". This is the primary, most reliable way to use the Actor. |
listingUrl | No | A single Airbnb listing URL (e.g. https://www.airbnb.com/rooms/12345678) to pull one listing's details. When set, it takes priority over location. |
maxResults | No | Maximum number of listings to return for a location search. Default 20, up to 300. |
currency | No | Currency code for prices — e.g. USD, EUR, GBP, INR. Default USD. |
checkIn | No | Optional check-in date (YYYY-MM-DD). When set with checkOut, prices reflect that specific stay. |
checkOut | No | Optional check-out date (YYYY-MM-DD). |
adults | No | Optional number of adult guests, to size availability and pricing for that party. |
proxyConfiguration | No | Proxy settings, pre-configured with a sensible default. Leave as-is unless you have a specific need. |
Example: search a city
{"location": "Lisbon, Portugal","maxResults": 50,"currency": "USD"}
Example: search with dates and guests
{"location": "Paris, France","checkIn": "2026-08-01","checkOut": "2026-08-05","adults": 2,"currency": "EUR","maxResults": 40}
Example: look up a single listing
{"listingUrl": "https://www.airbnb.com/rooms/1709223735731352361","currency": "USD"}
Use cases
- Short-term-rental analysts: track supply, nightly rates, and ratings across a market over time to spot pricing and demand trends.
- Revenue managers and hosts: benchmark your nightly rate against comparable stays in the same city or neighborhood.
- Real-estate investors: size up Airbnb yield in a target city by pulling live price and rating data before you buy.
- Travel and listing aggregators: build comparison datasets across multiple destinations from a single, consistent schema.
- Market researchers and data teams: assemble repeatable, exportable rental-market datasets for dashboards, models, or reports.
- Founders and product teams: seed a travel or property product with real listings, prices, and geolocation data.
Limitations
- Location (city) search is the primary, reliable path. A location search returns the core listing fields for each stay: name, price per night, total price, rating, review count, room type, and map coordinates. This is what we recommend for most workloads.
- The single
listingUrlpath is secondary. It returns a single listing's detail record, including its amenities list, but does not return live pricing in the same way a location search does, and detail coverage can vary by listing. Treat exhaustive per-listing detail (full amenities, host history) as best-effort, not guaranteed. - Newly listed stays often show "New" instead of a rating. For those,
ratingandreview_countcome back asnull. amenitiesis populated for single-listing URL lookups; a location search returns the core listing fields above (itsamenitiesis empty).maxResultsfor a location search is capped at 300 per run. Split larger jobs across multiple searches (e.g. by neighborhood) for deeper coverage.- Prices come back as displayed strings with the currency symbol (e.g. "$92"), so you can show them as-is; parse to a number if you need to compute on them.
Compared to alternatives
The most popular Airbnb scraper on Apify Store is tri_angle / airbnb-scraper. Here is how this Actor differs:
- Cleaner, flatter fields. You get a tidy row per listing — price, rating, review count, room type, latitude, longitude, and booking URL — without digging through deeply nested objects, so the output drops straight into a spreadsheet or database.
- Reliable location-search core. The city/region search path is designed to be the dependable backbone of your workflow and to keep working through site changes, so scheduled runs don't quietly break.
- Predictable pay-per-result pricing. You pay per listing returned, with volume tiers that lower the per-result price as you scale — easy to forecast for recurring jobs.
- Honest about scope. We're explicit that location search is the primary path and single-listing detail is best-effort, so you know exactly what to expect before you run.
FAQ
Do I need an Airbnb account or API key? No. Just provide a location or a listing URL and run it.
What's the best way to get the most listings?
Use a location search with maxResults set to your target (up to 300). For larger coverage, run several searches scoped to different neighborhoods or nearby cities.
Can I get prices for specific dates?
Yes. Set checkIn and checkOut (and optionally adults), and prices reflect that stay.
Why are rating and review_count sometimes empty?
Brand-new listings show "New" instead of a rating until they collect reviews. For those, both fields are null.
Can I get a listing's amenities?
Yes — use the single listingUrl lookup. Amenities are not returned on the bulk location search.
Which currencies are supported?
Any standard currency code (USD, EUR, GBP, INR, and more). Set it with the currency parameter.
Can I schedule recurring runs? Yes. Schedule it from the Apify Console to track a market's prices and ratings over time.
Related scrapers
- Booking.com Scraper — hotel and stay listings with prices and ratings
- TripAdvisor Scraper — reviews and ratings for hotels and attractions
- Yelp Scraper — local business listings and reviews
Built by Thirdwatch — reliable, well-documented data scrapers.
Last verified: 2026-06