Airbnb Scraper — Listings, Prices, Reviews & Hosts
Pricing
Pay per event
Airbnb Scraper — Listings, Prices, Reviews & Hosts
Airbnb scraper API: listings by location or URL with nightly and total prices for your dates, ratings, host, amenities, photos, coordinates, plus reviews. JSON/CSV/Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Tristan Leroux
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Airbnb Scraper
Scrape Airbnb listings by location or URL with the nightly and total price for your dates, discounts, ratings, review counts, Superhost and Guest favorite flags, beds, bedrooms and bathrooms, coordinates and photos. Switch on listing details for the full description, every amenity, the host profile, house rules, cancellation terms and sub-ratings, and reviews for guest reviews with host responses — search, details and reviews in one actor, one run, one dataset. No login, no API key. Export as JSON, CSV or Excel, or pull the data through the API.
What does Airbnb Scraper do?
Airbnb Scraper reads what airbnb.com shows a visitor and turns it into clean rows:
- Search by location — type
Lisbon, Portugal,Brooklyn, NYorLake Tahoeand get the listings of that area, page after page. Airbnb shows about 270 listings per search; for bigger areas the scraper repeats the search in nightly price ranges automatically to go well beyond that. - Search URLs — paste a search from airbnb.com with all your filters (property type, amenities, instant book, map area, ...) and get exactly those results.
- Listing URLs — paste
https://www.airbnb.com/rooms/...links to track specific homes. - Prices for your dates — with check-in and check-out you get the nightly rate, the total including fees and taxes, the crossed-out original price, the discount in percent and the full price breakdown (cleaning fee, discounts, taxes). Without dates Airbnb's suggested dates and their prices are reported per listing.
- Guests, currency and price range — adults and children, any currency (USD, EUR, GBP, ...), minimum and maximum price per night.
- Listing details (optional) — description, all amenities by category, host (name, ID, Superhost, verified, years hosting, response rate and time, about, languages), co-hosts, house rules, check-in and checkout times, pets and children policy, cancellation terms and availability for your dates, location description, sleeping arrangements, all photos and the six sub-ratings (cleanliness, accuracy, check-in, communication, location, value).
- Reviews (optional) — newest first: rating, text, language, English translation, date, reviewer name and ID, length of stay and the host's response.
Use cases
- Short-term rental investors — size up a market before you buy: nightly rates, occupancy signals, ratings and the competition per neighbourhood.
- Hosts and property managers — benchmark your listing against nearby homes for the same dates, track competitors' prices and discounts, and see which amenities top-rated homes offer.
- Travel and booking startups — feed live prices, photos and coordinates into a search, map or comparison product.
- Real estate and market researchers — build datasets of supply, price levels and property types across cities and seasons.
- Revenue and pricing teams — schedule daily runs for fixed dates and watch how prices move.
- Data and AI teams — reviews with ratings and languages for sentiment analysis, descriptions and amenities for classification or LLM pipelines.
How much does it cost?
You pay only for the rows you get (pay-per-event). Duplicates and rows over your maxItems
limit are never charged.
| Event | What you pay for | Free plan | Paid plans (from) |
|---|---|---|---|
listing | One listing row from a search or listing URL (price, rating, location, photos) | $2.50 per 1,000 | $1.60 per 1,000 |
listing-detail | One listing row with Listing details switched on (charged instead of listing) | $4.00 per 1,000 | $2.50 per 1,000 |
review | One guest review row | $0.50 per 1,000 | $0.30 per 1,000 |
"Paid plans (from)" is the Gold-and-above price; Bronze ($2.20 / $3.50 / $0.40) and Silver ($1.90 / $3.00 / $0.35) plans sit in between. Apify also charges a tiny actor-start fee ($0.00005 per run).
Worked examples (Free plan prices):
- Price check of a city for one weekend — 1,000 listings in Lisbon with your dates: 1,000 × $2.50 / 1,000 = $2.50 ($1.60 on Gold and above).
- Competitor deep dive — 200 listings with details and their 20 newest reviews each: 200 × $4.00 / 1,000 + 4,000 × $0.50 / 1,000 = $0.80 + $2.00 = $2.80 ($1.70 on Gold and above).
The Apify Free plan includes $5 monthly credit, enough for about 2,000 listings every month.
How to use Airbnb Scraper
In Apify Console:
- Open Airbnb Scraper and click Try for free.
- Type one or more Locations (the form is prefilled with
Lisbon, Portugal) and/or paste Airbnb search or listing URLs. - Optionally set Check-in and Check-out dates, guests, currency and a price range.
- Switch on Listing details and/or Reviews if you need them, and set Max items.
- Click Start. 50 listings take a few seconds; 1,000 listings with dates about a minute.
- Open the Output tab and export the dataset as JSON, CSV, Excel or HTML.
Through the API:
- Get your API token in Apify Console → Settings → Integrations.
- Call the actor with your input JSON (see Integrations and API).
- Read the dataset items from the run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
locationQueries | array | – | Locations as typed on airbnb.com: Lisbon, Portugal, Brooklyn, NY, Lake Tahoe. |
startUrls | array | – | Airbnb search URLs (https://www.airbnb.com/s/Paris/homes?...) and/or listing URLs (https://www.airbnb.com/rooms/12345678); any Airbnb country domain. |
checkIn / checkOut | string | – | Stay dates (YYYY-MM-DD) for exact prices. Without dates Airbnb's suggested dates are used and reported per row. |
adults / children | integer | – | Guests; only listings for that many guests, prices for that group. |
currency | string | USD | Currency of all prices (EUR, GBP, CAD, ...). |
priceMin / priceMax | integer | – | Nightly price range in that currency. |
includeDetails | boolean | false | Open every listing page: description, amenities, host, house rules, cancellation terms, sub-ratings, all photos. Billed as listing-detail. |
includeReviews | boolean | false | Add guest reviews as separate rows (type: "review"). |
maxReviewsPerListing | integer | 20 | Newest reviews per listing; 0 = all. |
maxItems | integer | 1000 | Hard cap on rows for the whole run (listings plus reviews). |
maxListingsPerSearch | integer | 0 | Cap per location or search URL; 0 = no cap. |
splitLargeSearches | boolean | true | Repeat searches that hit Airbnb's ~270-listing cap in nightly price ranges. |
proxyConfiguration | object | Apify Proxy | Proxy settings. |
debug | boolean | false | Log every request. |
Example — two cities for a December weekend, two adults, prices in euros:
{"locationQueries": ["Lisbon, Portugal", "Barcelona, Spain"],"checkIn": "2026-12-10","checkOut": "2026-12-14","adults": 2,"currency": "EUR","maxItems": 1000}
Example — a filtered search URL and one tracked listing, with details and the 10 newest reviews:
{"startUrls": ["https://www.airbnb.com/s/Paris--France/homes?room_types%5B%5D=Entire%20home%2Fapt&min_bedrooms=2","https://www.airbnb.com/rooms/9092386"],"checkIn": "2026-12-17","checkOut": "2026-12-20","includeDetails": true,"includeReviews": true,"maxReviewsPerListing": 10,"maxItems": 500}
Output
One row per listing (type: "listing"), plus one row per review (type: "review") when reviews
are on. Real listing row from 2026-11-05 with Listing details, shortened (photos, amenities,
rules and the description cut):
{"type": "listing","id": "9092386","url": "https://www.airbnb.com/rooms/9092386?check_in=2026-12-10&check_out=2026-12-14&adults=2","name": "Alfama - Amazing River View","title": "Entire rental unit in Lisbon, Portugal","propertyType": "Entire rental unit","roomType": "Entire home/apt","neighbourhood": "Santa Maria Maior","city": "Lisbon","latitude": 38.71171,"longitude": -9.12912,"rating": 4.93,"reviewCount": 881,"isSuperhost": true,"isGuestFavorite": true,"hostType": "Individual host","badges": ["Guest favorite", "Superhost"],"bedrooms": 1,"beds": 1,"bathrooms": 1,"maxGuests": 2,"bedLabels": ["1 bedroom", "1 bed", "1 bath"],"currency": "EUR","pricePerNight": 102.25,"totalPrice": 430.77,"originalPrice": null,"discountPercent": null,"nights": 4,"priceLabel": "€431 total","priceBreakdown": [{ "label": "4 nights x €102.25", "amount": 409.0 },{ "label": "Discount from Airbnb", "amount": -10.23 },{ "label": "Taxes", "amount": 32.0 }],"checkIn": "2026-12-10","checkOut": "2026-12-14","adults": 2,"children": null,"photos": ["https://a0.muscache.com/im/pictures/df2fd0b1-3391-49af-89e3-215fcc05018c.jpg"],"thumbnail": "https://a0.muscache.com/im/pictures/df2fd0b1-3391-49af-89e3-215fcc05018c.jpg","propertyId": null,"searchQuery": "https://www.airbnb.com/rooms/9092386","position": null,"scrapedAt": "2026-11-05T09:19:04Z","locationName": "Santa Maria Maior, Lisbon","isExactLocation": false,"subRatings": { "accuracy": 4.95, "checkin": 4.92, "communication": 4.97, "value": 4.89, "cleanliness": 4.97, "location": 4.93 },"isNewListing": false,"isAvailable": true,"canInstantBook": true,"cancellationPolicy": "Free cancellation before December 5","priceNote": "Your price is below the 60-day average","description": "This small and charming apartment fully restored, offers a wonderful view over the old rooftops of Alfama ...","highlights": [{ "title": "Beautiful and walkable", "description": "Guests say this area is scenic and it’s easy to get around." }],"amenities": [{ "group": "Internet and office", "title": "Wifi", "available": true, "subtitle": null }],"amenityNames": ["City skyline view", "River view", "Hair dryer", "Wifi", "Kitchen"],"host": {"id": "32293705","name": "António","isSuperhost": true,"isVerified": true,"rating": 4.89,"reviewCount": 2812,"yearsHosting": 11,"monthsHosting": 3,"responseRate": "100%","responseTime": "Responds within an hour","highlights": ["Speaks English and Portuguese", "Lives in Carcavelos, Portugal"],"profileUrl": "https://www.airbnb.com/users/show/32293705","hostType": "INDIVIDUAL"},"coHosts": [{ "name": "Mariana", "isSuperhost": false }],"houseRules": [{ "group": "House rules", "title": "Quiet hours", "description": "10:00 PM - 7:00 AM" }],"checkInTime": null,"checkOutTime": null,"safetyAndProperty": ["Carbon monoxide alarm not reported", "Smoke alarm not reported", "Must climb stairs"],"petsAllowed": false,"childrenAllowed": false,"locationDescription": "A few minutes walking distance you can reach many cultural and historic attractions ...","gettingAround": "Taxis, buses, trams and the subway are nearby. Santa Apolónia railway station is just 5 minutes walking distance.","sleepingArrangements": [{ "room": "Bedroom", "beds": "1 double bed" }]}
Review row:
{"type": "review","id": "1809350353139313050","listingId": "9092386","listingUrl": "https://www.airbnb.com/rooms/9092386","rating": 5,"text": "Fijn verblijf, perfect voor een aantal dagen Lissabon","language": "nl","textTranslated": "Nice stay, perfect for a few days in Lisbon.","createdAt": "2026-11-01T10:16:10Z","localizedDate": "3 days ago","stayHighlight": "Stayed a few nights","reviewerName": "Valerie","reviewerId": "337465191","reviewerProfileUrl": "https://www.airbnb.com/users/show/337465191","reviewerTenure": "7 years on Airbnb","hostResponse": null,"hostResponseDate": null,"hostResponderName": null,"photos": [],"scrapedAt": "2026-11-05T09:19:05Z"}
Field notes:
- Listings without Listing details contain the fields up to
scrapedAt; search rows also haveneighbourhoodandposition(rank in the search). The detail fields (fromlocationNameon) are added with Listing details. totalPriceis what Airbnb shows as the total for the stay: on the default (US) proxy that is the price after discounts and before taxes ("$414 for 3 nights"); visitors from regions where Airbnb displays tax-inclusive totals get the total with taxes.priceBreakdownlists every line (nightly rate × nights, discounts, cleaning and resort fees, taxes where shown);pricePerNightis the nightly rate before fees,originalPricethe crossed-out total anddiscountPercentthe saving against it.- Without dates,
checkIn/checkOutare Airbnb's suggested dates for that listing and the prices refer to them. Listing URLs without dates have no price. cancellationPolicy,isAvailableandcanInstantBookrefer to your dates.roomTypeis one ofEntire home/apt,Private room,Shared room,Hotel room;propertyTypeis Airbnb's own label (Apartment,Entire rental unit,Room in hotel, ...).ratingisnullandreviewCount0for listings marked "New".
Integrations and API
Run the actor and get the items back in one call:
curl -X POST "https://api.apify.com/v2/acts/innolabs~airbnb-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"locationQueries": ["Lisbon, Portugal"], "checkIn": "2026-12-10", "checkOut": "2026-12-14", "maxItems": 100}'
Python with apify-client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("innolabs/airbnb-scraper").call(run_input={"locationQueries": ["Barcelona, Spain"],"checkIn": "2026-12-10","checkOut": "2026-12-14","adults": 2,"currency": "EUR","includeDetails": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["neighbourhood"], item["pricePerNight"], item["totalPrice"], item["rating"])
- Make, Zapier, n8n — use the Apify app/node to start the actor and send new listings or price drops to Google Sheets, Airtable, Slack or email.
- Scheduling — create a schedule in Apify Console (e.g. every morning for the same dates) to keep a daily price history of a market.
- Webhooks — trigger your pipeline when a run finishes.
- AI agents (MCP) — connect Claude, Cursor or other MCP clients through the Apify MCP server at https://mcp.apify.com and let your agent look up Airbnb prices and reviews.
FAQ
Is it legal to scrape Airbnb?
The scraper only reads pages that Airbnb shows to every visitor without logging in; it does not book, message hosts or access private data. Reviews contain reviewers' first names as published by Airbnb; handle personal data according to the GDPR and your local laws. Check Airbnb's terms for how you use the data. This actor is not affiliated with or endorsed by Airbnb.
How many listings can I get for a city?
Airbnb itself shows at most about 270 listings per search. With Split large areas by price
(on by default) the scraper repeats the search in about 15 nightly price ranges and halves the
ranges that are still full; duplicates are removed. In our tests one run for Lisbon, Portugal
returned 8,000 listings (about 12 minutes). You can also add search URLs for smaller areas
(neighbourhoods, map areas) or several locations.
Why do prices differ from what I see in my browser?
Prices depend on dates, number of guests, currency and the country Airbnb thinks you are in (taxes and fee display rules differ by region). Set Check-in, Check-out, Adults and Currency to get the price for your stay. Without dates, each listing comes with Airbnb's suggested dates, so rows can have different dates.
Do I need proxies or an Airbnb account?
No account is needed. The default Apify Proxy works; when a request is refused the scraper switches IP and retries automatically.
Can I scrape a single listing or my competitors' listings?
Yes, paste listing URLs (https://www.airbnb.com/rooms/...) into Airbnb URLs. With dates you
get the price, availability and cancellation terms for that stay; switch on Listing details for
the full listing page and Reviews for its reviews.
How are reviews sorted and how many can I get?
Newest first. Max reviews per listing limits them per listing (20 by default, 0 = all).
Reviews in other languages come with Airbnb's English translation in textTranslated.
What happens with listings that no longer exist?
They are reported in the log and in the run's SUMMARY record ("listing not found") and the run
continues with the other inputs. Failed inputs are never charged.
Limits
- About 270 listings per search (Airbnb's limit); price splitting raises this for large areas but cannot guarantee every listing of a huge city.
- Search rows without dates show Airbnb's suggested dates and prices for them; bedroom, bed and bath counts appear on search rows when dates are set, and always with Listing details.
- Listing URLs without dates have no price.
checkInTime/checkOutTimeare filled only when the host lists them among the house rules.- Host profiles beyond what the listing page shows (other listings of the host, full review history) and availability calendars for months ahead are not included.
- Experiences and services are not scraped, only stays (homes and hotels).