# Airbnb Search Scraper (`ecomscrape/airbnb-search-scraper`) Actor

Extract comprehensive Airbnb property data including prices, ratings, images, and location details. Automate property research and analysis with our advanced scraper tool.

- **URL**: https://apify.com/ecomscrape/airbnb-search-scraper.md
- **Developed by:** [ecomscrape](https://apify.com/ecomscrape) (community)
- **Categories:** Automation, Travel, Real estate
- **Stats:** 11 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## Airbnb.com Property Search Scraper - Advanced Real Estate Data Extraction Tool

### Introduction

Airbnb dominates with 43% market share in the short-term rental industry, making it a crucial platform for property investors, researchers, and travel industry professionals. With millions of listings worldwide, manually collecting property data from Airbnb can be an overwhelming and time-consuming task. This is where an efficient Airbnb property search scraper becomes invaluable.

Our Airbnb Property Search Scraper addresses the critical need for automated data collection from one of the world's largest accommodation platforms. Whether you're conducting market research, analyzing pricing trends, or building a competitive database, this tool streamlines the process of gathering comprehensive property information from Airbnb's search results.

The scraper eliminates the tedious manual process of browsing through hundreds of listings, copying information, and organizing data into usable formats. Instead, it provides a systematic approach to extract structured data that can be immediately used for analysis, reporting, or integration into other systems.

### Overview of the Airbnb Property Search Scraper

The Airbnb Property Search Scraper is a powerful automated tool designed to extract comprehensive property information from Airbnb search result pages. This scraper efficiently navigates through property listings, collecting essential data points that are crucial for various business and research applications.

The tool stands out for its ability to handle large-scale data extraction while maintaining data accuracy and consistency. It's built with robust error handling mechanisms and proxy support to ensure reliable performance even when processing extensive property lists. The scraper respects website structures and implements best practices for web scraping to maintain ethical data collection standards.

This scraper is particularly valuable for real estate professionals, market researchers, travel industry analysts, property managers, and investors who need regular access to current Airbnb market data. It serves businesses ranging from individual property owners seeking competitive insights to large-scale analytics companies requiring bulk data for market trend analysis.

The tool's versatility allows it to work with various Airbnb search parameters, making it suitable for location-specific research, price range analysis, or property type comparisons across different markets.

### Input and Output Details

Example url 1: https://www.airbnb.com/s/Melbourne/homes?refinement\_paths%5B%5D=%2Fhomes\&place\_id=ChIJgf0RD69C1moR4OeMIXVWBAU\&date\_picker\_type=calendar\&source=structured\_search\_input\_header\&search\_type=AUTOSUGGEST

Example url 2: https://www.airbnb.com/s/Melbourne-Cbd-Central-Apartment-Hotel--Victoria--Australia/homes?refinement\_paths%5B%5D=%2Fhomes\&date\_picker\_type=calendar\&source=structured\_search\_input\_header\&search\_type=autocomplete\_click\&flexible\_trip\_lengths%5B%5D=one\_week\&monthly\_start\_date=2025-08-01\&monthly\_length=3\&monthly\_end\_date=2025-11-01\&price\_filter\_input\_type=2\&channel=EXPLORE\&place\_id=ChIJ947lr8lC1moRwFGrBGdlCTs\&location\_bb=whc%2B1UMQ%2BFrCF0GYQxD3qQ%3D%3D\&acp\_id=a03514b4-6b8e-4cec-8144-275094c5f45d

Example url 3: https://www.airbnb.com/s/Bangkok--Thailand/homes?date\_picker\_type=calendar\&source=structured\_search\_input\_header\&search\_type=AUTOSUGGEST\&flexible\_trip\_lengths%5B%5D=one\_week\&monthly\_start\_date=2025-08-01\&monthly\_length=3\&monthly\_end\_date=2025-11-01\&price\_filter\_input\_type=2\&channel=EXPLORE\&acp\_id=a03514b4-6b8e-4cec-8144-275094c5f45d\&price\_filter\_num\_nights=5\&refinement\_paths%5B%5D=%2Fhomes\&place\_id=ChIJ82ENKDJgHTERIEjiXbIAAQE

Example Screenshot of property list by query page:

![](https://i.ibb.co/678Ht8Zw/Screenshot-from-2025-07-16-14-29-08.png)

#### Input Format

The scraper accepts configuration through a JSON object with several key parameters:

##### Scrape with URLs:

```json
{
  "max_retries_per_url": 2, // Maximum number of retry attempts for each URL if the scrape is detected as a bot or the page fails to load.
  "proxy": { // Proxy configuration to avoid bot detection during the data collection process.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "US" // You should choose a country that matches your target data location
  },
  "max_items_per_url": 20, // Limit the number of items per URL you want to scrape
  "urls": [ // List of property list page URLs that you want to scrape.
    "https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST",
    "https://www.airbnb.com/s/Melbourne-Cbd-Central-Apartment-Hotel--Victoria--Australia/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&source=structured_search_input_header&search_type=autocomplete_click&flexible_trip_lengths%5B%5D=one_week&monthly_start_date=2025-08-01&monthly_length=3&monthly_end_date=2025-11-01&price_filter_input_type=2&channel=EXPLORE&place_id=ChIJ947lr8lC1moRwFGrBGdlCTs&location_bb=whc%2B1UMQ%2BFrCF0GYQxD3qQ%3D%3D&acp_id=a03514b4-6b8e-4cec-8144-275094c5f45d",
    "https://www.airbnb.com/s/Bangkok--Thailand/homes?date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST&flexible_trip_lengths%5B%5D=one_week&monthly_start_date=2025-08-01&monthly_length=3&monthly_end_date=2025-11-01&price_filter_input_type=2&channel=EXPLORE&acp_id=a03514b4-6b8e-4cec-8144-275094c5f45d&price_filter_num_nights=5&refinement_paths%5B%5D=%2Fhomes&place_id=ChIJ82ENKDJgHTERIEjiXbIAAQE"
  ],
  "ignore_url_failures": true // If true, the scraper will continue running even if some URLs fail to be scraped after the maximum number of retries is reached.
}
```

**The `urls` parameter**: Add the URLs of the Property list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

**The `ignore_url_failures` parameter**: If set to `true`, the scraper will continue running even if some URLs fail to be scraped after reaching the maximum number of retries. This ensures that one problematic URL doesn't stop your entire scraping job.

*When you provide a list of URLs for scraping, all options in the "Scrape with search filters" section will be disabled. The system will only collect data from the URLs you specified.*

##### Scrape with Search Filters:

```json
{
  "max_retries_per_url": 2, // Maximum number of retry attempts for each search filter if the scrape is detected as a bot or the page fails to load.
  "proxy": { // Proxy configuration to avoid bot detection during the data collection process.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "US" // Choose a country that matches your target data location
  },
  "max_items_per_url": 20, // Limit the number of items per search filters you want to scrape
  "location": "Melbourne", // Location to search for properties
  "lat_lon": "-37.8136,144.9631", // Latitude and Longitude coordinates (optional, for more precise location)
  "min_bedrooms": "2", // Filter by minimum number of bedrooms
  "min_bathrooms": "1", // Filter by minimum number of bathrooms
  "min_beds": "2", // Filter by minimum number of beds
  "checkin": "2025-12-01", // Check-in date (YYYY-MM-DD format)
  "checkout": "2025-12-07" // Check-out date (YYYY-MM-DD format)
}
```

**The `location` parameter**: Enter the Location to search for properties. Ensure the location is valid by checking it on the Airbnb website first, then copy the location value you choose and paste it here (e.g., "Melbourne", "Bangkok", "Paris", "New York", "Tokyo").

**The `lat_lon` parameter**: Enter the Latitude and Longitude coordinates to search for properties (separated by comma, e.g., "-37.8136,144.9631" for Melbourne, "13.7563,100.5018" for Bangkok). This parameter provides more precise geographic targeting than the location parameter.

**The `min_bedrooms` parameter**: Filter properties by minimum number of bedrooms:

- `""` (empty string) - Any
- `"1"` - 1+
- `"2"` - 2+
- `"3"` - 3+
- `"4"` - 4+
- `"5"` - 5+
- `"6"` - 6+
- `"7"` - 7+
- `"8"` - 8+

**The `min_bathrooms` parameter**: Filter properties by minimum number of bathrooms:

- `""` (empty string) - Any
- `"1"` - 1+
- `"2"` - 2+
- `"3"` - 3+
- `"4"` - 4+
- `"5"` - 5+
- `"6"` - 6+
- `"7"` - 7+
- `"8"` - 8+

**The `min_beds` parameter**: Filter properties by minimum number of beds:

- `""` (empty string) - Any
- `"1"` - 1+
- `"2"` - 2+
- `"3"` - 3+
- `"4"` - 4+
- `"5"` - 5+
- `"6"` - 6+
- `"7"` - 7+
- `"8"` - 8+

**The `checkin` parameter**: Choose Check-in date for searching (format: YYYY-MM-DD, e.g., "2025-12-01").

**The `checkout` parameter**: Choose Check-out date for searching (format: YYYY-MM-DD, e.g., "2025-12-07").

*When using search filters for scraping, you need to leave the `urls` field empty (or set it to `null`) in the "Scrape with URLs" configuration.*

##### General Options:

**The `max_items_per_url` parameter**: Limits the number of properties extracted from each property list page or search results page. The default value is 20, providing a manageable batch size while allowing for comprehensive data collection.

**The `max_retries_per_url` parameter**: Sets the maximum number of retry attempts for each URL or search filters if the scrape is detected as a bot or the page fails to load. The default value is 2, providing a good balance between thoroughness and efficiency.

**The `proxy` parameter**: Proxy configuration is essential for maintaining anonymity and avoiding detection. The residential proxy option ensures that your scraping activities appear as legitimate browsing, reducing the risk of being blocked or rate-limited. You should choose a country that matches your target market or use a neutral location for general data collection.

#### Output Format

You get the output from the Airbnb.com Property Search Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

```json
[ // List of property information
  {
    "id": "996160473276989809",
    "title": "Apartment in Docklands",
    "url": "https://www.airbnb.com/rooms/996160473276989809",
    "description": "Epic Skyline View From Balcony. Pool, Gym, Jacuzzi",
    "images": [
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "2115394881",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/hosting/Hosting-996160473276989809/original/30e4a3cb-90ef-4226-a2b9-4a9ce792338b.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      },
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "1755502420",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/miso/Hosting-996160473276989809/original/3187a76f-0a89-4b4a-9b5b-3811dc25f582.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      },
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "1755502465",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/miso/Hosting-996160473276989809/original/32466539-6b3d-4eef-a598-028e4a7b55f1.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      },
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "1755502614",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/miso/Hosting-996160473276989809/original/bc6962f0-f1d4-473f-9b8b-4740a1e41d96.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      },
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "1755502405",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/miso/Hosting-996160473276989809/original/238049dc-26f0-461b-82c2-d4f3350051bc.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      },
      {
        "__typename": "ExplorePicture",
        "caption": null,
        "dominant_saturated_color": null,
        "id": "1755502590",
        "large_ro": null,
        "original_picture": null,
        "picture": "https://a0.muscache.com/im/pictures/miso/Hosting-996160473276989809/original/16578022-cca3-47c1-bdd3-934498dbcb88.jpeg",
        "preview_encoded_png": null,
        "saturated_a11y_dark_color": null,
        "scrim_color": null,
        "xl_picture": null
      }
    ],
    "price_details": null,
    "badges": [
      "Superhost"
    ],
    "ratting": {
      "text": "4.84 out of 5 average rating,  86 reviews",
      "rating": "4.84 (86)"
    },
    "location": {
      "latitude": -37.82167084912475,
      "longitude": 144.95251399755253
    },
    "passport_data": null,
    "date": "Jul 20 – 25",
    "bed_info": "2 queen beds",
    "from_url": "https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST"
  }, // ... Many other property details
] 
```

The scraper generates structured data containing comprehensive property information organized into the following key fields:

**ID**: Unique identifier for each property listing, essential for tracking and referencing specific properties across different data collection sessions. This field ensures data consistency and prevents duplicates in your database.

**Title**: The property's headline as displayed on Airbnb, containing key descriptive information about the accommodation type, location highlights, and unique selling points that hosts use to attract guests.

**URL**: Direct link to the individual property listing page, enabling easy access to the full property details and facilitating further manual review or automated detailed scraping if needed.

**Description**: Comprehensive property description provided by the host, including amenities, house rules, neighborhood information, and detailed explanations of what guests can expect during their stay.

**Images**: Collection of property photos URLs, typically including exterior shots, interior rooms, amenities, and surrounding area images that provide visual context for the accommodation.

**Price Details**: Comprehensive pricing information including nightly rates, cleaning fees, service charges, and total costs. This data is crucial for market analysis and competitive pricing strategies.

**Badges**: Special designations and certifications awarded by Airbnb, such as "Superhost," "Plus" properties, or "Verified" listings that indicate quality standards and host reliability metrics.

**Rating**: Numerical rating score based on guest reviews, typically on a 5-point scale, along with the total number of reviews, providing insights into property quality and guest satisfaction levels.

**Location**: Detailed geographical information including neighborhood names, proximity to landmarks, and general area descriptions that help understand the property's positioning within the destination.

**Passport Data**: Host verification status and profile information, indicating the level of identity verification and helping assess host credibility and reliability.

**Date**: Availability information, booking dates, and calendar data showing when the property is available for reservation, crucial for planning and availability analysis.

**Bed Info**: Detailed sleeping arrangements including number of bedrooms, bed types, maximum occupancy, and sleeping configurations, essential for matching properties to guest requirements.

### How to Use the Scraper

Using the Airbnb Property Search Scraper involves several straightforward steps that ensure optimal data collection results:

#### Method 1: Scraping with URLs

**Step 1: Prepare Your Search URLs**
Navigate to Airbnb.com and perform searches for your target locations, dates, and criteria. Copy the complete URLs from your search results pages, ensuring they include all necessary parameters for your data collection needs. You can paste URLs one by one or use the Bulk edit section to add a prepared list.

**Step 2: Configure Input Parameters**
Set up your JSON input with appropriate retry limits, proxy settings matching your target region, and item limits based on your data requirements. Choose proxy countries that align with your target markets to ensure accurate pricing and availability data. Enable `ignore_url_failures` to ensure your scraping job continues even if some URLs fail after reaching the maximum retry limit.

When providing URLs for scraping, all options in the "Scrape with search filters" section will be automatically disabled.

**Step 3: Execute the Scraper**
Run the scraper with your configured parameters. Monitor the process for any errors or issues, and be prepared to adjust settings if needed. The scraper will systematically process each URL and extract the specified data fields.

**Step 4: Data Processing and Validation**
Review the collected data for completeness and accuracy. Implement data cleaning processes to handle any inconsistencies or missing information. Organize the data according to your analysis or storage requirements.

#### Method 2: Scraping with Search Filters

**Step 1: Configure Location Parameters**
Instead of providing specific URLs, configure your search by setting location parameters. Leave the `urls` field empty when using this method.

Enter a `location` to search for properties (e.g., "Melbourne", "Bangkok", "Paris", "New York", "Tokyo"). Ensure the location is valid by checking it on the Airbnb website first, then copy the location value and paste it into your configuration.

Optionally, use the `lat_lon` parameter for more precise geographic targeting (e.g., "-37.8136,144.9631" for Melbourne).

**Step 2: Set Property Filters**
Configure filters to narrow down your search results:

**Minimum Bedrooms**: Filter by the minimum number of bedrooms (Any, 1+, 2+, 3+, 4+, 5+, 6+, 7+, 8+)

**Minimum Bathrooms**: Filter by the minimum number of bathrooms (Any, 1+, 2+, 3+, 4+, 5+, 6+, 7+, 8+)

**Minimum Beds**: Filter by the minimum number of beds (Any, 1+, 2+, 3+, 4+, 5+, 6+, 7+, 8+)

**Step 3: Set Date Range**
Specify your check-in and check-out dates:

- **Check-in date**: Format YYYY-MM-DD (e.g., "2025-12-01")
- **Check-out date**: Format YYYY-MM-DD (e.g., "2025-12-07")

These dates help you find properties available during your desired travel period.

**Step 4: Configure Proxy and Execute**
Set proxy configuration with a country that matches your target market for accurate pricing and availability data. Set `max_items_per_url` to control how many properties to extract from search results. Run the scraper with your search configuration.

**Step 5: Monitor and Validate**
Monitor the scraping process and review collected data for completeness and accuracy. Implement data cleaning processes to handle any inconsistencies or missing information.

#### Best Practices:

- **For URL-based scraping**: Copy complete URLs with all search parameters intact, including dates, filters, and location details
- **For search-based scraping**: Use specific location names or coordinates, and appropriate filters to narrow down results and improve data quality
- Use reasonable delays between requests to avoid overwhelming the website
- Regularly update your proxy settings and locations to match target markets
- Monitor scraping performance and adjust parameters as needed
- Implement data validation processes to ensure quality
- Respect website terms of service and scraping ethics
- Start with a small `max_items_per_url` value to test your configuration before running large-scale extractions
- Enable `ignore_url_failures` to ensure partial data collection even when some URLs encounter issues
- Use specific date ranges to find properties available during your target travel period
- Combine location with lat\_lon parameters for the most precise geographic targeting

#### Common Issues and Solutions:

- **Empty results**: Verify that location names are valid on Airbnb's website before using them in your configuration
- **Invalid dates**: Ensure check-in and check-out dates follow the YYYY-MM-DD format and that check-out is after check-in
- **No search results**: Ensure the `urls` field is empty when using search filters, and verify that location and filter combinations return results on Airbnb
- **Incorrect pricing**: Make sure proxy country matches your target market for accurate regional pricing
- **Missing availability data**: Verify that date ranges are properly formatted and represent future dates
- **Connection issues**: Adjust proxy settings and ensure residential proxies are properly configured

### Benefits and Applications

The Airbnb Property Search Scraper delivers significant time savings by automating what would otherwise be hours of manual data collection. Instead of manually browsing and recording property information, users can collect comprehensive data from hundreds of listings in minutes.

**Market Research Applications:**
Real estate professionals use this data to analyze local rental markets, identify pricing trends, and discover investment opportunities. The comprehensive data enables detailed competitive analysis and market positioning strategies.

**Business Intelligence:**
Travel companies and booking platforms leverage the data to understand market dynamics, monitor competitor offerings, and optimize their own service strategies. The structured format makes it easy to integrate with existing business intelligence systems.

**Investment Analysis:**
Property investors utilize the collected data to evaluate potential markets, assess rental yield opportunities, and make data-driven investment decisions. The pricing and rating information provides crucial insights for ROI calculations.

**Academic and Research Purposes:**
Researchers studying tourism patterns, urban development, or sharing economy trends find this data invaluable for their studies. The comprehensive dataset supports various analytical approaches and research methodologies.

The tool's value extends beyond simple data collection, providing the foundation for sophisticated analysis, automated reporting, and strategic decision-making processes that drive business success in the competitive short-term rental market.

### Conclusion

The Airbnb Property Search Scraper represents an essential tool for anyone working with short-term rental market data. By automating the complex process of data extraction from Airbnb's platform, it enables users to focus on analysis and strategy rather than time-consuming data collection tasks.

Whether you're conducting market research, analyzing investment opportunities, or building competitive intelligence, this scraper provides the reliable, comprehensive data needed to make informed decisions in the dynamic short-term rental market.

Ready to streamline your Airbnb data collection process? Start using our scraper today and transform how you gather and analyze property market intelligence.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Airbnb.com Property Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Property list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped after the maximum number of retries is reached.

## `location` (type: `string`):

Enter the Location to search for items, check it in website, copy the location value you choose and paste it here

## `lat_lon` (type: `string`):

Enter the Latidude and Longitude to search for items (separate by comma, e.g., -35.2809,149.1300)

## `min_bedrooms` (type: `string`):

Filter items by Minimum number of Bedrooms

## `min_bathrooms` (type: `string`):

Filter items by Minimum number of Bathrooms

## `min_beds` (type: `string`):

Filter items by Number of Garages

## `checkin` (type: `string`):

Choose Check-in date for searching

## `checkout` (type: `string`):

Choose Check-out date for searching

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL or search filters you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL or search filters if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/airbnb-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/airbnb-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.airbnb.com/s/Melbourne/homes?refinement_paths%5B%5D=%2Fhomes&place_id=ChIJgf0RD69C1moR4OeMIXVWBAU&date_picker_type=calendar&source=structured_search_input_header&search_type=AUTOSUGGEST"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ecomscrape/airbnb-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ecomscrape/airbnb-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3DMbQua8Ga8wUyCzT/builds/ZXvV7GeryU6MnxMB2/openapi.json
