Airbnb Search Scraper avatar

Airbnb Search Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Airbnb Search Scraper

Airbnb Search Scraper

Search Airbnb rentals by city with filters for dates, guests, price range and room type. Extract 35+ fields per listing: nightly prices, fee breakdowns, amenities, ratings, host info, GPS coordinates, photos and cancellation policies. Supports 35+ Airbnb markets for analysis and monitoring.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

11 days ago

Last modified

Share

Airbnb Rental Search Scraper

by SilentFlow

Extract Airbnb rental listings by location with full details: prices, amenities, ratings, host info, coordinates, photos, and cancellation policies.

How it works

How it works

✨ Why use this scraper?

Looking for rental data across multiple cities? Tired of copying prices one by one from Airbnb? Need accurate nightly rates with fee breakdowns?

  • 🔍 No login required: Works without an Airbnb account
  • 🏨 Complete listing data: Get 35+ fields per listing including description, amenities, fees, cancellation policies, host info, and photos
  • 🌍 35+ markets: Supports all major Airbnb domains with locale-specific pricing
  • 📅 Date-aware pricing: Add check-in/check-out dates to get accurate nightly rates and fee breakdowns
  • 🎯 Flexible filters: Filter by price range, room type, bedrooms, beds, bathrooms, and number of guests
  • 📋 Full detail page data: Every listing includes description, amenities, cancellation policy, and host info automatically

🎯 Use cases

TeamWhat they build
Travel platformsCompare rental options across destinations with real pricing data
Market researchersAnalyze nightly prices, occupancy patterns, and room types by city
Real estate analystsBenchmark short-term rental income vs. long-term rental yields
Revenue managersTrack competitor pricing across dates and seasons to optimize rates
Data teamsBuild rental market datasets with 35+ fields for investment models
Tourism plannersMap accommodation supply, pricing trends, and capacity in emerging destinations

📥 Input parameters

Input mode

ParameterTypeDescription
modestringsearchUrl (paste Airbnb search URLs), search (search by location), or urls (extract specific listings)

Search URLs

ParameterTypeDescription
searchUrlsURL[]Paste Airbnb search result URLs directly (e.g. from your browser). Supports airbnb.com, airbnb.fr, airbnb.es, etc.

Search by Location

ParameterTypeDefaultDescription
locationsstring[]["Paris"]Cities, regions, or landmarks to search (e.g. Paris, Côte d'Azur, Rome)

Listing URLs

ParameterTypeDescription
listingUrlsURL[]Direct Airbnb listing URLs. Works with airbnb.com, airbnb.fr, airbnb.es, etc.

Dates & Guests

ParameterTypeDefaultDescription
checkInstring,Check-in date in YYYY-MM-DD format. Leave empty to search without dates
checkOutstring,Check-out date in YYYY-MM-DD format. Required if check-in is set
adultsinteger1Number of adults (1–16)
childreninteger0Number of children ages 2–12
infantsinteger0Number of infants under 2
petsinteger0Number of pets

Filters

ParameterTypeDefaultDescription
priceMininteger,Minimum nightly price in the selected currency
priceMaxinteger,Maximum nightly price in the selected currency
currencystringUSDPrice currency (USD, EUR, GBP, JPY, ...)
roomTypesstring[],Filter by room type: Entire home/apt, Private room, Hotel room, Shared room
minBedroomsinteger,Minimum number of bedrooms
minBedsinteger,Minimum number of beds
minBathroomsinteger,Minimum number of bathrooms

Options

ParameterTypeDefaultDescription
localestringenAirbnb market/language (e.g. fr, es, de, en-gb). Determines domain and language of results
includeDetailsbooleantrueVisit each listing's detail page for full description, amenities, cancellation policy, and host info
maxListingsinteger0 (unlimited)Maximum total listings to collect

📊 Output data

Listing example

{
"listingId": "1476693113851393112",
"url": "https://www.airbnb.fr/rooms/1476693113851393112",
"name": "Oasis urbaine, charmant et reposant",
"title": "Appartement · Paris",
"description": "Séjournez dans un appartement paisible et parfaitement situé dans le 11e arrondissement...",
"roomType": "Entire home/apt",
"propertyType": "Apartment",
"bedrooms": 1,
"beds": 1,
"bathrooms": 1,
"maxGuests": 2,
"amenities": ["Wifi", "Kitchen", "Washer", "Air conditioning", "Iron", "Hair dryer"],
"city": "Paris",
"neighborhood": "Paris, Île-de-France, France",
"latitude": 48.86664,
"longitude": 2.36973,
"searchCity": "Paris",
"hostName": "Yann",
"hostId": "50670964",
"hostUrl": "https://www.airbnb.fr/users/show/50670964",
"isSuperhost": true,
"isProHost": false,
"hostListings": 3,
"rating": 4.97,
"reviewCount": 185,
"hasGuestFavorite": true,
"badges": ["Guest favorite"],
"price": "€ 98 per night",
"pricePerNight": "€98",
"pricePerNightValue": 98,
"priceTotal": 588,
"priceTotalDisplay": "€588 total",
"cleaningFee": 35,
"serviceFee": 52,
"taxes": "€62",
"numberOfNights": 6,
"currency": "EUR",
"hasFlexibleCancellation": false,
"cancellationPolicy": "Free cancellation before Apr 3",
"checkIn": "2025-04-09",
"checkOut": "2025-04-15",
"thumbnail": "https://a0.muscache.com/im/pictures/hosting/...",
"photos": [
"https://a0.muscache.com/im/pictures/hosting/Hosting-photo-1.jpg",
"https://a0.muscache.com/im/pictures/hosting/Hosting-photo-2.jpg"
],
"scrapedAt": "2025-04-01T10:23:45Z"
}

🗂️ Data fields

CategoryFields
IdentitylistingId, url, name, title
PropertyroomType, propertyType, bedrooms, beds, bathrooms, maxGuests
Amenitiesamenities (full list, 40+ items when available)
Locationcity, neighborhood, country, latitude, longitude, searchCity
HosthostName, hostId, hostUrl, isSuperhost, isProHost, hostListings
Ratingsrating, reviewCount, hasGuestFavorite, badges
Priceprice, pricePerNight, pricePerNightValue, priceTotal, priceTotalDisplay
Fee breakdowncleaningFee, serviceFee, taxes, originalPrice, numberOfNights, currency
CancellationhasFlexibleCancellation, cancellationPolicy
DatescheckIn, checkOut
Mediathumbnail, photos
Metadescription, scrapedAt

🚀 Examples

Search rentals in a city

{
"mode": "search",
"locations": ["Paris"],
"locale": "fr",
"currency": "EUR",
"adults": 2,
"maxListings": 50
}

Search with dates for accurate pricing

{
"mode": "search",
"locations": ["Barcelona"],
"locale": "es",
"currency": "EUR",
"checkIn": "2025-07-15",
"checkOut": "2025-07-22",
"adults": 2,
"priceMin": 50,
"priceMax": 200,
"roomTypes": ["Entire home/apt"]
}

Extract specific listing URLs

{
"mode": "urls",
"listingUrls": [
{"url": "https://www.airbnb.com/rooms/12345678"},
{"url": "https://www.airbnb.fr/rooms/87654321"}
],
"checkIn": "2025-08-01",
"checkOut": "2025-08-07",
"adults": 4
}

Multi-city market research

{
"mode": "search",
"locations": ["Amsterdam", "Brussels", "Antwerp"],
"locale": "nl",
"currency": "EUR",
"maxListings": 100
}

💻 Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/airbnb-search-scraper").call(run_input={
"mode": "search",
"locations": ["Paris"],
"locale": "fr",
"currency": "EUR",
"checkIn": "2025-07-15",
"checkOut": "2025-07-22",
"adults": 2,
"maxListings": 50
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{listing['name']}: €{listing.get('pricePerNightValue', 'N/A')}/night, {listing.get('rating', 'N/A')}⭐")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('silentflow/airbnb-search-scraper').call({
mode: 'search',
locations: ['Barcelona'],
locale: 'es',
currency: 'EUR',
checkIn: '2025-07-15',
checkOut: '2025-07-22',
adults: 2,
priceMax: 150
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} listings`);
items.forEach(l => console.log(`${l.name}: €${l.pricePerNightValue}/night`));

cURL / API

curl "https://api.apify.com/v2/acts/silentflow~airbnb-search-scraper/runs" \
-d '{"mode":"search","locations":["Paris"],"locale":"fr","currency":"EUR","adults":2,"maxListings":50}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"

📈 Performance & limits

MetricValue
Listings per page~18
Enrichment speed~2 listings/second
Max pages per location200
Supported markets35+ locales

💡 Tips for best results

  1. Add dates for accurate prices: Without check-in/check-out dates, price totals and fee breakdowns are not available
  2. Start with maxListings: 50: Test your filters before running large scrapes
  3. Match locale to destination: Use fr for France (airbnb.fr), es for Spain (airbnb.es), ensures results and prices are in the right language and currency
  4. Large cities: Paris, London, New York can have 100+ pages, use priceMin/priceMax or roomTypes to narrow results

❓ FAQ

Q: Do I need an Airbnb account to use this scraper? A: No. The scraper works without any credentials.

Q: Why are cleaning fees and service fees missing? A: Fee breakdowns are only available when check-in and check-out dates are provided. Add dates to your input to get full price details.

Q: What data is included for each listing? A: Every listing includes full detail page data: description, amenities, cancellation policy, host info, photos, and more. There is no reduced mode. You always get the complete dataset.

Q: How many listings can I scrape per location? A: Airbnb typically shows up to ~3,600 listings per search (200 pages × 18 listings). Use price or room type filters to narrow results for large cities.

📬 Support

Need something this scraper does not do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations

Check out our other scrapers: SilentFlow on Apify