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

Scrape Airbnb search results and find similar listings near any Airbnb room ID—returns clean listing data (title, price, rating, reviews, image, URL).

- **URL**: https://apify.com/crawlio/airbnb-search-scraper.md
- **Developed by:** [Crawlio](https://apify.com/crawlio) (community)
- **Categories:** Travel
- **Stats:** 3 total users, 0 monthly users, 76.9% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## 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

## Airbnb Search Scraper

### What does Airbnb Search Scraper do?

Airbnb Search Scraper enables you to get more data from [Airbnb](https://www.airbnb.com) than the official Airbnb API.

Airbnb Search Scraper can scrape:

- Listing titles
- Nightly prices
- Host ratings
- Review counts
- Listing images
- Direct listing URLs
- Similar listings near any Airbnb room ID

### Why scrape Airbnb?

Airbnb has millions of users and is a great source of data for real estate analysis, travel planning, competitive pricing research, and market intelligence.

Here are just some of the ways you could use that data:

- Monitor pricing trends across different neighborhoods and property types
- Analyze competitor listings and identify market gaps
- Build datasets for machine learning models in the hospitality industry
- Research seasonal availability and booking patterns
- Compare similar properties to optimize your own listings
- Gather market intelligence for investment decisions

If you would like more inspiration on how scraping Airbnb could help your business or organization, check out our [industry pages](https://apify.com/industries).

### How to scrape Airbnb

It's easy to scrape [Airbnb](https://www.airbnb.com) with Airbnb Search Scraper. Just follow these few steps and you'll get your data in a few minutes.

1. Click on **Try for free**.
2. Select operation:
   - **Search Listings** → Use search queries or filters  
   - **Find Similar Listings** → Enter a room ID  
3. Click on **Run**.
4. When Airbnb Search Scraper has finished, preview or download your data from the **Dataset** tab.

### How much will it cost to scrape Airbnb?

Apify gives you $5 free usage credits every month on the [Apify Free plan](https://apify.com/pricing). You can scrape hundreds of listings per month from Airbnb Search Scraper for that, so those results will be completely free!

But if you need to get more data regularly from Airbnb, you should grab an Apify subscription. We recommend [$29/month Starter plan](https://apify.com/pricing) — you can scrape thousands of listings every month with the $29 monthly plan!

Or get millions of results for $199 with the [Scale plan](https://apify.com/pricing).

### Results

Here is a sample of the data that the Actor produces:

```json
{
  "id": "1643365191700172329",
  "title": "Pod Brooklyn Hotel - Hotel in Brooklyn",
  "url": "https://www.airbnb.com/rooms/1643365191700172329",
  "price": "$199",
  "rating": "4.77",
  "reviews_count": "216",
  "image_url": "https://a0.muscache.com/im/pictures/BnbProperty/BnbProperty-1527053221101894367/original/2da7644d-21f2-4091-bfca-c5b8829fbfe5.jpeg"
}
````

### Supported operations

The Actor supports two operations:

- `search` — search listings by location and dates
- `similar` — find similar listings near a given Airbnb room ID

***

#### Search listings

**Limit:** Up to **1000** listings per run (`limit` max is 1000). Actual returned results may be lower depending on Airbnb availability and pagination.

**Example input:**

```json
{
  "operation": "search",
  "search": {
    "location": "Paris",
    "checkin": "2026-05-20",
    "checkout": "2026-05-27",
    "adults": 2,
    "limit": 15
  }
}
```

**Example dataset item:**

```json
{
  "id": "944075365194275271",
  "title": "Apartment in Paris - Flat with balcony - near jardin des plantes",
  "url": "https://www.airbnb.com/rooms/944075365194275271",
  "price": "$782",
  "rating": "4.83",
  "reviews_count": "23",
  "image_url": "https://a0.muscache.com/im/pictures/hosting/Hosting-944075365194275271/original/21b26113-530e-4757-9fa1-41c026997846.jpeg"
}
```

***

#### Find similar listings

You can get the `listingId` from a room URL. Example:

- URL: `https://www.airbnb.com/rooms/33818764`
- `listingId`: `33818764`

**Limit:** Up to **1000** listings per run (`limit` max is 1000). Actual returned results may be lower depending on Airbnb availability and pagination.

**Example input:**

```json
{
  "operation": "similar",
  "similar": {
    "listingId": "1597685945984399331",
    "checkin": "2026-05-20",
    "checkout": "2026-05-27",
    "adults": 2,
    "limit": 15,
    "radiusKm": 2
  }
}
```

**Example dataset item:**

```json
{
  "id": "938078811135384799",
  "title": "Apartment in Khet Khlong Toei - Bangkok Sukhumvit City Center Light Luxury Apartment/Serviced Apartment/Thonglor Nightclub Bar/BTS Station/Emporium",
  "url": "https://www.airbnb.com/rooms/938078811135384799",
  "price": "$345",
  "rating": "4.95",
  "reviews_count": "94",
  "image_url": "https://a0.muscache.com/im/pictures/2ba5bf5b-507d-49d8-a997-8ef678f9baf3.jpg"
}
```

***

### Tips for scraping Airbnb

- Use specific room IDs to find similar listings in the same area
- Filter results by price range and rating to get more relevant listings
- Schedule regular runs to track pricing changes over time
- Combine data from multiple searches to build comprehensive market datasets
- Be mindful of Airbnb's terms of service and rate limits

### Is it legal to scrape Airbnb?

Note that personal data is protected by GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

We also recommend that you read our blog post: [is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

# Actor input Schema

## `operation` (type: `string`):

Choose whether to run a destination search or find similar listings.

## `search` (type: `object`):

Search for Airbnb listings based on location and dates.

## `similar` (type: `object`):

Find Airbnb listings similar to a source listing.

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

Select proxies to be used.

## Actor input object example

```json
{
  "operation": "search",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One dataset item per returned listing.

## `runSummary` (type: `string`):

Short summary stored in the OUTPUT record of the default key-value store.

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlio/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 = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("crawlio/airbnb-search-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 '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawlio/airbnb-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Search Scraper",
        "description": "Scrape Airbnb search results and find similar listings near any Airbnb room ID—returns clean listing data (title, price, rating, reviews, image, URL).",
        "version": "0.1",
        "x-build-id": "hh7PowzLUNFB1AvPg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlio~airbnb-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlio-airbnb-search-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/crawlio~airbnb-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlio-airbnb-search-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/crawlio~airbnb-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlio-airbnb-search-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": {
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "search",
                            "similar"
                        ],
                        "type": "string",
                        "description": "Choose whether to run a destination search or find similar listings.",
                        "default": "search"
                    },
                    "search": {
                        "title": "Search input",
                        "type": "object",
                        "description": "Search for Airbnb listings based on location and dates.",
                        "properties": {
                            "location": {
                                "title": "Location",
                                "type": "string",
                                "description": "Destination to search, for example Paris or London.",
                                "default": "Paris",
                                "editor": "textfield"
                            },
                            "checkin": {
                                "title": "Check-in",
                                "type": "string",
                                "description": "Check-in date in YYYY-MM-DD format.",
                                "default": "",
                                "editor": "datepicker",
                                "dateType": "absolute"
                            },
                            "checkout": {
                                "title": "Check-out",
                                "type": "string",
                                "description": "Check-out date in YYYY-MM-DD format.",
                                "default": "",
                                "editor": "datepicker",
                                "dateType": "absolute"
                            },
                            "adults": {
                                "title": "Adults",
                                "type": "integer",
                                "description": "Number of adults.",
                                "default": 2,
                                "minimum": 1,
                                "maximum": 16,
                                "editor": "number"
                            },
                            "limit": {
                                "title": "Limit",
                                "type": "integer",
                                "description": "Maximum number of listings to return.",
                                "default": 15,
                                "minimum": 1,
                                "maximum": 1000,
                                "editor": "number"
                            }
                        },
                        "additionalProperties": false
                    },
                    "similar": {
                        "title": "Similar listings input",
                        "type": "object",
                        "description": "Find Airbnb listings similar to a source listing.",
                        "properties": {
                            "listingId": {
                                "title": "Listing ID",
                                "type": "string",
                                "description": "Source Airbnb listing ID.",
                                "default": "33818764",
                                "editor": "textfield"
                            },
                            "checkin": {
                                "title": "Check-in",
                                "type": "string",
                                "description": "Check-in date in YYYY-MM-DD format.",
                                "default": "",
                                "editor": "datepicker",
                                "dateType": "absolute"
                            },
                            "checkout": {
                                "title": "Check-out",
                                "type": "string",
                                "description": "Check-out date in YYYY-MM-DD format.",
                                "default": "",
                                "editor": "datepicker",
                                "dateType": "absolute"
                            },
                            "adults": {
                                "title": "Adults",
                                "type": "integer",
                                "description": "Number of adults.",
                                "default": 2,
                                "minimum": 1,
                                "maximum": 16,
                                "editor": "number"
                            },
                            "limit": {
                                "title": "Limit",
                                "type": "integer",
                                "description": "Maximum number of similar listings to return.",
                                "default": 15,
                                "minimum": 1,
                                "maximum": 1000,
                                "editor": "number"
                            },
                            "radiusKm": {
                                "title": "Similarity radius (km)",
                                "type": "number",
                                "description": "Radius in kilometers to search for similar listings.",
                                "default": 2,
                                "minimum": 0.1,
                                "maximum": 50,
                                "editor": "number"
                            }
                        },
                        "additionalProperties": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Settings",
                        "type": "object",
                        "description": "Select proxies to be used.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
