# Airbnb Scraper (`scraper-engine/airbnb-scraper`) Actor

Scrape Airbnb listings by city, keyword, or filter. Collect pricing, reviews, ratings, amenities, and host data. Ideal for analyzing rental trends, planning expansion, or benchmarking competitors in any location.

- **URL**: https://apify.com/scraper-engine/airbnb-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Automation, E-commerce, Lead generation
- **Stats:** 23 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$19.99/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/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

An Airbnb Scraper (direct Airbnb scraping tool) enables bulk Airbnb scraper tool workflows and Airbnb scraping API integration for structured data extraction. It supports Airbnb Scraper Python and fairbnb scraping use, helping users collect listings, pricing, and insights at scale for analysis.

### 🏠 What does Airbnb Scraper do?
An Airbnb Scraper (also known as a direct Airbnb scraping tool and Airbnb listing scraper tool) is a powerful solution for bulk Airbnb data scraping that collects Airbnb listing data at scale—quickly, accurately, and efficiently 🔍. It also supports Airbnb scraping API integration for automated data workflows.

It allows users to scrape structured information such as property details, prices, reviews, ratings, host profiles, and availability directly from Airbnb listings using bulk Airbnb scraper tool systems.

From market research to SEO analysis, Airbnb scraping data empowers businesses and individuals to make data-driven decisions. Instead of manual browsing, an Airbnb Scraper app or automation tool streamlines the process and saves hours of effort ⏱️.

Modern solutions like Airbnb Scraper Apify, Airbnb Scraper Python scripts, and even fairbnb scraping or free Airbnb scraper tools provide flexible options for extracting data without deep technical knowledge.

Whether you're a real estate investor, travel analyst, or SEO professional, an Airbnb Scraper helps unlock marketplace insights while respecting Airbnb scraping policies and ensuring ethical usage. ✅

### 🛠️ Support and Feedback

- 🐞 **Bug reports:** Open a ticket in the repository **Issues** section  
- ✨ **Custom solutions or feature requests:** Contact our team 📧 **Email:** dev.scraperengine@gmail.com


### 📊 What Airbnb Scraper can I extract?
An Airbnb Scraper (also known as a direct Airbnb scraping tool and bulk Airbnb scraper tool) enables structured and scalable data extraction from Airbnb listings. It also supports Airbnb scraping API integration for automation and large-scale bulk Airbnb data scraping workflows.

Below is a detailed breakdown of what you can collect using an Airbnb Scraper software or app:

#### 🧾 Extractable Data Types

| 🏷️ Data Type | 📄 Description |
| --- | --- |
| 🏡 Listing Title | Property name and headline |
| 📍 Location | City, neighborhood, country |
| 💲 Price | Nightly rate, cleaning fee, total cost breakdown |
| ⭐ Ratings | Overall rating & review count |
| 📝 Reviews | Guest feedback and detailed comments |
| 🛏️ Amenities | WiFi, pool, parking, kitchen, etc. |
| 🧑 Host Info | Host name, response rate, superhost status |
| 📅 Availability | Booked and available date calendar data |
| 🏷️ Property Type | Apartment, villa, shared room, etc. |
| 📸 Images | Listing photo URLs and media assets |

With Airbnb scraping data, businesses can analyze pricing trends, compare competitors, and build datasets for AI and machine learning models 📈. It is also widely used in Airbnb scraping automation systems for continuous market monitoring.

Tools like Airbnb Scraper GitHub projects, Airbnb Scraper Python scripts, Airbnb Scraper Chrome extension, and fairbnb scraping tools make this extraction flexible, scalable, and adaptable for different technical levels.

#### ✨ Key Features of Airbnb Scraper
An advanced **Airbnb Scraper** (also known as a **direct Airbnb scraping tool** and **bulk Airbnb scraper tool**) comes packed with features that simplify large-scale **Airbnb scraping automation** while maintaining accuracy, speed, and reliability. It also supports **Airbnb scraping API integration** for developers and data teams.

🔑 **Core Features**

*   🚀 **High-speed bulk Airbnb data scraping** – Extract thousands of listings efficiently at scale

*   🧠 **Smart data extraction** – Clean, structured outputs optimized for analytics and **Airbnb scraping tool workflows**

*   🔄 **Bulk URL & location-based scraping** – Supports **bulk Airbnb scraper tool operations** for cities, regions, and listings

*   🐍 **Airbnb Scraper Python compatibility** – Easily integrate into custom scripts and automation pipelines

*   🌐 **Multi-format access (app, software, API)** – Works as an **Airbnb Scraper app**, cloud tool, or API-based system

*   🧩 **Integration-friendly architecture** – Supports **Airbnb scraping API alternatives** for flexible workflows

*   🆓 **Airbnb Scraper free options** – Trial or limited usage plans for testing and small-scale scraping

*   🧪 **Community & GitHub support** – Compatible with **Airbnb Scraper GitHub projects** and open-source extensions

*   🧭 **Advanced filtering system** – Location, date, price, and property filters for precise targeting

*   🛡️ **Policy-aware scraping design** – Built with awareness of Airbnb scraping guidelines for responsible usage

### 🛠️ How to use Airbnb Scraper

Using an Airbnb Scraper is simple—even for beginners. Follow this step-by-step guide to start Airbnb scraping data efficiently:

#### 🪜 Step-by-Step Guide

1.  Log in to Apify 🔐  
    Create a free account or sign in to your existing Apify profile.  
      
    
2.  Select the Actor 🎯  
    Search for “Airbnb Scraper” in the Apify Store.  
      
    
3.  Enter Input Data 🧾  
    Paste Airbnb listing URLs or search pages into the startUrls field.  
      
    
4.  Choose Options ⚙️  
    Select filters like location, price range, dates, or output format.  
      
    
5.  Run the Actor ▶️  
    Click “Start” and let the Airbnb Scraper Apify extract data automatically.  
      
    
6.  Download Results 📥  
    Export results in JSON, CSV, or Excel format.  
      
    

This process works seamlessly whether you’re building an Airbnb Scraper Python pipeline, testing a free Airbnb Scraper, or using a full-featured Airbnb Scraper software.

* * *

### 🎯 Use Cases
An **Airbnb Scraper** (also known as a **direct Airbnb scraping tool** and **bulk Airbnb scraper tool**) unlocks countless real-world applications across industries 🌍. It also supports **Airbnb scraping API integration** and **Airbnb scraping automation workflows** for scalable data-driven insights.

💼 **Popular Use Cases**

*   📊 **Market Research** – Analyze pricing trends, demand shifts, and occupancy rates using **bulk Airbnb data scraping**

*   🏘️ **Real Estate Investment** – Identify profitable locations and opportunities with an **Airbnb scraping tool**

*   📣 **Digital Marketing** – Optimize listings and strategies using competitor insights from Airbnb data extraction

*   🤖 **AI & Data Science** – Train models using structured **Airbnb scraping data** for prediction and analytics

*   🧳 **Travel Platforms** – Aggregate short-term rental data using **Airbnb scraping API systems**

*   📰 **Academic Research** – Study tourism, hospitality, and urban rental patterns

*   🔍 **SEO & Content Strategy** – Extract keywords, reviews, and sentiment for optimization

From startups to enterprises, an **Airbnb Scraper app** or **magical Airbnb Scraper tool** helps transform raw Airbnb data into actionable intelligence—while respecting Airbnb scraping policy guidelines and ensuring ethical usage.

### 💎 Why choose us?
We offer a reliable, scalable, and ethical **Airbnb Scraper** (also known as a **direct Airbnb scraping tool** and **bulk Airbnb scraper tool**) designed for professionals who value accuracy, performance, and **Airbnb scraping automation**. It also supports **Airbnb scraping API integration** for advanced workflows.

🏆 **Our Advantages**

✅ **High-volume Airbnb data scraping** – Built for extracting thousands of listings efficiently using a **bulk Airbnb scraper tool**  
🔐 **Secure & compliant design** – Follows Airbnb scraping policy best practices for responsible data use  
🧩 **Easy API integration** – Works with **Airbnb API alternatives** and automation pipelines  
🆓 **Flexible pricing plans** – Includes **Airbnb Scraper free options** for testing and small-scale use  
🐍 **Python-friendly** – Fully compatible with **Airbnb Scraper Python workflows** for developers  
🌍 **Cloud-based access** – Powered by **Airbnb Scraper Apify** for scalable performance  
📞 **Dedicated support & documentation** – Helps both beginners and advanced **Airbnb scraping tool users**

Whether you’re exploring a **GitHub Airbnb Scraper project**, a browser extension, or a full-scale **Airbnb Scraper software solution**, we deliver trusted, structured results at scale for real estate, marketing, and research needs.


### 📈 How many results can you scrape with Airbnb Scraper?
A modern **Airbnb Scraper** (also known as a **direct Airbnb scraping tool** and **bulk Airbnb scraper tool**) is built for high scalability and supports **Airbnb scraping automation** at every level. It also works with **Airbnb scraping API integration** for large-scale data pipelines.

Depending on configuration, you can perform **bulk Airbnb data scraping** from hundreds to millions of listings without performance issues 🚀.

🔢 **Scalability Highlights**

🏙️ **City to country-level scraping** – Extract listings from entire regions using a **bulk Airbnb scraper tool**  
🔁 **Parallel job execution** – Run multiple **Airbnb scraping tool workflows** at the same time  
⚡ **High-speed processing** – Optimized for fast and consistent **Airbnb scraping data extraction**  
☁️ **Cloud scaling support** – Powered by **Airbnb Scraper Apify** for enterprise workloads  
📦 **Enterprise-ready pipelines** – Ideal for dashboards, analytics, and big data systems

For smaller projects, a **free Airbnb Scraper** or **Airbnb Scraper Chrome extension** may be enough. For advanced needs, an **Airbnb Scraper app**, software, or **Airbnb Scraper Python solution** ensures uninterrupted large-scale performance.

Whether you need 500 listings or 5 million, the **Airbnb Scraper** adapts to your workload—making it ideal for long-term analytics, pricing models, and market research systems.

### ⚖️ Is it legal to scrape Airbnb?

A modern **Airbnb Scraper** (also known as a **direct Airbnb scraping tool** and **bulk Airbnb scraper tool**) is built for high scalability and supports **Airbnb scraping automation** at every level. It also works with **Airbnb scraping API integration** for large-scale data pipelines.

Depending on configuration, you can perform **bulk Airbnb data scraping** from hundreds to millions of listings without performance issues 🚀.

🔢 **Scalability Highlights**

🏙️ **City to country-level scraping** – Extract listings from entire regions using a **bulk Airbnb scraper tool**  
🔁 **Parallel job execution** – Run multiple **Airbnb scraping tool workflows** at the same time  
⚡ **High-speed processing** – Optimized for fast and consistent **Airbnb scraping data extraction**  
☁️ **Cloud scaling support** – Powered by **Airbnb Scraper Apify** for enterprise workloads  
📦 **Enterprise-ready pipelines** – Ideal for dashboards, analytics, and big data systems

For smaller projects, a **free Airbnb Scraper** or **Airbnb Scraper Chrome extension** may be enough. For advanced needs, an **Airbnb Scraper app**, software, or **Airbnb Scraper Python solution** ensures uninterrupted large-scale performance.

Whether you need 500 listings or 5 million, the **Airbnb Scraper** adapts to your workload—making it ideal for long-term analytics, pricing models, and market research systems.

### ⚙️ Input Parameters

#### 🧾 Example Input JSON
```json
{
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "startItems": [
        "https://www.airbnb.com/s/London/homes"
    ]
}
````

### 📤 Output Format

#### 🧾 Example Output JSON

```json
  {
    "thumbnail": "https://a0.muscache.com/im/pictures/miso/Hosting-934718546911668796/original/c105003a-834c-4d6c-9141-ef47c1ecada7.jpeg",
    "id": "934718546911668796",
    "title": "1.5 baths",
    "description": "Welcome to our wonderful, spacious gem in Hoxton! Our unique loft is a stylish retreat with an open-plan living area and kitchen that benefits from abundant natural light. Cooks will love the well-equipped kitchen with top-notch appliances and quality cookware.\n\nFrom here, you can discover the surrounding vibrant neighbourhoods of Shoreditch, Dalston, Hackney, and Islington. You are within reach of numerous excellent restaurants, cafés, markets, and easy transportation to other areas of London.",
    "rating": {
      "accuracy": 5,
      "checking": 5,
      "cleanliness": 5,
      "communication": 5,
      "location": 4.78,
      "value": 10,
      "guestSatisfaction": null,
      "reviewsCount": 28
    },
    "price": {
      "label": "$281 for 5 nights",
      "qualifier": "for 5 nights",
      "price": "$281",
      "originalPrice": null,
      "discountedPrice": null,
      "breakDown": {
        "basePrice": {
          "description": "5 nights x $56.09",
          "price": "$280.46"
        },
        "basePriceBreakdown": [],
        "serviceFee": null,
        "taxes": null,
        "total": {
          "price": "$280",
          "description": "Total (calculated price, may vary)"
        },
        "totalBeforeTaxes": null,
        "cleaningFee": null,
        "specialOffer": null,
        "earlyBirdDiscount": null
      }
    },
    "coordinates": {
      "latitude": 51.5364,
      "longitude": -0.08245
    },
    "url": "https://www.airbnb.com/rooms/934718546911668796?locale=en-US&currency=USD&check_in=2025-01-01&check_out=2025-01-08",
    "currency": "USD"
  },
```

### 🔗 What are other Airbnb scraping tools?

If you want to scrape specific Airbnb data, you can use any of the dedicated scrapers below for faster and more targeted results.\
Just enter listing URLs, location names, host profiles, or property IDs and start scraping instantly.

| [📞 Airbnb Phone Number Scraper](https://apify.com/scraper-engine/airbnb-phone-number-scraper) | [🖼️ Airbnb Images Scraper](https://apify.com/scraper-engine/airbnb-images-scraper) |
|---|---|
| [📅 Airbnb Full Year Price Tracker Scraper](https://apify.com/scraper-engine/airbnb-full-year-price-tracker-scraper) | [⭐ Airbnb Review Scraper](https://apify.com/scraper-engine/airbnb-review-scraper) |
| [📊 Airbnb Occupancy Scraper](https://apify.com/scraper-engine/airbnb-occupancy-scraper) | [🔗 Airbnb Rooms URLs Scraper](https://apify.com/scraper-engine/airbnb-rooms-urls-scraper) |
| [📧 Airbnb Email Scraper](https://apify.com/scraper-engine/airbnb-email-scraper) |

### ❓ FAQ – Airbnb Scraper

#### 1️⃣ What is an Airbnb Scraper?

 An Airbnb Scraper extracts structured Airbnb listing data automatically using a bulk Airbnb data scraping process.

#### 2️⃣ Is there a free Airbnb Scraper available?

 Yes, many tools offer Airbnb Scraper free plans or trial versions for testing Airbnb scraping tool features.

#### 3️⃣ Can I use Airbnb Scraper with Python?

 Absolutely! Airbnb Scraper Python integrations are widely supported for custom automation and scripts.

#### 4️⃣ Is Airbnb scraping legal?

 Yes, when done responsibly and in line with the Airbnb scraping policy and local regulations.

#### 5️⃣ Do you support Airbnb Scraper Apify?

 Yes, our solution works seamlessly with Apify Airbnb Scraper actors for cloud-based scraping.

#### 6️⃣ Is there a Chrome extension for Airbnb scraping?

 Some tools provide an Airbnb Scraper Chrome extension for quick and lightweight data extraction tasks.

#### 7️⃣ Can I use scraped data commercially?

 Commercial use depends on compliance with Airbnb’s terms and local data protection laws.

### ✅ Conclusion – Airbnb Scraper

In conclusion, an Airbnb Scraper empowers you to transform Airbnb listings into actionable insights 📊. Whether you use an Airbnb Scraper app, software, GitHub project, or Apify actor, it offers scalable and flexible Airbnb scraping automation.

When used responsibly, Airbnb scraping data becomes a powerful asset for research, pricing analysis, and business growth 🚀.

✨ Ready to unlock powerful Airbnb insights?
Choose a scalable, ethical, and high-performance Airbnb Scraper today!

# Actor input Schema

## `locationQueries` (type: `array`):

Examples: `london`, `paris`, or for the US `Austin--TX` so the right area is clear. Add one entry per line. 🌆

## `startItems` (type: `array`):

Optional: full Airbnb search URLs or other start links — we’ll figure out the place from them. 🔗

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

When your stay starts — calendar date **or** relative (e.g. `14 days`, `2 weeks`). Future trip dates work best for live prices. 📆

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

When your stay ends — must be **after** check-in. Same calendar or relative style as above. 🌅

## `currency` (type: `string`):

Prices will be shown in this money format. 💶

## `locale` (type: `string`):

How Airbnb labels listings and prices for you (language/region). 🗣️

## `maxItems` (type: `integer`):

Stop after this many stays that **match your search** (and your area rules below). 📊

## `maxPages` (type: `integer`):

Advanced: limit how many result pages to scroll. Leave empty and we’ll pick a sensible cap for you. 📑

## `strictGeo` (type: `boolean`):

When **on** ✅ we only keep stays that really belong to the area you meant (great when a city name exists in many countries). When **off**, more results may appear from nearby or similar names. 🌍

## `state` (type: `string`):

Optional dropdown of regions worldwide — pick the closest match, or none. US tip: you can also use `City--ST` in the location field. 🇺🇸

## `country` (type: `string`):

Optional: which country the place should be in (helps when two cities share a name). Leave empty if you’re sure. 🏳️

## `proxyConfiguration` (type: `object`):

Configure Apify Proxy if needed; otherwise we connect directly. ☁️

## Actor input object example

```json
{
  "locationQueries": [
    "paris"
  ],
  "startItems": [
    "https://www.airbnb.com/s/london/homes"
  ],
  "checkin": "2026-06-01",
  "checkout": "2026-06-08",
  "currency": "USD",
  "locale": "en-US",
  "maxItems": 20,
  "strictGeo": true,
  "state": "",
  "country": "",
  "proxyConfiguration": {
    "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 = {
    "locationQueries": [
        "paris"
    ],
    "startItems": [
        "https://www.airbnb.com/s/london/homes"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/airbnb-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 = {
    "locationQueries": ["paris"],
    "startItems": ["https://www.airbnb.com/s/london/homes"],
    "proxyConfiguration": { "useApifyProxy": False },
}

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

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

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

```

## CLI example

```bash
echo '{
  "locationQueries": [
    "paris"
  ],
  "startItems": [
    "https://www.airbnb.com/s/london/homes"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraper-engine/airbnb-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraper-engine/airbnb-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Scraper",
        "description": "Scrape Airbnb listings by city, keyword, or filter. Collect pricing, reviews, ratings, amenities, and host data. Ideal for analyzing rental trends, planning expansion, or benchmarking competitors in any location.",
        "version": "0.1",
        "x-build-id": "AgImpEFRzd3ZKQBsg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraper-engine~airbnb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraper-engine-airbnb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scraper-engine~airbnb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraper-engine-airbnb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scraper-engine~airbnb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraper-engine-airbnb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "locationQueries": {
                        "title": "📍 Location keywords",
                        "type": "array",
                        "description": "Examples: `london`, `paris`, or for the US `Austin--TX` so the right area is clear. Add one entry per line. 🌆",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startItems": {
                        "title": "🔗 Or paste search links / URLs",
                        "type": "array",
                        "description": "Optional: full Airbnb search URLs or other start links — we’ll figure out the place from them. 🔗",
                        "items": {
                            "type": "string"
                        }
                    },
                    "checkin": {
                        "title": "🛎️ Check-in",
                        "type": "string",
                        "description": "When your stay starts — calendar date **or** relative (e.g. `14 days`, `2 weeks`). Future trip dates work best for live prices. 📆",
                        "default": "2026-06-01"
                    },
                    "checkout": {
                        "title": "🚪 Check-out",
                        "type": "string",
                        "description": "When your stay ends — must be **after** check-in. Same calendar or relative style as above. 🌅",
                        "default": "2026-06-08"
                    },
                    "currency": {
                        "title": "💵 Currency",
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "AUD",
                            "CAD",
                            "CHF",
                            "CNY",
                            "INR",
                            "BRL",
                            "MXN",
                            "SEK",
                            "NOK",
                            "DKK",
                            "PLN",
                            "NZD",
                            "SGD",
                            "HKD",
                            "KRW",
                            "TRY",
                            "ZAR",
                            "AED",
                            "THB",
                            "MYR",
                            "PHP",
                            "IDR",
                            "CZK",
                            "HUF",
                            "ILS",
                            "SAR",
                            "CLP",
                            "ARS",
                            "COP",
                            "PEN",
                            "RON",
                            "BGN",
                            "HRK",
                            "ISK",
                            "TWD",
                            "VND"
                        ],
                        "type": "string",
                        "description": "Prices will be shown in this money format. 💶",
                        "default": "USD"
                    },
                    "locale": {
                        "title": "🌐 Language & region (locale)",
                        "enum": [
                            "en-US",
                            "en-GB",
                            "en-AU",
                            "en-CA",
                            "en-IN",
                            "en-IE",
                            "fr-FR",
                            "fr-CA",
                            "de-DE",
                            "es-ES",
                            "es-MX",
                            "es-AR",
                            "it-IT",
                            "pt-BR",
                            "pt-PT",
                            "ja-JP",
                            "ko-KR",
                            "zh-CN",
                            "zh-TW",
                            "nl-NL",
                            "nl-BE",
                            "sv-SE",
                            "da-DK",
                            "nb-NO",
                            "fi-FI",
                            "pl-PL",
                            "ru-RU",
                            "tr-TR",
                            "el-GR",
                            "cs-CZ",
                            "hu-HU",
                            "ro-RO",
                            "uk-UA",
                            "id-ID",
                            "th-TH",
                            "vi-VN",
                            "ms-MY",
                            "hi-IN",
                            "he-IL",
                            "ar-SA",
                            "ca-ES",
                            "hr-HR",
                            "sk-SK",
                            "sl-SI",
                            "bg-BG",
                            "lt-LT",
                            "lv-LV",
                            "et-EE"
                        ],
                        "type": "string",
                        "description": "How Airbnb labels listings and prices for you (language/region). 🗣️",
                        "default": "en-US"
                    },
                    "maxItems": {
                        "title": "🔢 Max stays",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Stop after this many stays that **match your search** (and your area rules below). 📊",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "📄 Max search pages (optional)",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Advanced: limit how many result pages to scroll. Leave empty and we’ll pick a sensible cap for you. 📑"
                    },
                    "strictGeo": {
                        "title": "📌 Strictly stay in my search area",
                        "type": "boolean",
                        "description": "When **on** ✅ we only keep stays that really belong to the area you meant (great when a city name exists in many countries). When **off**, more results may appear from nearby or similar names. 🌍",
                        "default": true
                    },
                    "state": {
                        "title": "📍 Region / state / province",
                        "enum": [
                            "",
                            "Addis Ababa",
                            "Alberta",
                            "Andalusia",
                            "Antioquia",
                            "Auckland",
                            "Australian Capital Territory",
                            "Baden-Württemberg",
                            "Bali",
                            "Bangkok",
                            "Bavaria",
                            "Beijing",
                            "Berlin",
                            "Bogotá D.C.",
                            "Brussels-Capital Region",
                            "British Columbia",
                            "Buenos Aires Province",
                            "Busan",
                            "California",
                            "Cairo Governorate",
                            "Casablanca-Settat",
                            "Catalonia",
                            "Córdoba",
                            "Delhi",
                            "Dubai",
                            "Dublin",
                            "Eastern Cape",
                            "England",
                            "Flanders",
                            "Florida",
                            "Gauteng",
                            "Guangdong",
                            "Hanoi",
                            "Hokkaido",
                            "Ho Chi Minh City",
                            "Hong Kong",
                            "Istanbul",
                            "Jakarta",
                            "Jalisco",
                            "Kanagawa Prefecture",
                            "Karnataka",
                            "KwaZulu-Natal",
                            "Lagos State",
                            "Lazio",
                            "Lesser Poland",
                            "Lima Province",
                            "Lombardy",
                            "Madrid",
                            "Maharashtra",
                            "Manitoba",
                            "Metropolitan Manila",
                            "Mexico City",
                            "Minas Gerais",
                            "Moscow Oblast",
                            "New Brunswick",
                            "New South Wales",
                            "New York",
                            "North Holland",
                            "North Rhine-Westphalia",
                            "Northern Ireland",
                            "Nova Scotia",
                            "Ohio",
                            "Ontario",
                            "Oregon",
                            "Osaka Prefecture",
                            "Pennsylvania",
                            "Provence-Alpes-Côte d'Azur",
                            "Quebec",
                            "Queensland",
                            "Rio de Janeiro",
                            "Riyadh Province",
                            "Saint Petersburg",
                            "Santiago Metropolitan",
                            "Saskatchewan",
                            "São Paulo",
                            "Scotland",
                            "Seoul",
                            "Shanghai",
                            "Sichuan",
                            "Singapore",
                            "South Australia",
                            "South Holland",
                            "Stockholm County",
                            "Taipei",
                            "Tamil Nadu",
                            "Tasmania",
                            "Tel Aviv District",
                            "Texas",
                            "Tokyo",
                            "Victoria",
                            "Viken",
                            "Wales",
                            "Wallonia",
                            "Wellington",
                            "Western Australia",
                            "Western Cape",
                            "Zurich",
                            "Île-de-France"
                        ],
                        "type": "string",
                        "description": "Optional dropdown of regions worldwide — pick the closest match, or none. US tip: you can also use `City--ST` in the location field. 🇺🇸",
                        "default": ""
                    },
                    "country": {
                        "title": "🌎 Country",
                        "enum": [
                            "",
                            "United States",
                            "United Kingdom",
                            "Canada",
                            "Australia",
                            "France",
                            "Germany",
                            "Italy",
                            "Spain",
                            "Japan",
                            "India",
                            "Brazil",
                            "Mexico",
                            "Ireland",
                            "Netherlands",
                            "Portugal",
                            "Belgium",
                            "Austria",
                            "Switzerland",
                            "Sweden",
                            "Norway",
                            "Denmark",
                            "Poland",
                            "Czech Republic",
                            "Hungary",
                            "Greece",
                            "Turkey",
                            "South Korea",
                            "China",
                            "Taiwan",
                            "Hong Kong",
                            "Singapore",
                            "New Zealand",
                            "South Africa",
                            "United Arab Emirates",
                            "Saudi Arabia",
                            "Israel",
                            "Argentina",
                            "Chile",
                            "Colombia",
                            "Thailand",
                            "Malaysia",
                            "Indonesia",
                            "Philippines",
                            "Vietnam",
                            "Egypt",
                            "Nigeria",
                            "Russia",
                            "Ukraine",
                            "Romania",
                            "Finland",
                            "Croatia",
                            "Slovenia",
                            "Slovakia",
                            "Bulgaria",
                            "Serbia",
                            "Iceland",
                            "Luxembourg",
                            "Estonia",
                            "Latvia",
                            "Lithuania",
                            "Pakistan",
                            "Bangladesh",
                            "Peru",
                            "Ecuador",
                            "Uruguay",
                            "Costa Rica",
                            "Panama",
                            "Morocco",
                            "Kenya",
                            "Qatar",
                            "Kuwait",
                            "Bahrain",
                            "Oman",
                            "Cyprus",
                            "Malta",
                            "Montenegro",
                            "Albania",
                            "North Macedonia"
                        ],
                        "type": "string",
                        "description": "Optional: which country the place should be in (helps when two cities share a name). Leave empty if you’re sure. 🏳️",
                        "default": ""
                    },
                    "proxyConfiguration": {
                        "title": "🔌 Proxy",
                        "type": "object",
                        "description": "Configure Apify Proxy if needed; otherwise we connect directly. ☁️"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
