Airbnb Scraper
Pricing
$4.00 / 1,000 results
Airbnb Scraper
Scrape Airbnb listings by destination, URL, or listing ID. Extract 70+ fields per listing: prices, ratings, reviews, amenities, host info, policies, and more. HTTP-only. $1.99 per 1,000 results. Never charged for empty or broken data.
Pricing
$4.00 / 1,000 results
Rating
0.0
(0)
Developer
Sourabh Kumar
Actor stats
0
Bookmarked
9
Total users
7
Monthly active users
5 days ago
Last modified
Categories
Share
Airbnb Scraper: prices, ratings, reviews, amenities (70+ fields)
Scrapes Airbnb listings from the public site and returns structured JSON. Three modes in one actor: search by location, get full listing details, or pull guest reviews. HTTP-only, so no browser and no Playwright. Runs fast and stays cheap.
You pay nothing for empty or broken results. If a scraped record is missing its id or url, it's not billed.
What you can extract from Airbnb
| Mode | Input | What you get |
|---|---|---|
| search | Location strings + filters | Listings for your query: price, rating, room type, host info |
| listing | Listing URLs or IDs | Full record per listing: 70+ fields including amenities, policies, host bio, sleeping arrangements |
| reviews | Listing URLs or IDs | Every guest review with rating, text, reviewer details, language |
Switch modes with the mode field. One actor, one schema.
Pricing
$1.99 per 1,000 results. Flat rate.
| Results | Cost |
|---|---|
| 1,000 | $1.99 |
| 10,000 | $19.90 |
| 100,000 | $199.00 |
No charge for bad data. Records without id or url aren't billed. If a run returns zero results, you pay $0.
70+ Airbnb data fields (listing mode)
Listing mode returns every field below. Search mode returns the Identity, Location, Property, Pricing, Ratings, Host (core), Booking, and Badges groups. Reviews mode returns the Review record fields.
Identity
| Field | Description |
|---|---|
id | Airbnb listing ID |
url | Full listing URL |
androidLink | Android app deep link |
iosLink | iOS app deep link |
name | Listing title |
thumbnail | Primary photo URL |
Location
| Field | Description |
|---|---|
city | City |
neighborhood | Neighborhood name |
latitude | GPS latitude |
longitude | GPS longitude |
Property
| Field | Description |
|---|---|
roomType | Entire home, private room, or shared room |
propertyType | Property subtype (apartment, villa, cabin, ...) |
homeTier | Airbnb tier label (1 = standard, 2 = Plus, 3 = Luxe) |
bedrooms | Number of bedrooms |
beds | Number of beds |
bathrooms | Number of bathrooms |
personCapacity | Max guest count |
Pricing
| Field | Description |
|---|---|
pricePerNight | Nightly rate |
totalPrice | Total for stay when dates are supplied |
currency | ISO currency code (USD, EUR, GBP, ...) |
cleaningFee | Cleaning fee (auth-only, null for anonymous runs) |
serviceFee | Airbnb service fee (auth-only, null for anonymous runs) |
totalBeforeTaxes | Subtotal before tax (auth-only, null for anonymous runs) |
Ratings
| Field | Description |
|---|---|
rating | Overall star rating (1 to 5) |
reviewsCount | Total review count |
ratingBreakdown | Per-category scores: cleanliness, accuracy, check-in, communication, location, value |
Host
| Field | Description |
|---|---|
hostId | Host's Airbnb ID |
hostName | Host first name |
hostAbout | Host bio |
hostResponseRate | Percent of messages answered |
hostResponseTime | Typical response time label |
coHosts | Array of co-hosts |
Booking
| Field | Description |
|---|---|
instantBook | Instant booking enabled (auth-only, null for anonymous runs) |
minNights | Minimum nights (auth-only, null for anonymous runs) |
maxNights | Maximum nights (auth-only, null for anonymous runs) |
maxGuests | Guest limit |
Badges
| Field | Description |
|---|---|
isGuestFavorite | Guest Favorite badge |
isNewListing | New listing flag |
isSuperhost | Superhost status |
Policies
| Field | Description |
|---|---|
smokingAllowed | Smoking policy |
partiesAllowed | Events/parties policy |
commercialPhotographyAllowed | Commercial photography policy |
selfCheckIn | Self check-in available |
cancellationPolicy | Policy name (Flexible, Moderate, Strict, ...) |
houseRules | Full house rules text |
checkInTime | Check-in window |
checkOutTime | Check-out time |
Amenities
| Field | Description |
|---|---|
amenities[] | Full amenity list as string array |
amenityWifi | Wi-Fi available |
amenityKitchen | Kitchen |
amenityAC | Air conditioning |
amenityHeating | Heating |
amenityParking | Parking |
amenityPool | Pool |
amenityWasher | Washer |
amenityTv | TV |
amenityWorkspace | Dedicated workspace |
amenityPetsAllowed | Pets allowed |
Content
| Field | Description |
|---|---|
description | Full listing description |
descriptionOriginalLanguage | Language code of the original description |
neighborhoodOverview | Host-written area description |
sleepingArrangements | Bed/room layout summary |
Quality
| Field | Description |
|---|---|
completenessScore | 0 to 100 score based on how many key fields are populated |
Review record fields (reviews mode)
| Field | Description |
|---|---|
listingId | Associated listing ID |
listingName | Listing title |
reviewId | Review ID |
reviewerName | Guest first name |
reviewerLocation | Guest location / tenure string |
reviewDate | Date of review |
reviewText | Full review text |
rating | Star rating (1 to 5) |
language | Language code |
Use cases
- Rental market analysis. Compare prices, occupancy, and amenities across cities or neighborhoods.
- Short-term rental investment research. Evaluate Airbnb performance by property type and location before buying.
- Competitor price monitoring. Track nightly rates and amenities for comparable listings on a schedule.
- Real estate market research. Understand supply, demand, and pricing trends in any market.
- Review sentiment analysis. Pull thousands of guest reviews for NLP, feedback work, or model training data.
- Travel data pipelines. Feed Airbnb inventory into booking tools, dashboards, or AI agents.
- Academic and industry research. Study the short-term rental economy at scale with structured JSON or CSV.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | enum | search | search, listing, or reviews |
locationQueries | string[] | ["New York"] | Locations to search (search mode) |
urls | string[] | [] | Listing URLs or IDs (listing / reviews mode) |
maxResults | integer | 50 | Max results per location or listing. 0 = unlimited |
checkIn | string | (none) | Check-in date YYYY-MM-DD. Required for price breakdown |
checkOut | string | (none) | Check-out date YYYY-MM-DD |
priceMin | integer | (none) | Min nightly price |
priceMax | integer | (none) | Max nightly price |
currency | string | USD | Currency code (USD, EUR, GBP, ...) |
roomType | enum | any | any, Entire home/apt, Private room, Shared room |
minBedrooms | integer | (none) | Min bedroom count |
minBathrooms | integer | (none) | Min bathroom count |
adults | integer | 1 | Number of adult guests |
superhostOnly | boolean | false | Restrict to Superhost listings |
Search by location
{"mode": "search","locationQueries": ["Paris, France", "Barcelona, Spain"],"maxResults": 100,"checkIn": "2026-06-01","checkOut": "2026-06-07","priceMax": 200,"currency": "EUR"}
Get listing details
{"mode": "listing","urls": ["https://www.airbnb.com/rooms/12345678","https://www.airbnb.co.uk/rooms/87654321","55555555"]}
Scrape reviews
{"mode": "reviews","urls": ["https://www.airbnb.com/rooms/12345678"],"maxResults": 200}
Output example (listing mode)
{"id": "12345678","url": "https://www.airbnb.com/rooms/12345678","androidLink": "airbnb://rooms/12345678","iosLink": "airbnb://rooms/12345678","name": "Charming Studio in Le Marais","thumbnail": "https://a0.muscache.com/im/pictures/abc123.jpg","city": "Paris","neighborhood": "Le Marais","latitude": 48.8566,"longitude": 2.3522,"roomType": "Entire home/apt","propertyType": "Apartment","homeTier": 1,"bedrooms": 1,"beds": 1,"bathrooms": 1,"personCapacity": 2,"pricePerNight": null,"totalPrice": null,"currency": null,"cleaningFee": null,"serviceFee": null,"totalBeforeTaxes": null,"rating": 4.87,"reviewsCount": 342,"ratingBreakdown": {"cleanliness": 4.9,"accuracy": 4.8,"checkIn": 4.9,"communication": 4.9,"location": 4.7,"value": 4.8},"hostId": "98765432","hostName": "Marie","hostAbout": "Bonjour! I love hosting travelers from around the world.","hostResponseRate": "100%","hostResponseTime": "within an hour","coHosts": [],"instantBook": null,"minNights": null,"maxNights": null,"maxGuests": 2,"isGuestFavorite": true,"isNewListing": false,"isSuperhost": true,"smokingAllowed": false,"partiesAllowed": false,"commercialPhotographyAllowed": false,"selfCheckIn": true,"cancellationPolicy": "Moderate","houseRules": "No smoking. No parties. Quiet hours after 10pm.","checkInTime": "3:00 PM","checkOutTime": "11:00 AM","amenities": ["Wifi", "Kitchen", "Air conditioning", "Washer", "Dedicated workspace"],"amenityWifi": true,"amenityKitchen": true,"amenityAC": true,"amenityHeating": true,"amenityParking": false,"amenityPool": false,"amenityWasher": true,"amenityTv": true,"amenityWorkspace": true,"amenityPetsAllowed": false,"description": "Welcome to this bright studio in the heart of Le Marais...","descriptionOriginalLanguage": "fr","neighborhoodOverview": "Le Marais is one of Paris's most historic and vibrant neighborhoods.","sleepingArrangements": "Bedroom 1: 1 queen bed","completenessScore": 90,"scrapedAt": "2026-04-18T12:00:00.000Z"}
Tips
- Auth-only fields (
cleaningFee,serviceFee,totalBeforeTaxes,minNights,maxNights,instantBook) are only returned by Airbnb to logged-in sessions. This actor runs anonymously, so these come back asnull. completenessScoreabove 80 in listing mode means a fully populated record. Search mode scores are lower by design because search results carry less per-listing data.- Any URL format works:
.com,.co.uk,.co.in,.de, bare numeric IDs, and/rooms/plus/URLs are all accepted. - Search mode paginates up to 15 pages per location. Airbnb's HTML results overlap across pages, so the scraper deduplicates by listing ID and stops when a page adds zero new results. Typical yield: 20 to 80 unique listings per location.
- Reviews mode only needs the listing ID or URL. The actor fetches the listing name automatically.
FAQ
Is this an Airbnb API alternative?
Yes. Airbnb shut down its public API for third-party developers. This actor reads the same web pages guests see and returns clean JSON. No API key, no auth, no partnership.
Is Airbnb scraping legal?
Scraping public Airbnb data is generally considered legal in the US after hiQ Labs v. LinkedIn. Check your local rules and handle personal data (reviewer names, host profiles) responsibly. This actor does not bypass auth, defeat CAPTCHAs, or access private listings.
How many listings can I get per location?
Airbnb's public search returns 20 to 80 unique listings per query depending on the city, filters, and dates. The actor dedupes across pages and stops when there's nothing new. To cover a market deeply, run multiple search variations (different date ranges, neighborhoods, room types, price brackets) and merge the datasets.
How fast is it?
A 50-result search finishes in about 20 to 40 seconds. A single listing fetch takes 1 to 2 seconds. No headless browser means faster runs and much less compute than Playwright-based scrapers.
Does it handle rate limiting?
Yes. Retries with exponential backoff (2s, 4s, 8s) on HTTP 429. Small delays between pages keep requests polite. You can also run it through Apify's residential proxy if you need more resilience.
How do I get check-in / check-out specific pricing?
Pass checkIn and checkOut (YYYY-MM-DD) in the input. The actor threads the dates into the search URL so you get accurate nightly rate and total for the stay.
What's NOT available?
Cleaning fees, service fees, min/max nights, and the instant-book flag are only exposed by Airbnb to logged-in sessions. Those come back null for anonymous scraping. Everything else (title, description, photos, amenities, host info, reviews, coordinates, nightly price, policies) works fine.
Can I export to CSV, Excel, or Google Sheets?
Yes. Apify exports the dataset as JSON, CSV, Excel (XLSX), HTML, XML, or RSS. You can also push to Google Sheets, Airtable, Make, Zapier, or any webhook through Apify Integrations.
