# Airbnb Scraper - Most Comprehensive (`kaix/airbnb-listing-scraper`) Actor

🔥 ~$0.5/1K places 🔥 Scrape Airbnb listings by URL, listing ID, or location search. Returns full listing details including description, amenities, host info, location, photos, policies, and ratings. Optionally fetches reviews inline.

- **URL**: https://apify.com/kaix/airbnb-listing-scraper.md
- **Developed by:** [Kai](https://apify.com/kaix) (community)
- **Categories:** E-commerce, Travel, Real estate
- **Stats:** 9 total users, 3 monthly users, 95.7% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 places

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Listing Scraper

Scrape Airbnb listings by URL, listing ID, or location search. Returns full listing details including description, amenities, host info, location, photos, policies, and ratings. Optionally fetches reviews inline.

### Why use this scraper?

- Full listing data: description, amenities, photos, sleeping arrangements, highlights, house rules
- Host profile with superhost status, stats, co-hosts, and years hosting
- Location details with coordinates, neighborhood highlights, and getting-around info
- Review summary with category ratings, rating distribution, and review tags
- Optional inline reviews with full text, reviewer profiles, photos, and host responses
- Search by location with filters for dates, guests, price, property type, and more
- Retries with exponential backoff and rotates Apify proxy sessions on block

### Use cases

- Build vacation rental databases from Airbnb search results
- Compare listing amenities, pricing, and ratings across markets
- Monitor host portfolios and review sentiment over time
- Enrich property datasets with photos, descriptions, and guest reviews

### How to use

#### Look up a single listing

```json
{
  "listings": ["https://www.airbnb.com/rooms/36276450"]
}
````

#### Look up multiple listings

```json
{
  "listings": [
    "36276450",
    "https://www.airbnb.co.uk/rooms/12345678?check_in=2026-06-01"
  ]
}
```

#### Search by location

```json
{
  "location": "San Francisco, CA",
  "maxListings": 10
}
```

#### Search with filters

```json
{
  "location": "Miami, FL",
  "checkIn": "2026-07-01",
  "checkOut": "2026-07-07",
  "adults": 2,
  "minPrice": 100,
  "maxPrice": 500,
  "propertyType": ["entire_home"],
  "minBedrooms": 2,
  "superhostOnly": true,
  "instantBook": true,
  "maxListings": 20,
  "maxSearchPages": 3
}
```

#### Combine search and direct listings

```json
{
  "location": "Austin, TX",
  "listings": ["36276450"],
  "maxListings": 5,
  "includeReviews": true,
  "maxReviewsPerListing": 30
}
```

#### Include reviews

```json
{
  "listings": ["36276450"],
  "includeReviews": true,
  "maxReviewsPerListing": 50,
  "reviewsSortBy": "MOST_RECENT"
}
```

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `listings` | string\[] | `[]` | Airbnb listing URLs or numeric IDs |
| `location` | string | | Location to search (city, address, region) |
| `checkIn` | string | | Check-in date (`YYYY-MM-DD`) |
| `checkOut` | string | | Check-out date (`YYYY-MM-DD`) |
| `adults` | number | `1` | Number of adults |
| `children` | number | `0` | Number of children |
| `infants` | number | `0` | Number of infants |
| `pets` | number | `0` | Number of pets |
| `minPrice` | number | | Minimum price filter |
| `maxPrice` | number | | Maximum price filter |
| `propertyType` | string\[] | | Filter: `entire_home`, `private_room`, `shared_room`, `hotel_room` |
| `minBedrooms` | number | | Minimum bedrooms |
| `minBathrooms` | number | | Minimum bathrooms |
| `minBeds` | number | | Minimum beds |
| `superhostOnly` | boolean | `false` | Only show superhost listings |
| `instantBook` | boolean | `false` | Only show instant-bookable listings |
| `maxListings` | number | `20` | Max listings to collect from search |
| `maxSearchPages` | number | `5` | Max search result pages to crawl |
| `includeReviews` | boolean | `false` | Fetch and embed reviews inline |
| `maxReviewsPerListing` | number | `20` | Max reviews per listing (0 = unlimited) |
| `reviewsSortBy` | enum | `MOST_RECENT` | `MOST_RECENT`, `RATING_DESC`, `RATING_ASC` |

At least one of `listings` or `location` must be provided.

### Output

One JSON object per listing:

```json
{
  "id": "36276450",
  "url": "https://www.airbnb.com/rooms/36276450",
  "name": "Bright Loft in the Heart of Le Marais",
  "propertyType": "Entire rental unit",
  "personCapacity": 4,
  "htmlDescription": "<p>Charming 50m² loft on a quiet cobblestone street...</p>",
  "descriptionSections": [
    { "title": "The space", "htmlText": "Open-plan living with 4-metre ceilings..." },
    { "title": "Guest access", "htmlText": "Private entrance with keypad..." }
  ],
  "heroImages": [
    { "id": "1234567890", "baseUrl": "https://a0.muscache.com/im/pictures/...", "accessibilityLabel": "Living room with exposed beams" }
  ],
  "photoTourImages": [
    {
      "id": "1234567890",
      "baseUrl": "https://a0.muscache.com/im/pictures/...",
      "aspectRatio": 1.5,
      "orientation": "LANDSCAPE",
      "caption": "Living room",
      "isProfessional": true,
      "isVerified": true
    }
  ],
  "rooms": [
    { "title": "Bedroom", "imageIds": ["1234567890"], "highlights": ["1 queen bed", "Closet"] }
  ],
  "sleepingArrangements": [
    {
      "title": "Bedroom",
      "subtitle": "1 queen bed",
      "images": [{ "id": "1234567890", "baseUrl": "https://a0.muscache.com/im/pictures/...", "aspectRatio": 1.5, "orientation": "LANDSCAPE" }]
    }
  ],
  "amenitiesPreview": [
    { "title": "Wifi", "available": true, "icon": "WIFI" },
    { "title": "Kitchen", "available": true, "icon": "KITCHEN" }
  ],
  "amenitiesGrouped": [
    {
      "groupTitle": "Bathroom",
      "amenities": [
        { "id": "41", "title": "Shampoo", "subtitle": "", "available": true, "icon": "SOAP" },
        { "id": "45", "title": "Hair dryer", "subtitle": "", "available": true, "icon": "HAIR_DRYER" }
      ]
    }
  ],
  "highlights": [
    { "title": "Experienced host", "subtitle": "Marie has 1,200 reviews", "icon": "MEDAL", "type": "SUPERHOST" }
  ],
  "overallRating": 4.92,
  "overallReviewCount": 1247,
  "isGuestFavorite": true,
  "categoryRatings": [
    { "categoryType": "CLEANLINESS", "label": "Cleanliness", "localizedRating": "5.0", "percentage": 100 },
    { "categoryType": "ACCURACY", "label": "Accuracy", "localizedRating": "4.9", "percentage": 98 },
    { "categoryType": "CHECKIN", "label": "Check-in", "localizedRating": "5.0", "percentage": 100 },
    { "categoryType": "COMMUNICATION", "label": "Communication", "localizedRating": "5.0", "percentage": 100 },
    { "categoryType": "LOCATION", "label": "Location", "localizedRating": "4.9", "percentage": 98 },
    { "categoryType": "VALUE", "label": "Value", "localizedRating": "4.7", "percentage": 94 }
  ],
  "ratingDistribution": [
    { "label": "5", "localizedRating": "5", "percentage": 88, "accessibilityLabel": "88% of reviews are 5 stars" },
    { "label": "4", "localizedRating": "4", "percentage": 8, "accessibilityLabel": "8% of reviews are 4 stars" }
  ],
  "reviewTags": [
    { "name": "location", "localizedName": "Location", "count": 320 },
    { "name": "clean", "localizedName": "Clean", "count": 280 }
  ],
  "location": {
    "lat": 48.8566,
    "lng": 2.3522,
    "subtitle": "Le Marais, Paris, France",
    "defaultZoomLevel": 15,
    "isLocationVerified": true,
    "neighborhoodHighlights": "Steps from Place des Vosges and Rue de Rivoli...",
    "gettingAround": "Métro line 1 (Saint-Paul) is a 2-minute walk..."
  },
  "host": {
    "name": "Marie",
    "isSuperhost": true,
    "isVerified": true,
    "yearsHosting": 8,
    "ratingCount": 1247,
    "ratingAverage": 4.92,
    "about": "Born and raised in Paris...",
    "stats": [
      { "label": "Reviews", "value": "1,247", "type": "REVIEW_COUNT" },
      { "label": "Rating", "value": "4.92", "type": "RATING" }
    ],
    "hostHighlights": [
      { "icon": "MEDAL", "title": "Superhost" },
      { "icon": "ID_VERIFIED", "title": "Identity verified" }
    ],
    "cohosts": [{ "name": "Pierre" }]
  },
  "houseRules": [
    { "title": "Check-in after 3:00 PM" },
    { "title": "Checkout before 11:00 AM" },
    { "title": "No smoking" },
    { "title": "No pets" }
  ],
  "cancellationPolicyName": "Moderate",
  "maxGuestCapacity": 4,
  "petsAllowed": false,
  "canInstantBook": true,
  "reviews": [
    {
      "id": "987654321",
      "rating": 5,
      "comments": "Absolutely loved this place! The location is unbeatable...",
      "language": "en",
      "createdAt": "2026-03-10T14:30:00Z",
      "localizedDate": "March 2026",
      "reviewer": {
        "firstName": "Sarah",
        "isSuperhost": false,
        "pictureUrl": "https://a0.muscache.com/im/pictures/user/..."
      },
      "response": "Thank you Sarah! So glad you enjoyed Le Marais.",
      "localizedRespondedDate": "March 2026",
      "reviewHighlight": "The location is unbeatable",
      "needsTranslation": false
    }
  ],
  "scrapedAt": "2026-04-17T10:00:00.000Z"
}
```

*Fields truncated for readability. Actual output includes full photo tours, all amenity groups, complete house rules sections, safety & property info, SEO metadata, and all review fields including reviewer/reviewee profiles, media items, and translations.*

### Proxy recommendations

Residential proxies are strongly recommended for Airbnb. The scraper defaults to Apify proxy (`useApifyProxy: true`). For best results, use residential proxy groups:

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

You can also provide your own proxy URLs:

```json
{
  "proxyConfiguration": {
    "proxyUrls": ["http://user:pass@proxy-host:8080"]
  }
}
```

### Technical notes

- Search results and direct listing IDs are deduplicated before processing.
- Each listing is fetched in its own proxy session to reduce blocking risk.

# Actor input Schema

## `listings` (type: `array`):

Airbnb listing URLs or numeric IDs (e.g. https://www.airbnb.com/rooms/36276450 or 36276450).

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

Location to search in (e.g. 'Paris, France', 'New York, NY', 'Tokyo'). Leave blank to use Listing URLs mode instead.

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

Check-in date in YYYY-MM-DD format (e.g. '2026-06-01').

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

Check-out date in YYYY-MM-DD format (e.g. '2026-06-07').

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

Number of adult guests.

## `children` (type: `integer`):

Number of child guests.

## `infants` (type: `integer`):

Number of infant guests.

## `pets` (type: `integer`):

Number of pets.

## `minPrice` (type: `integer`):

Minimum price per night in the listing's currency.

## `maxPrice` (type: `integer`):

Maximum price per night in the listing's currency.

## `propertyType` (type: `array`):

Filter by property type. Select one or more: entire\_home, private\_room, shared\_room, hotel\_room.

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

Minimum number of bedrooms.

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

Minimum number of bathrooms.

## `minBeds` (type: `integer`):

Minimum number of beds.

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

Only include listings from Superhosts.

## `instantBook` (type: `boolean`):

Only include listings with Instant Book enabled.

## `maxListings` (type: `integer`):

Maximum number of listings to return from search.

## `maxSearchPages` (type: `integer`):

Maximum number of search result pages to crawl.

## `includeReviews` (type: `boolean`):

Fetch and include reviews for each listing. Each review is charged separately.

## `maxReviewsPerListing` (type: `integer`):

Maximum number of reviews per listing. Set to 0 for no limit. Only used when Include Reviews is enabled.

## `reviewsSortBy` (type: `string`):

How to sort reviews (only used when Include Reviews is enabled).

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

Proxy settings. Residential proxies are recommended for Airbnb.

## Actor input object example

```json
{
  "listings": [
    "https://www.airbnb.com/rooms/36276450"
  ],
  "adults": 1,
  "children": 0,
  "infants": 0,
  "pets": 0,
  "superhostOnly": false,
  "instantBook": false,
  "maxListings": 20,
  "maxSearchPages": 5,
  "includeReviews": false,
  "maxReviewsPerListing": 20,
  "reviewsSortBy": "MOST_RECENT",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "listings": [
        "https://www.airbnb.com/rooms/36276450"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kaix/airbnb-listing-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 = {
    "listings": ["https://www.airbnb.com/rooms/36276450"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("kaix/airbnb-listing-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 '{
  "listings": [
    "https://www.airbnb.com/rooms/36276450"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call kaix/airbnb-listing-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Scraper - Most Comprehensive",
        "description": "🔥 ~$0.5/1K places 🔥 Scrape Airbnb listings by URL, listing ID, or location search. Returns full listing details including description, amenities, host info, location, photos, policies, and ratings. Optionally fetches reviews inline.",
        "version": "0.1",
        "x-build-id": "B4mWbCWfm8jMIazMT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kaix~airbnb-listing-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kaix-airbnb-listing-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/kaix~airbnb-listing-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kaix-airbnb-listing-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/kaix~airbnb-listing-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kaix-airbnb-listing-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": {
                    "listings": {
                        "title": "Listing URLs or IDs",
                        "type": "array",
                        "description": "Airbnb listing URLs or numeric IDs (e.g. https://www.airbnb.com/rooms/36276450 or 36276450).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to search in (e.g. 'Paris, France', 'New York, NY', 'Tokyo'). Leave blank to use Listing URLs mode instead."
                    },
                    "checkIn": {
                        "title": "Check-in Date",
                        "type": "string",
                        "description": "Check-in date in YYYY-MM-DD format (e.g. '2026-06-01')."
                    },
                    "checkOut": {
                        "title": "Check-out Date",
                        "type": "string",
                        "description": "Check-out date in YYYY-MM-DD format (e.g. '2026-06-07')."
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of adult guests.",
                        "default": 1
                    },
                    "children": {
                        "title": "Children",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of child guests.",
                        "default": 0
                    },
                    "infants": {
                        "title": "Infants",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of infant guests.",
                        "default": 0
                    },
                    "pets": {
                        "title": "Pets",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of pets.",
                        "default": 0
                    },
                    "minPrice": {
                        "title": "Min Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price per night in the listing's currency."
                    },
                    "maxPrice": {
                        "title": "Max Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price per night in the listing's currency."
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "type": "array",
                        "description": "Filter by property type. Select one or more: entire_home, private_room, shared_room, hotel_room.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minBedrooms": {
                        "title": "Min Bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bedrooms."
                    },
                    "minBathrooms": {
                        "title": "Min Bathrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bathrooms."
                    },
                    "minBeds": {
                        "title": "Min Beds",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of beds."
                    },
                    "superhostOnly": {
                        "title": "Superhost Only",
                        "type": "boolean",
                        "description": "Only include listings from Superhosts.",
                        "default": false
                    },
                    "instantBook": {
                        "title": "Instant Book",
                        "type": "boolean",
                        "description": "Only include listings with Instant Book enabled.",
                        "default": false
                    },
                    "maxListings": {
                        "title": "Max Listings",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of listings to return from search.",
                        "default": 20
                    },
                    "maxSearchPages": {
                        "title": "Max Search Pages",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum number of search result pages to crawl.",
                        "default": 5
                    },
                    "includeReviews": {
                        "title": "Include Reviews",
                        "type": "boolean",
                        "description": "Fetch and include reviews for each listing. Each review is charged separately.",
                        "default": false
                    },
                    "maxReviewsPerListing": {
                        "title": "Max Reviews Per Listing",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of reviews per listing. Set to 0 for no limit. Only used when Include Reviews is enabled.",
                        "default": 20
                    },
                    "reviewsSortBy": {
                        "title": "Sort Reviews By",
                        "enum": [
                            "MOST_RECENT",
                            "RATING_DESC",
                            "RATING_ASC"
                        ],
                        "type": "string",
                        "description": "How to sort reviews (only used when Include Reviews is enabled).",
                        "default": "MOST_RECENT"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are recommended for Airbnb.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
