Airbnb Scraper - Listings, Prices & Coordinates
Pricing
from $1.20 / 1,000 listing results
Airbnb Scraper - Listings, Prices & Coordinates
Scrape Airbnb listings for any destination. Extract nightly prices, discounts, ratings, reviews, GPS coordinates and room types. Export JSON/CSV.
Pricing
from $1.20 / 1,000 listing results
Rating
0.0
(0)
Developer
Santhej Kallada
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Airbnb Scraper — Listings, Prices, Ratings & Coordinates
Scrape Airbnb search results for any destination and get clean, structured listing rows with total and nightly prices, discounts, ratings, review counts, GPS coordinates and photos. No API key, no login, no proxy setup. $1.50 per 1,000 listings.
What does Airbnb Scraper do?
Give it a city, region or country and it collects the listings Airbnb shows for that search, page by page, removing duplicates as it goes. Add check-in and check-out dates, guest counts, a price range or room types to scrape exactly the search a traveller would see.
- Airbnb listings by destination: any city, region or country, up to 30 destinations per run.
- Total and nightly prices: the price for the whole stay plus the nightly rate from Airbnb's price breakdown.
- Discounts: original (strike-through) price and an
isDiscountedflag. - Ratings and review counts: split into separate numeric fields.
- GPS coordinates: latitude and longitude for every listing.
- Property details: property type and area, bedrooms, badges such as "Guest favorite", and photo URLs.
- Filters: dates, adults and children, minimum and maximum price, and room type.
Use cases
- Short-term rental pricing: see what comparable listings charge for your dates.
- Market supply analysis: count listings, property types and price bands per city.
- Investment research: combine coordinates with price to map rates by neighbourhood.
- Competitor tracking: watch a set of listings' prices and discounts over time with a scheduled run.
How to use Airbnb Scraper
- Enter one or more Destinations, e.g.
Lisbon, PortugalorAustin, TX. - Set Check-in date and Check-out date if you want prices for a specific stay, and the number of Adults and Children.
- Optionally add a Minimum price, Maximum price and Room types.
- Set Max listings per destination (Airbnb shows about 270 at most per search).
- Click Start, then export the dataset as JSON, CSV or Excel, or read it through the Apify API.
Example input
{"locations": ["Lisbon, Portugal", "Porto, Portugal"],"checkIn": "2027-04-12","checkOut": "2027-04-17","adults": 2,"maxItems": 100,"minPrice": 50,"maxPrice": 400,"roomTypes": ["Entire home/apt"]}
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
locations | array of strings | required | Destinations to search, up to 30 per run. |
maxItems | integer | 100 | Unique listings to collect per destination, 1 to 1,000. Airbnb caps a search at about 270, so higher values return everything available. |
checkIn | string (YYYY-MM-DD) | empty | Check-in date. |
checkOut | string (YYYY-MM-DD) | empty | Check-out date. |
adults | integer | empty | Adult guests, 1 to 16. |
children | integer | empty | Child guests, 0 to 15. |
minPrice | integer | empty | Minimum price, passed to Airbnb's own price filter. |
maxPrice | integer | empty | Maximum price, passed to Airbnb's own price filter. |
roomTypes | array of strings | all | Any of Entire home/apt, Private room, Shared room, Hotel room. |
country | string | us | Two-letter country the request is made from. Controls the currency and language Airbnb returns (us = USD, English). |
concurrency | integer | 3 | Destinations processed at once, 1 to 6. |
pageConcurrency | integer | 6 | Result pages fetched in parallel per destination, 1 to 10. |
maxItems applies per destination, so two destinations at 100 each can return up to 200 listings.
Example output
{"listingId": "30180055","name": "Guida Mouraria Apartment","title": "Apartment in Santa Maria Maior","url": "https://www.airbnb.com/rooms/30180055","totalPrice": 585,"priceDisplay": "$585","originalPrice": null,"isDiscounted": false,"priceQualifier": "for 5 nights","pricePerNight": 116.9,"currency": "$","rating": 4.97,"reviewCount": 453,"ratingLabel": "4.97 (453)","isNew": false,"latitude": 38.71292,"longitude": -9.1342,"roomType": "1 bedroom","badges": ["Guest favorite"],"images": ["https://a0.muscache.com/im/pictures/..."],"checkIn": "2027-04-12","checkOut": "2027-04-17","searchLocation": "Lisbon, Portugal","sourcePage": 1,"scrapedAt": "2026-09-23T03:34:02.758Z"}
| Field | Description |
|---|---|
listingId | Airbnb's room ID, a stable key for tracking a listing over time. |
name | Listing name as the host wrote it. |
title | Property type and area, e.g. "Apartment in Santa Maria Maior". |
url | Direct airbnb.com/rooms/… link. |
totalPrice / priceDisplay / priceQualifier | Price for the stay as a number, as displayed ($585), and what it covers (for 5 nights). |
originalPrice / isDiscounted | Strike-through price and discount flag when the host is discounting. |
pricePerNight | Nightly rate from Airbnb's price breakdown. |
currency | Currency symbol taken from the displayed price. |
rating / reviewCount / ratingLabel | Average rating, number of reviews, and the raw label. |
isNew | true for listings with no reviews yet. |
latitude / longitude | GPS coordinates. |
roomType | First detail line Airbnb shows, usually the bedroom count ("1 bedroom", "2 bedrooms"). |
badges | Labels Airbnb shows on the card, such as "Guest favorite". |
images | Photo URLs. |
checkIn / checkOut | The dates the price applies to. |
searchLocation / sourcePage / scrapedAt | The destination searched, the results page and the collection time. |
A run summary (listings, pages fetched, empty destinations, blocked pages) is saved to the run's key-value store as OUTPUT.
How much does Airbnb Scraper cost?
Pay per event. You pay for unique listings returned.
| Event | Free / Bronze plan | Silver plan | Gold plan and above |
|---|---|---|---|
| Listing returned (unique) | $0.0015 | $0.00135 | $0.0012 |
| Zero-result destination (Airbnb returned no listings at all) | $0.002 | $0.0018 | $0.0016 |
| Actor start (once per run) | $0.0005 | $0.00045 | $0.0004 |
Worked examples at Free/Bronze prices:
- 1 destination, 60 listings: 60 × $0.0015 + $0.0005 = $0.0905
- 2 destinations, 200 listings each: 400 × $0.0015 + $0.0005 = $0.6005
- 1,000 listings across several destinations: $1.50 + $0.0005
Duplicates, blocked pages and redirected pages are never billed. There is no subscription.
Things worth knowing
- Set dates when you compare prices. Without dates, Airbnb quotes each listing for dates it picks itself (shown in
checkIn/checkOut), so prices are not like-for-like. With dates, every listing is priced for your stay. - Airbnb caps a search at roughly 270 listings (15 pages of 18). To go deeper, split a city into neighbourhoods or use price bands.
- Price filters are Airbnb's own.
minPrice/maxPriceare applied by Airbnb to its nightly price, which can differ slightly from thepricePerNightbreakdown when a discount applies. countrycontrols currency and language. It defaults tous(USD, English). Set it to match the market you're researching.
FAQ
Do I need an Airbnb API key or account? No. There is nothing to register, no login and no cookies.
Are duplicate listings billed?
No. Airbnb repeats listings across pages; results are de-duplicated on listingId and only unique listings are charged.
How many listings can I get per destination? Around 270, because Airbnb shows at most 15 pages of 18 per search. Split a city into neighbourhoods or price bands to go further.
What happens if Airbnb redirects or blocks a request?
It is retried automatically, and a page that still fails is skipped without charge. Runs report blocked_pages in OUTPUT.
Can I get prices in a different currency?
Yes. The country option decides where the request comes from, which determines the currency and language Airbnb returns.
Can I run this on a schedule? Yes. Save your input as a task and add an Apify schedule for recurring rate monitoring, or trigger it from your own pipeline through the API.
Support
Open an issue on the Actor's Issues tab and I'll take a look.