Airbnb Scraper — Vacation Rental Listings avatar

Airbnb Scraper — Vacation Rental Listings

Pricing

from $0.75 / 1,000 listings

Go to Apify Store
Airbnb Scraper — Vacation Rental Listings

Airbnb Scraper — Vacation Rental Listings

[💰 $0.75 / 1K] Extract Airbnb stay listings by city or search URL. Get the total price for your dates, GPS coordinates, ratings and review counts, host and Superhost details, room breakdown, amenity categories and the full photo gallery — up to 39 fields per listing. Export to JSON, CSV or Excel.

Pricing

from $0.75 / 1,000 listings

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Pull Airbnb stay listings at scale — the total price for the dates you search, GPS coordinates, ratings and review counts, host and Superhost signals, the room breakdown and the full photo gallery, up to 39 fields on every listing. Built for short-term-rental investors, revenue and pricing managers, and travel analytics teams who need one clean, analysis-ready row per property without babysitting a scraper through Airbnb's search pages.

Why This Scraper?

  • GPS coordinates on 270 of 270 listings — measured across five cities on three continents (London, Paris, Austin, Tokyo, Sydney) and three room types. Latitude and longitude ride on the search row itself, so you can map a whole market without a second request per property.
  • The price is the total for your dates, never a teaser rate — every row carries the number, the display label it came from, and the exact checkIn / checkOut window it covers. All 270 sample rows came back priced, labelled and dated.
  • 39 fields per listing across 6 groups — 18 land on the search row; enrichDetails adds 21 more, including the full description, the plain-words room breakdown (["2 guests", "1 bedroom", "1 bed", "1 bath"]) and maxGuests as a real integer.
  • Ratings you can average, not a display string — a numeric rating on the 5-point scale (4.34 to 5.00 across the sample) plus an integer review count, where a brand-new listing returns null instead of a fake 0-star score that would quietly drag your market averages down.
  • Host and Superhost signals on 45 of 45 detail records — who hosts it, years hosting, Superhost status, their own review count, and the Guest favorite badge.
  • The complete photo gallery — up to 167 images on one listing — against the 6 thumbnails a search card shows, plus 5 to 13 amenity categories per property.
  • 11 distinct property-type labels and 4 room types in a 45-listing sample — Tiny home, Entire rental unit, Room in hotel and the rest arrive as readable text, and an unrecognised code is dropped rather than dumped into your spreadsheet.
  • 58 automated checks run against live Airbnb pages before every release — the build fails if a listing ID stops resolving to a real room page, a rating drifts off the 5-point scale, or a price ever ships without the label that says which currency it is in.
  • 100 listings in 12.5 seconds — measured end to end on a cloud run, so a whole-city scan finishes while you are still reading the input form.

Use Cases

Short-Term Rental Investment

  • Underwrite a market from real total-stay prices, with coordinates precise enough to score by street, not by city.
  • Measure Superhost and Guest favorite density in a neighbourhood before buying into it.
  • Track supply by room type — entire home, private room, shared room, hotel room — to see what a market is actually made of.
  • Spot brand-new inventory: listings flagged as new with zero reviews are the ones that just came online.

Revenue & Pricing Management

  • Benchmark your own total price for the same dates against every competing listing in your area.
  • Segment comparables by guest capacity and bed count so you compare like with like.
  • Re-run on a schedule and diff on price to watch how the set around you moves week to week.
  • Separate rated inventory from unrated new arrivals before computing an average rate.

Market Research & Analytics

  • Build price distributions per city and room type across as many markets as you need.
  • Compare amenity category mix and property-type mix between neighbourhoods.
  • Quantify review depth — how many listings in a market carry hundreds of reviews versus none.
  • Run the same search across several cities to compare markets on identical terms.

Data Enrichment & Integration

  • Join to your own property records on the listing ID, which is stable and resolves to a live page.
  • Pull the host name, photo and hosting history into a CRM or outreach list.
  • Push straight into Google Sheets, a warehouse, or a BI dashboard — every row is flat.
  • Feed descriptions, highlights and photo galleries into search, tagging or ML pipelines.

Travel Content & Product

  • Build city guides and map views from coordinates, photos and ratings already in the row.
  • Power a comparison or metasearch surface with fresh listing names, prices and images.
  • Assemble editorial round-ups — highest-rated, most photographed, best-hosted — with no manual collection.

Getting Started

Simplest run

{
"location": "London",
"maxItems": 100
}

Paste a filtered search URL from the site

Set your filters on the site, then copy the address bar URL — every filter in it is carried through.

{
"searchUrls": [
"https://www.airbnb.com/s/London/homes"
],
"maxItems": 335
}

Everything, with full details

{
"searchUrls": [
"https://www.airbnb.com/s/London/homes"
],
"maxItems": 335,
"enrichDetails": true
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarrayAirbnb.com search result URLs. Set your filters on Airbnb.com, then paste the address bar URL here. Overrides the individual filters below when provided.
locationstringLondonArea to search. Used only when Search URLs is empty.
maxItemsinteger100Maximum listings per search URL (0 = collect everything each search returns). Airbnb.com pages through at most 335 listings per search, so use several narrower searches to collect more.

Options

ParameterTypeDefaultDescription
enrichDetailsbooleanfalseAdd 21 extra fields per listing. Adds one request per listing and is billed at the higher rate.
concurrencyinteger8How many requests to run in parallel. Lower this if you see failures.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every listing is one dataset row. Enabling enrichDetails adds 21 further fields to the same row — there is no second record type to join.

This example is a real captured listing, with the host's name and profile photo replaced by placeholders and the photo and amenity arrays shortened for readability. Your dataset contains the full published values.

{
"id": "40786965",
"url": "https://www.airbnb.com/rooms/40786965",
"name": "Modern Cabin Retreat, Pool, Hot Tub, Goats & Emus!",
"headline": "Tiny home in Austin",
"listingFacts": ["1 bedroom", "1 queen bed", "1 bath"],
"badges": ["Guest favorite"],
"ratingSummary": "4.95 (468)",
"latitude": 30.20062,
"longitude": -97.93633,
"photos": [
"https://a0.muscache.com/im/pictures/a9ad0fe0-8b73-4a05-b818-d318a0cac50d.jpg",
"https://a0.muscache.com/im/pictures/c8231241-2486-43b8-84c4-ee3d54e79270.jpg"
],
"price": 665,
"priceLabel": "€665 total",
"priceQualifier": "total",
"priceBasis": "Total for the stay",
"priceNote": null,
"checkIn": "2026-08-23T00:00:00",
"checkOut": "2026-08-28T00:00:00",
"hotelPropertyId": null,
"canonicalUrl": "https://www.airbnb.com/rooms/40786965",
"propertyType": "Tiny home",
"roomType": "Entire home",
"maxGuests": 2,
"description": "Stay with us in our beautiful modern cabin at Eco Ranch. Relax on 85 acres of beautiful Texas Hill Country just 18 miles from downtown Austin. This private modern cabin offers 350 sq ft with a queen bed, full kitchen, full bathroom, and cozy living space.",
"roomBreakdown": ["2 guests", "1 bedroom", "1 bed", "1 bath"],
"propertySummary": "Tiny home in Austin, Texas, United States",
"highlights": ["Top 10% of homes", "Self check-in", "Beautiful area"],
"rating": 4.95,
"reviewsCount": 468,
"isNewListing": false,
"isGuestFavorite": true,
"city": "Austin",
"area": "Austin",
"hostLabel": "Hosted by [host name]",
"hostFacts": ["Superhost", "7 years hosting"],
"isSuperhost": true,
"hostPhoto": "https://a0.muscache.com/im/pictures/user/[host-photo].jpg",
"hostReviewsCount": 490,
"photoGallery": [
"https://a0.muscache.com/im/pictures/a9ad0fe0-8b73-4a05-b818-d318a0cac50d.jpg",
"https://a0.muscache.com/im/pictures/45cae55a-a445-4e7d-a346-85cd4fe9903e.jpg",
"https://a0.muscache.com/im/pictures/610b5cde-d67e-404f-83dc-4c353eaa353a.jpg"
],
"amenityGroups": [
"Scenic views", "Bathroom", "Bedroom and laundry", "Entertainment",
"Heating and cooling", "Kitchen and dining", "Outdoor", "Parking and facilities"
]
}

Core Fields

FieldTypeDescription
idstringListing ID
urlstringListing URL
namestringListing name
headlinestringProperty type and area
listingFactsarrayCard facts
badgesarrayBadges
ratingSummarystringRating summary

Price, Dates, Location & Photos

FieldTypeDescription
pricenumberPrice
priceLabelstringPrice as displayed
priceQualifierstringPrice qualifier
priceBasisstringWhat the price covers
priceNotestringPrice note
checkInstringCheck-in
checkOutstringCheck-out
latitudenumberLatitude
longitudenumberLongitude
photosarrayCard photos
hotelPropertyIdstringHotel property ID

With enrichDetails enabled

FieldTypeDescription
canonicalUrlstringCanonical listing URL
propertyTypestringProperty type
roomTypestringRoom type
maxGuestsnumberMax guests
descriptionstringDescription
roomBreakdownarrayRoom breakdown
propertySummarystringProperty summary
highlightsarrayHighlights
ratingnumberRating
reviewsCountnumberReviews
isNewListingbooleanNew listing
isGuestFavoritebooleanGuest favourite
citystringCity
areastringArea
hostLabelstringHost
hostFactsarrayHost facts
isSuperhostbooleanSuperhost
hostPhotostringHost photo
hostReviewsCountnumberHost reviews
photoGalleryarrayPhoto gallery
amenityGroupsarrayAmenity categories

Tips for Best Results

  • Plan around the 335-per-search ceiling — Airbnb pages through at most about 335 listings for any one search, no matter how many match it. To cover a dense city, split it into narrower searches — one neighbourhood, one price band, or one room type at a time — and paste every URL into searchUrls. The run de-duplicates across them, so a listing that matches two searches arrives once and is billed once.
  • Read the currency off priceLabel, not off price — Airbnb quotes prices in the currency it serves your run, so price is a bare number and priceLabel ("€665 total") is the only record inside the row of which currency that number is in. Keep both, or normalise on the label.
  • price covers the whole stay, not one nightpriceBasis says so explicitly and checkIn / checkOut give the exact date range it was quoted for. Divide by the number of nights before comparing against a nightly rate from anywhere else.
  • Set your filters on Airbnb first, then copy the address bar — dates, guest count, price band, room type and amenity filters are all encoded in the URL and carried through, so even a heavily filtered search needs no extra configuration here.
  • Turn on enrichDetails for anything host- or review-related — the numeric rating, review count, Superhost status, years hosting, full description and complete photo gallery exist only on the enriched row. A search row carries the rating as a display string such as 4.95 (468) or New.
  • Treat a null rating as "no reviews yet", not as missing data — new listings deliberately return null rather than a 0 that would look like a zero-star property; isNewListing and reviewsCount confirm which it is.
  • Pin your dates in the search URL for a price time series — when the URL does not specify them, checkIn and checkOut follow Airbnb's own rolling default window and move between runs, so week-over-week prices would not be comparing the same stay.

Pricing

From $0.75 per 1,000 results (search only) or from $1.75 per 1,000 results (with full details).

ResultsSearch OnlyWith Full Details
100$0.075$0.175
1,000$0.75$1.75
10,000$7.50$17.50
100,000$75.00$175.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planSearch OnlyWith Full Details
No discount$0.90$2.10
Bronze$0.85$2.00
Silver$0.80$1.85
Gold and above$0.75$1.75

Per 1,000 results.

A "result" is any listing row in the output dataset. When you run several searches at once, a listing matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same listing. The full-details rate applies only to rows that actually came back enriched — if a listing's detail record is unavailable, the row is still delivered and charged at the search-only rate. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Airbnb.com or its operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research and analytics. You are responsible for complying with applicable laws and with Airbnb.com's Terms of Service.

Results may include personal data such as contact details. Treat them accordingly: do not use them for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them.