Airbnb Scraper — Listings, Prices, Ratings & Details
Pricing
from $2.10 / 1,000 listings
Airbnb Scraper — Listings, Prices, Ratings & Details
Search Airbnb stays by location or URL and get listings with total and nightly price, rating, reviews, bedrooms, host type, coordinates and photos. Optional details: amenities, description, host profile, category ratings, house rules. Filters: dates, guests, price, room type, bedrooms.
Pricing
from $2.10 / 1,000 listings
Rating
0.0
(0)
Developer
Sergey Lutsak
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Search Airbnb by place, search URL, listing URL or listing ID and get clean JSON: name, type, total and per-night price for your dates, rating and review count, Guest-favorite and Superhost badges, bedrooms/beds/baths, host type, coordinates and photos. Turn on details to add amenities, description, property type, capacity, host profile, category ratings, house rules, safety info and all photos. Uses Airbnb's own data endpoints — no browser, no login — so runs are fast and cheap.
Use cases
- Market research & pricing — compare nightly rates, occupancy signals and ratings across a city or neighbourhood for given dates.
- Property investment & short-term-rental analysis — count listings by type, bedrooms, price band and host type (individual vs. business).
- Travel apps & AI agents — feed structured availability and pricing into planners, chatbots or recommendation engines.
- Monitoring — track a set of listings (by URL/ID) for price and rating changes on a schedule.
Input
| Field | Type | Default | Description |
|---|---|---|---|
locations | array of strings | — | Places (Warsaw, Poland), Airbnb search URLs (dates, guests and filters in the URL are respected), listing URLs or numeric IDs |
maxItems | integer | 100 | Cap per location. Airbnb serves at most ~280 results per search; narrow with dates, price or room type for different sets |
checkIn, checkOut | YYYY-MM-DD | — | Stay dates (set both). Prices then reflect the actual stay |
adults, children, infants, pets | integer | 1 / 0 / 0 / 0 | Guests |
currency | string | USD | ISO 4217 code for prices |
priceMin, priceMax | integer | — | Per-night price bounds |
roomTypes | array | all | entire, private, shared, hotel |
minBedrooms, minBeds, minBathrooms | integer | — | Minimum counts |
includeDetails | boolean | false | One extra request per listing for the full details block |
locale | string | en | Language of names and descriptions |
proxy | object | Apify datacenter proxy | Proxy configuration |
{"locations": ["Lisbon, Portugal", "https://www.airbnb.com/rooms/1224722232392342773"],"checkIn": "2026-11-10","checkOut": "2026-11-13","adults": 2,"currency": "EUR","priceMax": 150,"roomTypes": ["entire"],"maxItems": 200,"includeDetails": true}
Output (one item = one listing)
{"id": "1654891137786665306","url": "https://www.airbnb.com/rooms/1654891137786665306","name": "Stylish Atelier | Nowy Świat | Self check-in","title": "Apartment in City Centre","room_type": "Apartment","rating": 5.0,"reviews_count": 28,"is_guest_favorite": true,"is_superhost": false,"host_type": "individual","bedrooms": 2, "beds": 3, "bathrooms": 1,"price": { "total": 347.0, "total_text": "$347", "currency": "USD", "original_total": null, "qualifier": "total", "nights": 3, "per_night": 115.65 },"free_cancellation": false,"lat": 52.2351, "lng": 21.0205,"images": ["https://a0.muscache.com/im/pictures/hosting/…/original/0740dcf4-….png"],"check_in": "2026-11-10", "check_out": "2026-11-13", "adults": 2,"query": "Warsaw, Poland",// with includeDetails = true:"description": "Unique studio close to the center. It consists of …","property_type": "Entire rental unit","space_type": "ENTIRE_HOME","person_capacity": 4,"overview": ["4 guests", "1 bedroom", "2 beds", "1 bath"],"category_ratings": { "cleanliness": 4.6, "accuracy": 4.8, "checkin": 4.8, "communication": 4.9, "location": 4.8, "value": 4.8 },"is_new_listing": false,"location": { "lat": 52.24636, "lng": 20.99172, "is_exact": false, "subtitle": "Warsaw, Masovian Voivodeship, Poland" },"amenities": [{ "group": "Bathroom", "name": "Hair dryer", "description": null, "available": true }],"amenities_count": 27,"host": { "id": "389655643", "name": "Krzysztof", "is_superhost": false, "is_verified": true, "rating": 4.67, "reviews_count": 639,"years_hosting": 6, "response_rate": "Response rate: 100%", "response_time": "Responds within an hour", "type": "business","profile_picture_url": "https://a0.muscache.com/im/pictures/user/….jpg" },"highlights": ["Self check-in"],"house_rules": ["Check-in after 1:00 PM", "Checkout before 10:00 AM", "No pets"],"safety_and_property": ["Smoke alarm not reported"],"sleeping_arrangements": ["Bedroom", "Living room"],"photos": ["https://a0.muscache.com/im/pictures/hosting/…/original/….jpeg"]}
Notes:
priceis what Airbnb shows for your dates and guests in the requested currency (original_totalis set when Airbnb displays a discount). Without dates it is Airbnb's indicative total. Listings queried directly by URL/ID carry no price in this version.- Field names are a stable contract: new fields may be added in minor versions; renames only in a major version (see Changelog).
The run's key-value store record OUTPUT holds statistics: requests, blocks, empty or unsupported queries, reason_if_empty.
Pricing
Pay only for results: $3.00 per 1,000 listings. Platform usage is included — no compute bills, no proxy costs. A run that finds nothing costs (almost) nothing.
Discounts on paid Apify plans:
| Apify plan | Price per 1,000 listings |
|---|---|
| Free plan | $3.00 |
| Starter | $2.70 |
| Scale | $2.40 |
| Business | $2.10 |
Examples (Free plan price):
- one city search (~250 listings) → $0.75
- 1,000 listings across four neighbourhoods → $3.00
- 10,000 listings for a country-wide study → $30.00
Limitations
- Airbnb caps every search at ~280 results. To cover a large city, run several narrower searches (price bands, room types, neighbourhoods).
- Reviews text and the availability calendar are not included in this version.
- Airbnb changes its internal API from time to time; this actor re-discovers the query signatures automatically and is monitored daily.
API & integrations
Run it from code — Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vulcandata/airbnb-scraper").call(run_input={"locations": ["Lisbon, Portugal"], "checkIn": "2026-11-20", "checkOut": "2026-11-22", "adults": 2, "maxItems": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
…or plain HTTP (returns the dataset items directly):
curl -X POST "https://api.apify.com/v2/acts/vulcandata~airbnb-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" -d '{"locations": ["Lisbon, Portugal"], "checkIn": "2026-11-20", "checkOut": "2026-11-22", "adults": 2, "maxItems": 100}'
- No-code: connect to Make, Zapier, n8n, Google Sheets, Slack or webhooks from the actor's Integrations tab.
- Schedules: run daily/weekly from Schedules and get fresh data automatically.
- AI agents (MCP): add
vulcandata/airbnb-scraperto the Apify MCP server (mcp.apify.com) and let Claude, ChatGPT or Cursor call it as a tool. - Exports: JSON, CSV, Excel, XML, RSS — straight from the dataset.
FAQ
Is this legal? The actor collects public listing information that Airbnb shows to every visitor. No login, no private messages, no guest data.
Why do I get at most ~280 listings per search? That is Airbnb's own cap per search. Split a big city into several searches (price bands, room types, neighbourhoods or search URLs with a map area) — duplicates are removed automatically within a run.
Are prices the real prices for my dates? Yes — with checkIn/checkOut you get the total and per-night price Airbnb shows for those dates and guests, in your currency, including Airbnb's discount display when present.
Can I track a list of specific listings? Yes — put listing URLs or IDs into locations and schedule the actor; add includeDetails for amenities, host and rating breakdown.
What happens when Airbnb changes its site? The actor uses Airbnb's own data API and re-discovers its query signatures automatically; it is also tested daily.
More scrapers by VULCAN
Changelog
See CHANGELOG.md.