
Airbnb Listings Finder
Pricing
$100.00 / 1,000 results
Go to Apify Store

Airbnb Listings Finder
Under maintenanceA comprehensive Crawlee-based Apify actor that extracts detailed Airbnb listing data including property details, host information, amenities, reviews, and house rules.
0.0 (0)
Pricing
$100.00 / 1,000 results
1
1
1
Last modified
18 days ago
A Crawlee-based Apify actor that extracts Airbnb listing URLs based on a specified location.
Features
- π Search Airbnb listings by location
- π Extract specified number of listing URLs
- π Ready to deploy on Apify platform
- π Handles pagination automatically
- π Returns structured data with listing URLs and IDs
Input Parameters
The actor accepts the following input parameters via API POST request:
{"location": "Miami, FL","numberOfListings": 10}
Parameters
- location (required): The location to search for Airbnb listings (e.g., "Miami, FL", "New York, NY", "Paris, France")
- numberOfListings (required): Maximum number of listing URLs to extract (1-100)
Output
The actor returns an array of detailed listing objects with the following structure:
[{"listingId": "12345678","listingUrl": "https://www.airbnb.com/rooms/12345678","location": "Miami, FL","title": "Beautiful Beachfront Apartment","description": "Full description of the property...","images": ["https://a0.muscache.com/im/pictures/...","https://a0.muscache.com/im/pictures/..."],"hostProfileId": "123456","maxGuests": 4,"bedrooms": 2,"bathrooms": 1.5,"isGuestFavorite": true,"isSuperhost": true}]
Data Fields
- listingId: Unique Airbnb listing identifier
- listingUrl: Direct URL to the listing page
- location: Search location provided as input
- title: Property title/name
- description: Full property description
- images: Array of all property image URLs
- hostProfileId: Host's Airbnb user ID
- maxGuests: Maximum number of guests allowed
- bedrooms: Number of bedrooms
- bathrooms: Number of bathrooms
- isGuestFavorite: Whether the listing is marked as "Guest Favorite"
- isSuperhost: Whether the host is a Superhost
Local Development
Prerequisites
- Node.js 18 or higher
- npm
Installation
cd airbnb-listings-findernpm install
Running Locally
Create a test input file input.json
:
{"location": "Miami, FL","numberOfListings": 5}
Run the actor:
$npm start
The results will be stored in ./apify_storage/datasets/default/
.
Deploying to Apify
Method 1: Using Apify CLI
- Install Apify CLI:
$npm install -g apify-cli
- Login to Apify:
$apify login
- Deploy the actor:
$apify push
Method 2: Manual Upload
- Create a new actor on Apify Console
- Upload the project files or connect your Git repository
- Build and publish the actor
Using the Actor via API
Once deployed on Apify, you can call the actor via POST request:
curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"location": "Miami, FL","numberOfListings": 10}'
Get Run Results
curl https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs/LAST/dataset/items \-H "Authorization: Bearer YOUR_API_TOKEN"
Project Structure
airbnb-listings-finder/βββ .actor/β βββ actor.json # Apify actor configurationβ βββ input_schema.json # Input schema definitionβ βββ Dockerfile # Docker configurationβββ src/β βββ main.js # Main actor codeβββ package.json # Node.js dependenciesβββ .gitignoreβββ README.md
How It Works
The actor operates in two phases:
Phase 1: Collect Listing URLs
- Actor receives
location
andnumberOfListings
parameters via API POST request - Constructs Airbnb search URL based on the location
- Crawls search results pages using Crawlee's PlaywrightCrawler (handles JavaScript-rendered content)
- Waits for page to load and scrolls to trigger lazy-loaded content
- Extracts listing URLs matching the pattern
/rooms/{id}
- Handles pagination automatically to collect the requested number of listings
Phase 2: Scrape Detailed Data
- Visits each listing page individually
- Waits for full page load (including dynamic content)
- Extracts comprehensive data:
- Title and description
- All property images
- Host profile ID
- Property details (guests, bedrooms, bathrooms)
- Special badges (Guest Favorite, Superhost)
- Compiles all data and stores in Apify dataset
Notes
- The actor respects Airbnb's website structure as of the implementation date
- Website changes may require updates to the selectors
- Consider adding delays between requests to avoid rate limiting
- For production use, consider implementing proxy rotation
License
ISC
On this page
Share Actor: