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

Scrape Airbnb listings by destination, URL, or listing ID. Extract 70+ fields per listing: prices, ratings, reviews, amenities, host info, policies, and more. HTTP-only. $1.99 per 1,000 results. Never charged for empty or broken data.

- **URL**: https://apify.com/sourabhbgp/airbnb-scraper.md
- **Developed by:** [Sourabh Kumar](https://apify.com/sourabhbgp) (community)
- **Categories:** Travel, Real estate
- **Stats:** 46 total users, 14 monthly users, 99.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Scraper: prices, ratings, reviews, amenities (70+ fields)

Scrapes Airbnb listings from the public site and returns structured JSON. Three modes in one actor: search by location, get full listing details, or pull guest reviews. HTTP-only, so no browser and no Playwright. Runs fast and stays cheap.

You pay nothing for empty or broken results. If a scraped record is missing its `id` or `url`, it's not billed.

### What you can extract from Airbnb

| Mode | Input | What you get |
|------|-------|--------------|
| **search** | Location strings + filters | Listings for your query: price, rating, room type, host info |
| **listing** | Listing URLs or IDs | Full record per listing: 70+ fields including amenities, policies, host bio, sleeping arrangements |
| **reviews** | Listing URLs or IDs | Every guest review with rating, text, reviewer details, language |

Switch modes with the `mode` field. One actor, one schema.

### Pricing

**$1.99 per 1,000 results.** Flat rate.

| Results | Cost |
|---------|------|
| 1,000 | $1.99 |
| 10,000 | $19.90 |
| 100,000 | $199.00 |

No charge for bad data. Records without `id` or `url` aren't billed. If a run returns zero results, you pay $0.

### 70+ Airbnb data fields (listing mode)

Listing mode returns every field below. Search mode returns the Identity, Location, Property, Pricing, Ratings, Host (core), Booking, and Badges groups. Reviews mode returns the Review record fields.

#### Identity

| Field | Description |
|-------|-------------|
| `id` | Airbnb listing ID |
| `url` | Full listing URL |
| `androidLink` | Android app deep link |
| `iosLink` | iOS app deep link |
| `name` | Listing title |
| `thumbnail` | Primary photo URL |

#### Location

| Field | Description |
|-------|-------------|
| `city` | City |
| `neighborhood` | Neighborhood name |
| `latitude` | GPS latitude |
| `longitude` | GPS longitude |

#### Property

| Field | Description |
|-------|-------------|
| `roomType` | Entire home, private room, or shared room |
| `propertyType` | Property subtype (apartment, villa, cabin, ...) |
| `homeTier` | Airbnb tier label (1 = standard, 2 = Plus, 3 = Luxe) |
| `bedrooms` | Number of bedrooms |
| `beds` | Number of beds |
| `bathrooms` | Number of bathrooms |
| `personCapacity` | Max guest count |

#### Pricing

| Field | Description |
|-------|-------------|
| `pricePerNight` | Nightly rate |
| `totalPrice` | Total for stay when dates are supplied |
| `currency` | ISO currency code (USD, EUR, GBP, ...) |
| `cleaningFee` | Cleaning fee (auth-only, null for anonymous runs) |
| `serviceFee` | Airbnb service fee (auth-only, null for anonymous runs) |
| `totalBeforeTaxes` | Subtotal before tax (auth-only, null for anonymous runs) |

#### Ratings

| Field | Description |
|-------|-------------|
| `rating` | Overall star rating (1 to 5) |
| `reviewsCount` | Total review count |
| `ratingBreakdown` | Per-category scores: cleanliness, accuracy, check-in, communication, location, value |

#### Host

| Field | Description |
|-------|-------------|
| `hostId` | Host's Airbnb ID |
| `hostName` | Host first name |
| `hostAbout` | Host bio |
| `hostResponseRate` | Percent of messages answered |
| `hostResponseTime` | Typical response time label |
| `coHosts` | Array of co-hosts |

#### Booking

| Field | Description |
|-------|-------------|
| `instantBook` | Instant booking enabled (auth-only, null for anonymous runs) |
| `minNights` | Minimum nights (auth-only, null for anonymous runs) |
| `maxNights` | Maximum nights (auth-only, null for anonymous runs) |
| `maxGuests` | Guest limit |

#### Badges

| Field | Description |
|-------|-------------|
| `isGuestFavorite` | Guest Favorite badge |
| `isNewListing` | New listing flag |
| `isSuperhost` | Superhost status |

#### Policies

| Field | Description |
|-------|-------------|
| `smokingAllowed` | Smoking policy |
| `partiesAllowed` | Events/parties policy |
| `commercialPhotographyAllowed` | Commercial photography policy |
| `selfCheckIn` | Self check-in available |
| `cancellationPolicy` | Policy name (Flexible, Moderate, Strict, ...) |
| `houseRules` | Full house rules text |
| `checkInTime` | Check-in window |
| `checkOutTime` | Check-out time |

#### Amenities

| Field | Description |
|-------|-------------|
| `amenities[]` | Full amenity list as string array |
| `amenityWifi` | Wi-Fi available |
| `amenityKitchen` | Kitchen |
| `amenityAC` | Air conditioning |
| `amenityHeating` | Heating |
| `amenityParking` | Parking |
| `amenityPool` | Pool |
| `amenityWasher` | Washer |
| `amenityTv` | TV |
| `amenityWorkspace` | Dedicated workspace |
| `amenityPetsAllowed` | Pets allowed |

#### Content

| Field | Description |
|-------|-------------|
| `description` | Full listing description |
| `descriptionOriginalLanguage` | Language code of the original description |
| `neighborhoodOverview` | Host-written area description |
| `sleepingArrangements` | Bed/room layout summary |

#### Quality

| Field | Description |
|-------|-------------|
| `completenessScore` | 0 to 100 score based on how many key fields are populated |

#### Review record fields (reviews mode)

| Field | Description |
|-------|-------------|
| `listingId` | Associated listing ID |
| `listingName` | Listing title |
| `reviewId` | Review ID |
| `reviewerName` | Guest first name |
| `reviewerLocation` | Guest location / tenure string |
| `reviewDate` | Date of review |
| `reviewText` | Full review text |
| `rating` | Star rating (1 to 5) |
| `language` | Language code |

### Use cases

- **Rental market analysis.** Compare prices, occupancy, and amenities across cities or neighborhoods.
- **Short-term rental investment research.** Evaluate Airbnb performance by property type and location before buying.
- **Competitor price monitoring.** Track nightly rates and amenities for comparable listings on a schedule.
- **Real estate market research.** Understand supply, demand, and pricing trends in any market.
- **Review sentiment analysis.** Pull thousands of guest reviews for NLP, feedback work, or model training data.
- **Travel data pipelines.** Feed Airbnb inventory into booking tools, dashboards, or AI agents.
- **Academic and industry research.** Study the short-term rental economy at scale with structured JSON or CSV.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | enum | `search` | `search`, `listing`, or `reviews` |
| `locationQueries` | string[] | `["New York"]` | Locations to search (search mode) |
| `urls` | string[] | `[]` | Listing URLs or IDs (listing / reviews mode) |
| `maxResults` | integer | `50` | Max results per location or listing. `0` = unlimited |
| `checkIn` | string | (none) | Check-in date YYYY-MM-DD. Required for price breakdown |
| `checkOut` | string | (none) | Check-out date YYYY-MM-DD |
| `priceMin` | integer | (none) | Min nightly price |
| `priceMax` | integer | (none) | Max nightly price |
| `currency` | string | `USD` | Currency code (USD, EUR, GBP, ...) |
| `roomType` | enum | `any` | `any`, `Entire home/apt`, `Private room`, `Shared room` |
| `minBedrooms` | integer | (none) | Min bedroom count |
| `minBathrooms` | integer | (none) | Min bathroom count |
| `adults` | integer | `1` | Number of adult guests |
| `superhostOnly` | boolean | `false` | Restrict to Superhost listings |

#### Search by location

```json
{
    "mode": "search",
    "locationQueries": ["Paris, France", "Barcelona, Spain"],
    "maxResults": 100,
    "checkIn": "2026-06-01",
    "checkOut": "2026-06-07",
    "priceMax": 200,
    "currency": "EUR"
}
````

#### Get listing details

```json
{
    "mode": "listing",
    "urls": [
        "https://www.airbnb.com/rooms/12345678",
        "https://www.airbnb.co.uk/rooms/87654321",
        "55555555"
    ]
}
```

#### Scrape reviews

```json
{
    "mode": "reviews",
    "urls": ["https://www.airbnb.com/rooms/12345678"],
    "maxResults": 200
}
```

### Output example (listing mode)

```json
{
    "id": "12345678",
    "url": "https://www.airbnb.com/rooms/12345678",
    "androidLink": "airbnb://rooms/12345678",
    "iosLink": "airbnb://rooms/12345678",
    "name": "Charming Studio in Le Marais",
    "thumbnail": "https://a0.muscache.com/im/pictures/abc123.jpg",
    "city": "Paris",
    "neighborhood": "Le Marais",
    "latitude": 48.8566,
    "longitude": 2.3522,
    "roomType": "Entire home/apt",
    "propertyType": "Apartment",
    "homeTier": 1,
    "bedrooms": 1,
    "beds": 1,
    "bathrooms": 1,
    "personCapacity": 2,
    "pricePerNight": null,
    "totalPrice": null,
    "currency": null,
    "cleaningFee": null,
    "serviceFee": null,
    "totalBeforeTaxes": null,
    "rating": 4.87,
    "reviewsCount": 342,
    "ratingBreakdown": {
        "cleanliness": 4.9,
        "accuracy": 4.8,
        "checkIn": 4.9,
        "communication": 4.9,
        "location": 4.7,
        "value": 4.8
    },
    "hostId": "98765432",
    "hostName": "Marie",
    "hostAbout": "Bonjour! I love hosting travelers from around the world.",
    "hostResponseRate": "100%",
    "hostResponseTime": "within an hour",
    "coHosts": [],
    "instantBook": null,
    "minNights": null,
    "maxNights": null,
    "maxGuests": 2,
    "isGuestFavorite": true,
    "isNewListing": false,
    "isSuperhost": true,
    "smokingAllowed": false,
    "partiesAllowed": false,
    "commercialPhotographyAllowed": false,
    "selfCheckIn": true,
    "cancellationPolicy": "Moderate",
    "houseRules": "No smoking. No parties. Quiet hours after 10pm.",
    "checkInTime": "3:00 PM",
    "checkOutTime": "11:00 AM",
    "amenities": ["Wifi", "Kitchen", "Air conditioning", "Washer", "Dedicated workspace"],
    "amenityWifi": true,
    "amenityKitchen": true,
    "amenityAC": true,
    "amenityHeating": true,
    "amenityParking": false,
    "amenityPool": false,
    "amenityWasher": true,
    "amenityTv": true,
    "amenityWorkspace": true,
    "amenityPetsAllowed": false,
    "description": "Welcome to this bright studio in the heart of Le Marais...",
    "descriptionOriginalLanguage": "fr",
    "neighborhoodOverview": "Le Marais is one of Paris's most historic and vibrant neighborhoods.",
    "sleepingArrangements": "Bedroom 1: 1 queen bed",
    "completenessScore": 90,
    "scrapedAt": "2026-04-18T12:00:00.000Z"
}
```

### Tips

- Auth-only fields (`cleaningFee`, `serviceFee`, `totalBeforeTaxes`, `minNights`, `maxNights`, `instantBook`) are only returned by Airbnb to logged-in sessions. This actor runs anonymously, so these come back as `null`.
- `completenessScore` above 80 in listing mode means a fully populated record. Search mode scores are lower by design because search results carry less per-listing data.
- Any URL format works: `.com`, `.co.uk`, `.co.in`, `.de`, bare numeric IDs, and `/rooms/plus/` URLs are all accepted.
- Search mode paginates up to 15 pages per location. Airbnb's HTML results overlap across pages, so the scraper deduplicates by listing ID and stops when a page adds zero new results. Typical yield: 20 to 80 unique listings per location.
- Reviews mode only needs the listing ID or URL. The actor fetches the listing name automatically.

### FAQ

#### Is this an Airbnb API alternative?

Yes. Airbnb shut down its public API for third-party developers. This actor reads the same web pages guests see and returns clean JSON. No API key, no auth, no partnership.

#### Is Airbnb scraping legal?

Scraping public Airbnb data is generally considered legal in the US after *hiQ Labs v. LinkedIn*. Check your local rules and handle personal data (reviewer names, host profiles) responsibly. This actor does not bypass auth, defeat CAPTCHAs, or access private listings.

#### How many listings can I get per location?

Airbnb's public search returns 20 to 80 unique listings per query depending on the city, filters, and dates. The actor dedupes across pages and stops when there's nothing new. To cover a market deeply, run multiple search variations (different date ranges, neighborhoods, room types, price brackets) and merge the datasets.

#### How fast is it?

A 50-result search finishes in about 20 to 40 seconds. A single listing fetch takes 1 to 2 seconds. No headless browser means faster runs and much less compute than Playwright-based scrapers.

#### Does it handle rate limiting?

Yes. Retries with exponential backoff (2s, 4s, 8s) on HTTP 429. Small delays between pages keep requests polite. You can also run it through Apify's residential proxy if you need more resilience.

#### How do I get check-in / check-out specific pricing?

Pass `checkIn` and `checkOut` (YYYY-MM-DD) in the input. The actor threads the dates into the search URL so you get accurate nightly rate and total for the stay.

#### What's NOT available?

Cleaning fees, service fees, min/max nights, and the instant-book flag are only exposed by Airbnb to logged-in sessions. Those come back `null` for anonymous scraping. Everything else (title, description, photos, amenities, host info, reviews, coordinates, nightly price, policies) works fine.

#### Can I export to CSV, Excel, or Google Sheets?

Yes. Apify exports the dataset as JSON, CSV, Excel (XLSX), HTML, XML, or RSS. You can also push to Google Sheets, Airtable, Make, Zapier, or any webhook through Apify Integrations.

# Actor input Schema

## `mode` (type: `string`):

Scraping mode: search for listings by location, get listing details, or scrape reviews.

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

Location names to search for listings (used in search mode). Examples: New York, Paris, Tokyo.

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

Airbnb listing URLs for listing/reviews mode. Also accepts bare listing IDs.

## `maxResults` (type: `integer`):

Maximum number of results to return. 0 = unlimited.

## `checkIn` (type: `string`):

Check-in date for search (YYYY-MM-DD).

## `checkOut` (type: `string`):

Check-out date for search (YYYY-MM-DD).

## `priceMin` (type: `integer`):

Minimum price per night filter.

## `priceMax` (type: `integer`):

Maximum price per night filter.

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

Currency code for prices (e.g., USD, EUR, GBP).

## `roomType` (type: `string`):

Filter by room type.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms.

## `minBathrooms` (type: `integer`):

Minimum number of bathrooms.

## `adults` (type: `integer`):

Number of adult guests.

## `superhostOnly` (type: `boolean`):

Only show listings from Superhosts.

## Actor input object example

```json
{
  "mode": "search",
  "locationQueries": [
    "New York"
  ],
  "maxResults": 50,
  "currency": "USD",
  "roomType": "any",
  "adults": 1,
  "superhostOnly": false
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

Scraped Airbnb listings, details, or reviews

# 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": [
        "New York"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourabhbgp/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": ["New York"] }

# Run the Actor and wait for it to finish
run = client.actor("sourabhbgp/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": [
    "New York"
  ]
}' |
apify call sourabhbgp/airbnb-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Scraper",
        "description": "Scrape Airbnb listings by destination, URL, or listing ID. Extract 70+ fields per listing: prices, ratings, reviews, amenities, host info, policies, and more. HTTP-only. $1.99 per 1,000 results. Never charged for empty or broken data.",
        "version": "0.0",
        "x-build-id": "NcuDU74JDXw6IUOMV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sourabhbgp~airbnb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sourabhbgp-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/sourabhbgp~airbnb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sourabhbgp-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/sourabhbgp~airbnb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sourabhbgp-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "listing",
                            "reviews"
                        ],
                        "type": "string",
                        "description": "Scraping mode: search for listings by location, get listing details, or scrape reviews.",
                        "default": "search"
                    },
                    "locationQueries": {
                        "title": "Location Queries",
                        "type": "array",
                        "description": "Location names to search for listings (used in search mode). Examples: New York, Paris, Tokyo.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "Listing URLs",
                        "type": "array",
                        "description": "Airbnb listing URLs for listing/reviews mode. Also accepts bare listing IDs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of results to return. 0 = unlimited.",
                        "default": 50
                    },
                    "checkIn": {
                        "title": "Check-in Date",
                        "type": "string",
                        "description": "Check-in date for search (YYYY-MM-DD)."
                    },
                    "checkOut": {
                        "title": "Check-out Date",
                        "type": "string",
                        "description": "Check-out date for search (YYYY-MM-DD)."
                    },
                    "priceMin": {
                        "title": "Minimum Price",
                        "type": "integer",
                        "description": "Minimum price per night filter."
                    },
                    "priceMax": {
                        "title": "Maximum Price",
                        "type": "integer",
                        "description": "Maximum price per night filter."
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "Currency code for prices (e.g., USD, EUR, GBP).",
                        "default": "USD"
                    },
                    "roomType": {
                        "title": "Room Type",
                        "enum": [
                            "any",
                            "Entire home/apt",
                            "Private room",
                            "Shared room"
                        ],
                        "type": "string",
                        "description": "Filter by room type.",
                        "default": "any"
                    },
                    "minBedrooms": {
                        "title": "Minimum Bedrooms",
                        "type": "integer",
                        "description": "Minimum number of bedrooms."
                    },
                    "minBathrooms": {
                        "title": "Minimum Bathrooms",
                        "type": "integer",
                        "description": "Minimum number of bathrooms."
                    },
                    "adults": {
                        "title": "Number of Adults",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of adult guests.",
                        "default": 1
                    },
                    "superhostOnly": {
                        "title": "Superhost Only",
                        "type": "boolean",
                        "description": "Only show listings from Superhosts.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
