Airbnb Scraper - Listings, Prices & Coordinates avatar

Airbnb Scraper - Listings, Prices & Coordinates

Pricing

from $1.20 / 1,000 listing results

Go to Apify Store
Airbnb Scraper - Listings, Prices & Coordinates

Airbnb Scraper - Listings, Prices & Coordinates

Scrape Airbnb listings for any destination. Extract nightly prices, discounts, ratings, reviews, GPS coordinates and room types. Export JSON/CSV.

Pricing

from $1.20 / 1,000 listing results

Rating

0.0

(0)

Developer

Santhej Kallada

Santhej Kallada

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

4 days ago

Last modified

Share

Airbnb Scraper — Listings, Prices, Ratings & Coordinates

Scrape Airbnb search results for any destination and get clean, structured listing rows with total and nightly prices, discounts, ratings, review counts, GPS coordinates and photos. No API key, no login, no proxy setup. $1.50 per 1,000 listings.

What does Airbnb Scraper do?

Give it a city, region or country and it collects the listings Airbnb shows for that search, page by page, removing duplicates as it goes. Add check-in and check-out dates, guest counts, a price range or room types to scrape exactly the search a traveller would see.

  • Airbnb listings by destination: any city, region or country, up to 30 destinations per run.
  • Total and nightly prices: the price for the whole stay plus the nightly rate from Airbnb's price breakdown.
  • Discounts: original (strike-through) price and an isDiscounted flag.
  • Ratings and review counts: split into separate numeric fields.
  • GPS coordinates: latitude and longitude for every listing.
  • Property details: property type and area, bedrooms, badges such as "Guest favorite", and photo URLs.
  • Filters: dates, adults and children, minimum and maximum price, and room type.

Use cases

  • Short-term rental pricing: see what comparable listings charge for your dates.
  • Market supply analysis: count listings, property types and price bands per city.
  • Investment research: combine coordinates with price to map rates by neighbourhood.
  • Competitor tracking: watch a set of listings' prices and discounts over time with a scheduled run.

How to use Airbnb Scraper

  1. Enter one or more Destinations, e.g. Lisbon, Portugal or Austin, TX.
  2. Set Check-in date and Check-out date if you want prices for a specific stay, and the number of Adults and Children.
  3. Optionally add a Minimum price, Maximum price and Room types.
  4. Set Max listings per destination (Airbnb shows about 270 at most per search).
  5. Click Start, then export the dataset as JSON, CSV or Excel, or read it through the Apify API.

Example input

{
"locations": ["Lisbon, Portugal", "Porto, Portugal"],
"checkIn": "2027-04-12",
"checkOut": "2027-04-17",
"adults": 2,
"maxItems": 100,
"minPrice": 50,
"maxPrice": 400,
"roomTypes": ["Entire home/apt"]
}

Input configuration

FieldTypeDefaultDescription
locationsarray of stringsrequiredDestinations to search, up to 30 per run.
maxItemsinteger100Unique listings to collect per destination, 1 to 1,000. Airbnb caps a search at about 270, so higher values return everything available.
checkInstring (YYYY-MM-DD)emptyCheck-in date.
checkOutstring (YYYY-MM-DD)emptyCheck-out date.
adultsintegeremptyAdult guests, 1 to 16.
childrenintegeremptyChild guests, 0 to 15.
minPriceintegeremptyMinimum price, passed to Airbnb's own price filter.
maxPriceintegeremptyMaximum price, passed to Airbnb's own price filter.
roomTypesarray of stringsallAny of Entire home/apt, Private room, Shared room, Hotel room.
countrystringusTwo-letter country the request is made from. Controls the currency and language Airbnb returns (us = USD, English).
concurrencyinteger3Destinations processed at once, 1 to 6.
pageConcurrencyinteger6Result pages fetched in parallel per destination, 1 to 10.

maxItems applies per destination, so two destinations at 100 each can return up to 200 listings.

Example output

{
"listingId": "30180055",
"name": "Guida Mouraria Apartment",
"title": "Apartment in Santa Maria Maior",
"url": "https://www.airbnb.com/rooms/30180055",
"totalPrice": 585,
"priceDisplay": "$585",
"originalPrice": null,
"isDiscounted": false,
"priceQualifier": "for 5 nights",
"pricePerNight": 116.9,
"currency": "$",
"rating": 4.97,
"reviewCount": 453,
"ratingLabel": "4.97 (453)",
"isNew": false,
"latitude": 38.71292,
"longitude": -9.1342,
"roomType": "1 bedroom",
"badges": ["Guest favorite"],
"images": ["https://a0.muscache.com/im/pictures/..."],
"checkIn": "2027-04-12",
"checkOut": "2027-04-17",
"searchLocation": "Lisbon, Portugal",
"sourcePage": 1,
"scrapedAt": "2026-09-23T03:34:02.758Z"
}
FieldDescription
listingIdAirbnb's room ID, a stable key for tracking a listing over time.
nameListing name as the host wrote it.
titleProperty type and area, e.g. "Apartment in Santa Maria Maior".
urlDirect airbnb.com/rooms/… link.
totalPrice / priceDisplay / priceQualifierPrice for the stay as a number, as displayed ($585), and what it covers (for 5 nights).
originalPrice / isDiscountedStrike-through price and discount flag when the host is discounting.
pricePerNightNightly rate from Airbnb's price breakdown.
currencyCurrency symbol taken from the displayed price.
rating / reviewCount / ratingLabelAverage rating, number of reviews, and the raw label.
isNewtrue for listings with no reviews yet.
latitude / longitudeGPS coordinates.
roomTypeFirst detail line Airbnb shows, usually the bedroom count ("1 bedroom", "2 bedrooms").
badgesLabels Airbnb shows on the card, such as "Guest favorite".
imagesPhoto URLs.
checkIn / checkOutThe dates the price applies to.
searchLocation / sourcePage / scrapedAtThe destination searched, the results page and the collection time.

A run summary (listings, pages fetched, empty destinations, blocked pages) is saved to the run's key-value store as OUTPUT.

How much does Airbnb Scraper cost?

Pay per event. You pay for unique listings returned.

EventFree / Bronze planSilver planGold plan and above
Listing returned (unique)$0.0015$0.00135$0.0012
Zero-result destination (Airbnb returned no listings at all)$0.002$0.0018$0.0016
Actor start (once per run)$0.0005$0.00045$0.0004

Worked examples at Free/Bronze prices:

  • 1 destination, 60 listings: 60 × $0.0015 + $0.0005 = $0.0905
  • 2 destinations, 200 listings each: 400 × $0.0015 + $0.0005 = $0.6005
  • 1,000 listings across several destinations: $1.50 + $0.0005

Duplicates, blocked pages and redirected pages are never billed. There is no subscription.

Things worth knowing

  • Set dates when you compare prices. Without dates, Airbnb quotes each listing for dates it picks itself (shown in checkIn / checkOut), so prices are not like-for-like. With dates, every listing is priced for your stay.
  • Airbnb caps a search at roughly 270 listings (15 pages of 18). To go deeper, split a city into neighbourhoods or use price bands.
  • Price filters are Airbnb's own. minPrice / maxPrice are applied by Airbnb to its nightly price, which can differ slightly from the pricePerNight breakdown when a discount applies.
  • country controls currency and language. It defaults to us (USD, English). Set it to match the market you're researching.

FAQ

Do I need an Airbnb API key or account? No. There is nothing to register, no login and no cookies.

Are duplicate listings billed? No. Airbnb repeats listings across pages; results are de-duplicated on listingId and only unique listings are charged.

How many listings can I get per destination? Around 270, because Airbnb shows at most 15 pages of 18 per search. Split a city into neighbourhoods or price bands to go further.

What happens if Airbnb redirects or blocks a request? It is retried automatically, and a page that still fails is skipped without charge. Runs report blocked_pages in OUTPUT.

Can I get prices in a different currency? Yes. The country option decides where the request comes from, which determines the currency and language Airbnb returns.

Can I run this on a schedule? Yes. Save your input as a task and add an Apify schedule for recurring rate monitoring, or trigger it from your own pipeline through the API.

Support

Open an issue on the Actor's Issues tab and I'll take a look.