Airbnb Listings & Prices Scraper
Pricing
from $6.80 / 1,000 results
Airbnb Listings & Prices Scraper
Scrape Airbnb vacation rental listings by location, dates or URL. Get title, nightly price, discount, rating, reviews, coordinates, host, superhost, bedrooms, amenities and images. Export JSON, CSV, Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Airbnb Listings & Prices Scraper
Here is one real result, with every field the actor returns:
{"imageUrl": "https://a0.muscache.com/im/pictures/prohost-api/Hosting-1441084616927661043/original/5dad0357-3623-46ca-b7b7-83350b971cbc.jpeg","title": "Apartment in Barcelona","name": "City Centre - Mediterranean Vibes","url": "https://www.airbnb.com/rooms/1441084616927661043","id": "1441084616927661043","price": 910,"currency": "USD","priceQualifier": "for 5 nights","originalPrice": 1041,"discountPercent": 13,"priceLabel": "$910 for 5 nights, originally $1,041","rating": 4.95,"reviewsCount": 100,"isGuestFavorite": true,"badges": ["Guest favorite"],"latitude": 41.39638,"longitude": 2.17773,"city": "Barcelona","checkIn": "2026-12-06","checkOut": "2026-12-11","images": ["https://a0.muscache.com/im/pictures/prohost-api/Hosting-1441084616927661043/original/5dad0357-3623-46ca-b7b7-83350b971cbc.jpeg","https://a0.muscache.com/im/pictures/prohost-api/Hosting-1441084616927661043/original/c9500701-d418-46fc-b7c4-dcd0df9425e3.jpeg"],"roomType": "Entire home/apt","propertyType": "Entire rental unit","personCapacity": 5,"bedrooms": 3,"beds": 3,"bathrooms": 1,"isSuperhost": true,"hostName": "Arturo","hostId": "549310404","hostIsVerified": true,"guestSatisfaction": 4.95,"accuracyRating": 4.96,"checkinRating": 4.88,"cleanlinessRating": 4.96,"communicationRating": 4.93,"locationRating": 4.91,"valueRating": 4.81,"cancellationPolicy": "Firm","amenities": ["Kitchen", "Wifi", "Dedicated workspace", "Pets allowed", "TV", "Elevator", "Washer", "Free dryer – In unit"],"aiListingSummary": null,"aiFeatures": null,"observedAt": "2026-07-28T17:36:28.924Z","error": null}
The most complete Airbnb listings and prices scraper available. It returns every field the search results expose (price, discount, rating, reviews, Guest Favorite, coordinates, images), opens each listing page for room type, bed and bath counts, capacity, host and superhost status, seven category ratings, amenities and cancellation policy, and offers optional AI add-ons for a guest-facing summary and structured features.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches Airbnb by location (with optional dates, guest counts, price range, rating, review count and Guest Favorites filters), or follows Airbnb search-result and individual room URLs you provide, and writes one record per listing to the run's dataset. Each search-level record carries the title, name, price and price qualifier, original price and discount, rating, review count, Guest Favorite flag, badges, coordinates, city and the image gallery.
When withDetails is on (the default), each listing page is opened to add room type, property type, guest capacity, bedrooms, beds and bathrooms, host name and id, superhost and verified status, the seven Airbnb category ratings (accuracy, check-in, cleanliness, communication, location, value and overall guest satisfaction), amenities and the cancellation policy. Two optional AI add-ons (paid Apify plans only) add a guest-facing summary and structured features. Missing values are returned as null, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 listings in Miami with full details.
{"location": "Miami, FL","maxListings": 10,"withDetails": true,"currency": "USD"}
Add checkIn and checkOut dates to get total stay prices, or paste Airbnb search and room URLs into startUrls. Every input field is optional; with an empty input the actor searches the prefilled location.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
location | string | no | Miami, FL | City, region or place to search, for example Barcelona, Spain, Mexico City. Leave empty if you provide startUrls. |
startUrls | array | no | (none) | Airbnb search-result URLs (airbnb.com/s/...) and/or individual room URLs (airbnb.com/rooms/...). |
maxListings | integer | no | 10 | Maximum number of listings to collect across all inputs. |
withDetails | boolean | no | true | When on, each listing page is opened for room type, bed/bath counts, capacity, host, category ratings, amenities and cancellation. Billed per listing enriched (details event). |
checkIn | string | no | (empty) | Check-in date YYYY-MM-DD. Affects total price and availability. |
checkOut | string | no | (empty) | Check-out date YYYY-MM-DD. |
adults | integer | no | (none) | Number of adult guests (1 to 16). |
children | integer | no | (none) | Number of children ages 2 to 12 (0 to 15). |
infants | integer | no | (none) | Number of infants under 2 (0 to 5). |
pets | integer | no | (none) | Number of pets (0 to 5). |
priceMin | integer | no | (none) | Only listings at or above this nightly price. |
priceMax | integer | no | (none) | Only listings at or below this nightly price. |
minRating | integer | no | (none) | Keep only listings with average rating at or above this value (0 to 5). |
minReviewsCount | integer | no | (none) | Keep only listings with at least this many reviews. |
guestFavoriteOnly | boolean | no | false | Keep only listings flagged as Guest Favorites. |
currency | string | no | USD | Currency code for prices, for example USD, EUR, MXN, GBP. |
proxyConfiguration | object | no | (no proxy) | Standard Apify proxy configuration. Airbnb is reachable without a proxy; enable residential only if blocked or for a specific country. |
withAiListingSummary | boolean | no | false | Paid AI add-on. Writes a concise guest-facing summary. Charged per listing only when a summary is produced. |
withAiFeatures | boolean | no | false | Paid AI add-on. Extracts highlights, best-for trip types and inferred house rules. Charged per listing only when features are produced. |
Output reference
One dataset item per listing. Types: string, number, boolean, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Main listing image. |
title | string | Airbnb's short listing title, for example Apartment in Barcelona. |
name | string | The host-written listing name. |
url | string | Direct link to the room. |
id | string | Airbnb listing id. |
price | number | Price for the shown period, or null. |
currency | string | Currency code. |
priceQualifier | string | What the price covers, for example for 5 nights or per night. |
originalPrice | number | Pre-discount price, or null. |
discountPercent | number | Discount percentage, or null. |
priceLabel | string | Full human-readable price label. |
rating | number | Average rating, or null. |
reviewsCount | number | Number of reviews, or null. |
isGuestFavorite | boolean | true when flagged Guest Favorite. |
badges | string[] | Badges shown on the card. |
latitude | number | Geo latitude, or null. |
longitude | number | Geo longitude, or null. |
city | string | City. |
checkIn | string | Check-in date used, or null. |
checkOut | string | Check-out date used, or null. |
images | string[] | Image gallery URLs. |
roomType | string | Room type (with withDetails), or null. |
propertyType | string | Property type (with withDetails), or null. |
personCapacity | number | Max guests (with withDetails), or null. |
bedrooms | number | Bedroom count (with withDetails), or null. |
beds | number | Bed count (with withDetails), or null. |
bathrooms | number | Bathroom count (with withDetails), or null. |
isSuperhost | boolean | Superhost flag (with withDetails), or null. |
hostName | string | Host name (with withDetails), or null. |
hostId | string | Host id (with withDetails), or null. |
hostIsVerified | boolean | Host verified flag (with withDetails), or null. |
guestSatisfaction | number | Overall guest satisfaction rating, or null. |
accuracyRating | number | Accuracy category rating, or null. |
checkinRating | number | Check-in category rating, or null. |
cleanlinessRating | number | Cleanliness category rating, or null. |
communicationRating | number | Communication category rating, or null. |
locationRating | number | Location category rating, or null. |
valueRating | number | Value category rating, or null. |
cancellationPolicy | string | Cancellation policy name (with withDetails), or null. |
amenities | string[] | Available amenities (with withDetails), or null. |
aiListingSummary | string | AI guest-facing summary when the add-on is enabled, else null. |
aiFeatures | object | AI highlights, best-for and house rules when enabled, else null. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run; a single item with a populated error field is written instead. |
Example output record
Real record from a live run with the AI add-ons enabled (input {"location": "Austin, TX", "withAiListingSummary": true, "withAiFeatures": true}):
{"imageUrl": "https://a0.muscache.com/im/pictures/prohost-api/Hosting-28254684/original/e07f15eb-ebc9-48f6-bad6-186684fc1e8d.jpeg","title": "Home in Austin","name": "The Iconic Bloomhouse | Romantic Austin Escape","url": "https://www.airbnb.com/rooms/28254684","id": "28254684","price": 2215,"currency": "USD","priceQualifier": "for 5 nights","originalPrice": 3025,"discountPercent": 27,"priceLabel": "$2,215 for 5 nights, originally $3,025","rating": 4.95,"reviewsCount": 272,"isGuestFavorite": true,"badges": ["Guest favorite"],"latitude": 30.3159,"longitude": -97.8036,"city": "Austin","checkIn": "2026-08-30","checkOut": "2026-09-04","images": ["https://a0.muscache.com/im/pictures/prohost-api/Hosting-28254684/original/e07f15eb-ebc9-48f6-bad6-186684fc1e8d.jpeg"],"aiListingSummary": "The Iconic Bloomhouse is a romantic escape in the heart of Austin, perfect for couples looking to unwind. With a stellar rating of 4.95 and over 270 reviews, guests rave about its charming ambiance and standout amenities.","aiFeatures": {"highlights": ["Romantic escape", "Guest favorite", "Iconic design", "Prime location in Austin"],"bestFor": ["couples", "romantic getaways", "special occasions"],"houseRules": ["no pets", "no smoking"]},"observedAt": "2026-08-14T06:20:30.844Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~airbnb-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"location":"Miami, FL","maxListings":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~airbnb-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"location":"Barcelona, Spain","checkIn":"2026-12-06","checkOut":"2026-12-11","adults":2,"maxListings":100}'
Apify CLI:
apify call scrapers_lat/airbnb-scraper \--input '{"location":"Miami, FL","withDetails":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per listing record returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons billed separately.
detailsis charged per listing enriched;ai_listing_summaryandai_featuresare each charged per listing only when the model returns usable output (paid Apify plans only). - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxListings.
FAQ and troubleshooting
A run returned 0 records. Why? The location or filter combination matched nothing, or the dates had no availability. Widen the filters or remove dates. Zero-result runs are not charged.
How do I get total stay prices instead of nightly?
Set checkIn and checkOut. The price then reflects the whole stay and priceQualifier shows the period.
Can I scrape a single listing?
Yes. Put the airbnb.com/rooms/... URL in startUrls. It is scraped directly with full details.
Which currency do prices use?
The currency you set (default USD). Airbnb converts prices to that currency.
Why are the AI fields null?
The AI add-ons are off by default and require a paid Apify plan. Enable withAiListingSummary or withAiFeatures on a paid plan to populate them.
Is this an official Airbnb tool? No. This actor is independent and has no affiliation with Airbnb. It reads only data that is publicly available on airbnb.com.
Related scrapers
- Booking Hotels Scraper: Booking.com hotel listings and prices.
- Booking Reviews Scraper: Booking.com guest reviews.
- Google Maps Scraper: Local place and business data.
- Google Maps Reviews Scraper: Reviews for any Google Maps place.
- Trustpilot Scraper: Company reviews and ratings.
- Meetup Scraper: Local events and groups.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Airbnb. Accesses only publicly available airbnb.com data.
