Airbnb Scraper — Listings, Prices, Ratings & Hosts avatar

Airbnb Scraper — Listings, Prices, Ratings & Hosts

Pricing

from $1.84 / 1,000 listings

Go to Apify Store
Airbnb Scraper — Listings, Prices, Ratings & Hosts

Airbnb Scraper — Listings, Prices, Ratings & Hosts

Scrape public Airbnb stays from Airbnb. Get listing, price, rating, host, location, amenity, and image data. Run with a location; no buyer API key, cookies, or Airbnb login. Pricing: $0.0019 per listing-item event on Free; Actor Start is $0.00005.

Pricing

from $1.84 / 1,000 listings

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Airbnb Scraper for Listings and Prices

Scrape public Airbnb stays by city, region, or address through Airbnb’s internal GraphQL API, with optional dates, adult counts, and nightly price filters. Run it from your Apify account with no API key, cookies, or Airbnb login; records include listing, price, rating, host, location, amenity, and image data.

  • Collect structured listing data for travel planning and market research.
  • Compare nightly and total stay prices, ratings, reviews, and amenities for rental analysis.
  • Find Superhost and Guest Favorite listings for partnership or lead-generation research.
  • Use GPS coordinates and image URLs in property and travel applications.

What you get

The Actor returns 26 structured fields for each listing. A field is null when Airbnb does not provide the value; amenities and images are empty arrays when no values are available.

Field familyFieldsTypeWhat it contains
Identitylisting_id, urlstringListing identifier and URL; null if unavailable
Listing descriptiontitle, namestringListing context and name; null when unavailable
Listing descriptionroom_typestringRoom type; comes only from detail-page enrichment, otherwise null
Prices and stayprice_per_night, price_total, price_originalnumberNightly, total, and original prices; null when unavailable
Prices and staystay_nights, currencyinteger; stringStay length can be null; currency is USD
Ratings and badgesrating, review_count, is_superhost, is_guest_favoritenumber; integer; booleanRating and review count can be null; badge fields are boolean
Hosthost_name, host_idstringHost name and identifier; come only from detail-page enrichment, otherwise null
Spaceperson_capacitynumberGuest capacity; comes only from detail-page enrichment, otherwise null
Spacebedrooms, beds, bathroomsstringText from the search card, for example "1 bedroom"; can be null
Locationlatitude, longitudenumberListing GPS coordinates; values can be null
Amenities and mediaamenities, imagesarray of stringsAmenity names (detail-page enrichment only) and image URLs; empty when no values are available
Run contextsearch_location, scraped_atstring; ISO 8601 stringSearched location and record timestamp; populated for successful records

With enrichDetails, the Actor also fetches listing detail pages for host, room type, capacity, and amenity information.

Sample output

The sample is shortened to two image URLs.

{
"listing_id": "1265043383778376281",
"url": "https://www.airbnb.com/rooms/1265043383778376281",
"title": "Hotel Augustin - Astotel",
"name": "Hotel Augustin - Astotel, Twin room",
"room_type": "Private room",
"price_per_night": 118.66, "price_total": null, "price_original": null, "stay_nights": 2, "currency": "USD",
"rating": 4.89, "review_count": 622, "is_superhost": false, "is_guest_favorite": false,
"host_name": null, "host_id": null, "bedrooms": null, "beds": null, "bathrooms": null, "person_capacity": 2,
"latitude": 48.8754, "longitude": 2.3183,
"amenities": ["Breakfast for purchase", "Air conditioning", "Wifi", "Elevator", "Dedicated workspace", "TV", "Hair dryer", "Luggage dropoff allowed", "Toiletries"],
"images": ["https://a0.muscache.com/im/pictures/BnbProperty/BnbProperty-1690121189016553584/original/dde5590c-3344-47ee-a880-bbe64dbdb86d.jpeg", "https://a0.muscache.com/im/pictures/BnbProperty/BnbProperty-1690121189016553584/original/04c9815d-231a-497a-a125-319ba01d667c.jpeg"],
"search_location": "Paris, France", "scraped_at": "2026-10-29T04:44:48.888758+00:00"
}

Pricing

The Actor uses pay-per-event billing. listing-item represents one returned listing with price, rating, host, beds, amenities, coordinates, and images. apify-actor-start is charged once per GB of run memory, with a minimum of one event.

You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.

EventBilling unitFree plan
listing-itemOne returned Airbnb listing$0.0019 per event on Free
apify-actor-startOne event per GB of run memory, minimum one event$0.00005 per event on Free

listing-item is charged after the corresponding records are successfully pushed. apify-actor-start is charged when the Actor starts running.

At Free-plan rates, 1,000 x $0.0019 = $1.90 and 10,000 x $0.0019 = $19.00 for listing-item events.

On the Free plan, the $5 monthly platform usage credit covers 2,631 listing-item results plus one minimum apify-actor-start event, totaling $4.99895 on Free.

How to use

  1. Open the Actor in your Apify account.
  2. Enter the required location, such as Paris, France, a city, region, or address.
  3. Add optional checkIn and checkOut dates in YYYY-MM-DD format for stay prices.
  4. Set adults, priceMin, priceMax, and a positive maxItems value to narrow the search.
  5. Enable enrichDetails for host names, room type, capacity, and amenities; use a residential proxy for detail enrichment at scale.
  6. Run the Actor and inspect the dataset. Repeat through Apify Schedules, starting with a daily schedule for listing or price monitoring.

Example input:

{
"location": "Paris, France",
"adults": 2,
"priceMin": 80,
"priceMax": 250,
"maxItems": 20,
"enrichDetails": true,
"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
locationRequired city, region, or address passed to Airbnb searchRequired
checkInOptional check-in date in YYYY-MM-DD; used with checkOut for stay pricingNot set
checkOutOptional check-out date in YYYY-MM-DDNot set
adultsAdult guests passed to search; constrained to 1–161
priceMinMinimum nightly price in USDNot set
priceMaxMaximum nightly price in USDNot set
maxItemsMaximum listings to push; default is 100100
enrichDetailsFetches detail pages for host, room type, capacity, and amenitiestrue
proxyConfigurationConfigures proxy use for search and detail requestsuseApifyProxy: true, group RESIDENTIAL
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat you seeWhat to do
Airbnb limits results for a location searchApproximately 270–300 available listings per searchSearch by neighborhood or vary the date range
maxItems is omittedThe default maximum of 100 listings is usedSet a positive maxItems value
A search page has no resultsPagination stops; an empty first page produces no recordsCheck the location and reduce restrictive filters
enrichDetails is falseDetail fetching is skipped; host_name, host_id, room_type, person_capacity, and amenities stay null or emptyEnable enrichDetails when needed
A detail page cannot be fetchedThe search-level record is still pushed; detail fields can be unavailableUse residential proxy configuration for enrichment at scale
A search page is blockedThe Actor retries with a new session and proxy URL; the run stops after 3 attempts, and a blocked first page produces no recordsConfigure a residential proxy and review logs
A later page has a search or transport errorRecords from completed earlier pages have already been pushed to the dataset; the later page is incompleteReview logs and retry with the same or adjusted input
Airbnb does not provide a valueFields such as price_total, host, or space fields can be nullUse available fields or try suitable dates and filters

FAQ

How much does it cost to scrape Airbnb stays?

On the Free plan, each listing-item event costs $0.0019 and each apify-actor-start event costs $0.00005. 1,000 listing-item events cost $1.90 on Free.

Why did the Actor return an empty dataset?

The search may have no results for the location, dates, guest count, or price range. Broaden the location, remove restrictive filters, or run without dates.

What should I do if the Actor is not working?

Check the run logs for a blocked search page, Airbnb fetch error, or transport error. Configure a residential proxy for detail enrichment at scale and rerun if needed.

Why are host_name or amenities missing?

They come only from detail-page enrichment and can be unavailable when enrichDetails is disabled or a detail page cannot be fetched.

The Actor extracts data exposed through Airbnb’s public search and listing experience through that same API. Whether a particular use is legal or allowed depends on your use case, applicable law, and the source’s terms; review those requirements before using the data.

Rate this Actor

If Airbnb Scraper saved you time, please rate it on the Apify Store. A rating takes a few seconds and helps other people find a working scraper.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields

⌂ 换网址