Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

Pay per event

Go to Apify Store
Airbnb Listings Scraper

Airbnb Listings Scraper

Airbnb search results with the real total price for your dates, guests and currency (full price breakdown), rating, reviews, coordinates and photos. Goes past the ~270-result limit by splitting the map. Optional details: capacity, rooms, amenities.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Atalaia

Atalaia

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape Airbnb search results for any city, region or neighbourhood and get the real total price for your exact dates, guests and currency, with Airbnb's own price breakdown (nightly rate, discounts, fees, taxes), plus rating, review count, coordinates, photos and badges. For big cities it goes past Airbnb's ~270-results-per-search limit by splitting the map into smaller areas. With details turned on, you also get guest capacity, bedrooms, beds, bathrooms, the full amenity list, the description, the house rules and the cancellation policy for your dates.

No Airbnb account is needed, and only public listing data is returned.

What you can use it for

  • Price research for specific dates: compare what a weekend in Lisbon really costs against a weekday stay, in EUR, USD or BRL.
  • Market analysis: supply, room types, ratings and price levels across cities or neighbourhoods.
  • Revenue management: track competitor pricing for the same dates and guest count.
  • Travel apps and dashboards: coordinates, photos and prices ready to plot on a map.

Input

FieldDefaultNotes
locationsrequirede.g. "Lisbon", "Rio de Janeiro", "Porto, Portugal". Accents are fine.
checkIn / checkOuttoday+14 / check-in+2YYYY-MM-DD
adults, children, pets2, 0, 0With pets, only pet-friendly listings are returned.
currencyUSDAny currency Airbnb supports
localeenpt, pt-PT, es, fr, de, it, ja, ko... Changes the language of labels, amenities and translated names.
minPrice, maxPrice–Per night, in currency (Airbnb's price filter)
roomTypeanyentire_home, private_room
maxResultsPerLocation100Up to 2,000 (see limits)
includeDetailsfalseOpens each listing page (extra event)
proxyConfigurationApify ProxySee "About the prices" below

Example:

{
"locations": ["Lisbon", "Rio de Janeiro"],
"checkIn": "2026-10-16",
"checkOut": "2026-10-18",
"adults": 2,
"currency": "EUR",
"maxResultsPerLocation": 200,
"includeDetails": false
}

Output

One item per listing:

{
"location": "Lisbon",
"searchLocation": "Lisbon, Portugal",
"listingId": "22606233",
"url": "https://www.airbnb.com/rooms/22606233",
"name": "Apartments Castelo Flat B (ground floor)",
"cardTitle": "Apartment in Lisbon",
"roomType": "entire_home",
"latitude": 38.7127,
"longitude": -9.1353,
"rating": 4.67,
"reviewCount": 419,
"isSuperhost": false,
"isGuestFavorite": false,
"isNew": false,
"freeCancellation": null,
"pricePerNight": 108,
"totalPrice": 216,
"totalPricePerNight": 108,
"originalTotalPrice": null,
"priceQualifier": "for 2 nights",
"priceIncludesTaxes": false,
"priceText": "€216 for 2 nights",
"priceBreakdown": [{ "label": "2 nights x €108.00", "amount": 216, "text": "€216.00" }],
"currency": "EUR",
"checkIn": "2026-10-13",
"checkOut": "2026-10-15",
"nights": 2,
"adults": 2,
"children": 0,
"pets": 0,
"bedInfo": ["1 bedroom", "2 beds"],
"images": ["https://a0.muscache.com/im/pictures/miso/Hosting-22606233/original/8a5d4ac1-....jpeg"],
"scrapedAt": "2026-09-29T21:37:34.229Z"
}

With includeDetails: true, each item also has:

{
"propertyType": "Entire rental unit",
"personCapacity": 3,
"bedrooms": 1,
"beds": 2,
"bathrooms": 1,
"amenities": ["Hair dryer", "Shampoo", "Hot water", "Free washer – In unit", "Wifi", "..."],
"description": "Nice apartment located in the historic center, halfway between ...",
"houseRules": ["3 guests maximum", "No pets", "No parties or events", "No smoking"],
"checkInTime": "Check-in after 3:00 PM",
"checkOutTime": "Checkout before 11:00 AM",
"cancellationPolicy": "Free cancellation before October 15. Cancel before check-in on October 20 for a partial refund.",
"cancellationMilestones": [
{ "refundType": "Full refund", "when": "Before Oct 15 3:00 PM", "refundTerm": "Get back 100% of what you paid." },
{ "refundType": "Partial refund", "when": "Before Oct 20 3:00 PM", "refundTerm": "Get back 50% of every night. No refund of the service fee." }
],
"detailsError": null
}

Locations that cannot be processed come back as { "location": ..., "error": "location_not_found" | "blocked" | "not_processed", "errorMessage": ... } and are not charged.

About the prices

  • totalPrice is the price Airbnb shows for the whole stay, for your dates, guests and currency. It is taken from Airbnb's own "Price details" (to the cent), not from the rounded number on the card.
  • priceQualifier and priceIncludesTaxes tell you what that total covers. priceBreakdown lists every line: nights × rate, discounts, cleaning or resort fees, and taxes.
  • Taxes: whether Airbnb shows totals with or without taxes depends on the Airbnb site for your locale and on the visitor's country. In our tests with the default proxy, Lisbon (pt-PT), São Paulo and Rio (pt), Paris (fr), Barcelona and Mexico City (es) came with taxes, while New York, Bali and London (en) and Tokyo (ja) came before taxes. priceIncludesTaxes tells you which one you got for each listing. For totals as locals see them, use the destination's language as locale, or a residential proxy in the destination's country.

Pricing

Pay per event:

EventPrice
listing: one listing returnedUS$0.003
listing-details: extra per listing when includeDetails is on and the details were retrievedUS$0.003

No start fee. Error items are free. Set Maximum cost per run in the run options to cap spending. When the cap is reached, the run stops cleanly, marks the remaining work as not_processed (free) and ends as SUCCEEDED.

Examples: 1,000 listings cost US$3; 1,000 listings with details cost US$6.

Limits

  • ~270 results per search: Airbnb shows at most 15 pages of 18 listings. Above that, the Actor splits the map into quadrants (recursively for dense areas) and dedupes by listing ID. How many listings exist for your dates and filters is up to Airbnb. For a small town, or dates that are almost sold out, you get fewer than maxResultsPerLocation.
  • Cancellation policy comes only with includeDetails. Without it, use freeCancellation, which is in every item: true when the search card shows "Free cancellation", and null when the card says nothing (that does not mean non-refundable).
  • Hotels and multi-room properties: the cancellation policy depends on the room chosen, so Airbnb shows none on the listing page and cancellationPolicy is null. Their price is for the cheapest available room.
  • Superhost: search cards show only one badge, so a Guest Favorite listing may hide its Superhost badge. includeDetails gives the exact value.
  • Coordinates are approximate: Airbnb never publishes exact addresses, and this Actor doesn't try to derive them.
  • No personal data: host names, host photos, host profiles, reviewer names and review texts are not returned. Phone numbers, e-mails and links are removed from descriptions.
  • A location Airbnb does not recognise returns a free location_not_found error item. Ambiguous names can match a different place. Check searchLocation, and add the country if needed ("Porto, Portugal").