# Airbnb Scraper — Listings, Prices, Reviews & Availability (`trakk/airbnb-scraper-v2`) Actor

Scrape Airbnb listings by location or URL. Export prices, ratings, photos, amenities, host data, reviews, and availability calendars for short-term rental and market research.

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

## Pricing

from $2.00 / 1,000 airbnb listings

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

## How to integrate an Actor?

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

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 — Listings, Prices, Reviews & Availability

Create structured Airbnb datasets from destinations and room URLs. Collect prices, ratings, listing locations, photos, property details, amenities, host profiles, guest reviews, and availability metrics for travel research and short-term rental analysis.

✅ Destination search and direct room URLs  
✅ Pricing, ratings, capacity, and property details  
✅ Hosts, amenities, reviews, and calendar metrics  
✅ Automatic input detection and listing deduplication  
✅ Separate analysis-ready dataset views

---

### 💡 Why this Actor

Many Airbnb scrapers stop at the listing card — a name, a price, a rating. This one goes to the data that short-term-rental operators, analysts, and investors actually decide on:

- 📅 **Availability & occupancy signals** — available vs. blocked days plus 30 / 90 / 365-day metrics, not just a nightly price
- 📊 **Review intelligence** — full guest review text *and* a per-listing summary (rating breakdown, category ratings, sentiment) instead of raw dumps
- 🧩 **Analysis-ready split datasets** — listings, pricing, hosts, amenities, and reviews in separate clean tables, so no nested-array wrangling in your spreadsheet or BI tool
- 🔎 **Search *or* audit in one field** — mix destinations and exact room URLs in the same `queries` list; the Actor auto-detects each
- 🧭 **Honest statuses, no fake errors** — `detailStatus` / `reviewsStatus` / `calendarStatus` tell you exactly what each listing returned; an unavailable optional stage never turns a real listing into an error row

**⚡ Fast** for wide price/supply scans, **🔎 Full** when you need hosts, amenities, reviews, and calendars — pick the depth per run so you only pay for the data you use.

---

#### 📸 Sample output

![Airbnb Scraper sample output — real data fields](https://api.apify.com/v2/key-value-stores/sAkX2yFx0oRX6gf6p/records/airbnb-scraper-v2-sample)

*A real run's output — exportable to JSON, CSV, or Excel.*

---

### ✨ What can be collected?

#### 🏠 Listing information

- Listing ID and canonical Airbnb URL
- Name, title, and displayed location
- Room type and property type
- Guest capacity
- Bedrooms, beds, and bathrooms
- Listing badges and highlights

#### 💰 Pricing

- Displayed price
- Price per night
- Total price
- Original or crossed-out price when published
- Currency
- Date-aware prices when a stay range is provided

#### 🛏️ Property details

- Complete public description
- Amenities
- House rules
- Safety information
- Check-in details
- Property highlights

#### 👤 Host information

- Host name and profile information
- Superhost status
- Response rate and response time
- Host highlights
- Public host statistics returned by Airbnb

#### ⭐ Reviews and availability

- Guest review text
- Review date and reviewer information
- Review count and rating
- Category ratings
- Available and blocked calendar days
- 30, 90, and 365-day availability metrics

#### 🖼️ Media

- Main listing image
- Listing photo collections
- Image captions when available

---

### 🎛️ Scraping modes

#### ⚡ Fast mode

Fast mode is designed for destination discovery, price scans, and larger listing samples. It collects structured Airbnb search-card data.

Fast mode can return:

- Listing ID and URL
- Listing title and displayed location
- Displayed price and currency
- Rating and total review count
- Capacity, bedrooms, beds, and bathrooms
- Room type and badges
- Main image and photo collection
- `reviewsStatus=not_requested`
- `calendarStatus=not_requested`

```json
{
  "mode": "fast",
  "queries": ["Prague"],
  "adults": 2,
  "maxItemsPerQuery": 20,
  "currency": "EUR"
}
````

#### 🔎 Full mode

Full mode performs detailed property enrichment and requests the supported public listing sections, review data, host information, and calendar metrics.

Full mode can return:

- Complete property description
- Detailed amenities and highlights
- Host profile and response information
- House rules and safety information
- Guest reviews and review summaries
- Category ratings
- Calendar availability and occupancy-style metrics
- Explicit detail, review, and calendar statuses

```json
{
  "mode": "full",
  "queries": ["Barcelona"],
  "maxItemsPerQuery": 10,
  "maxReviewsPerListing": 25,
  "currency": "EUR"
}
```

When an optional listing section is unavailable, the real listing row is preserved and its status explains what was returned.

***

### 🧭 How it works

```text
┌──────────────────────────────────────┐
│ queries                              │
│ • destination                       │
│ • neighborhood                      │
│ • region                            │
│ • Airbnb room URL                   │
└──────────────────┬───────────────────┘
                   │
                   ▼
        ┌──────────────────────┐
        │ Automatic detection  │
        └──────────┬───────────┘
                   │
          ┌────────┴────────┐
          ▼                 ▼
  Destination search   Direct room fetch
          └────────┬────────┘
                   ▼
      Property • host • reviews • calendar
                   │
                   ▼
       Normalize and remove duplicates
                   │
                   ▼
         Listings and related datasets
```

The `queries` list is required. Destinations and Airbnb room URLs can be placed in the same list.

***

### 🚀 More input examples

#### Search several destinations

```json
{
  "mode": "fast",
  "queries": ["Prague", "Vienna", "Budapest"],
  "maxItemsPerQuery": 25,
  "adults": 2,
  "currency": "EUR",
  "locale": "en"
}
```

#### Date-aware search

```json
{
  "mode": "fast",
  "queries": ["New York"],
  "dateRange": "2026-09-10/2026-09-15",
  "adults": 2,
  "children": 1,
  "maxItemsPerQuery": 20,
  "currency": "USD"
}
```

#### Scrape known rooms

```json
{
  "mode": "full",
  "queries": [
    "https://www.airbnb.com/rooms/123456789",
    "https://www.airbnb.com/rooms/987654321"
  ],
  "maxReviewsPerListing": 10,
  "currency": "USD"
}
```

#### Apply property filters

```json
{
  "mode": "full",
  "queries": ["Lisbon"],
  "maxItemsPerQuery": 20,
  "minPrice": 80,
  "maxPrice": 250,
  "minBedrooms": 2,
  "minBathrooms": 1,
  "roomType": "Entire home/apt",
  "maxReviewsPerListing": 5,
  "currency": "EUR"
}
```

***

### 🧩 Input fields

| Field | Type | Description |
|---|---:|---|
| `mode` | string | Selects one of the collection modes described above |
| `queries` | string\[] | Required destinations or Airbnb room URLs |
| `dateRange` | string | Optional `YYYY-MM-DD/YYYY-MM-DD` stay range |
| `adults` | integer | Number of adult guests |
| `children` | integer | Number of children |
| `infants` | integer | Number of infants |
| `pets` | integer | Number of pets |
| `maxItemsPerQuery` | integer | Maximum listings collected for each source |
| `maxReviewsPerListing` | integer | Reviews collected per listing in Full mode |
| `minPrice`, `maxPrice` | integer | Optional displayed-price range |
| `minBedrooms` | integer | Minimum bedrooms |
| `minBathrooms` | integer | Minimum bathrooms |
| `minBeds` | integer | Minimum beds |
| `roomType` | string | Entire place, private room, shared room, or hotel room |
| `currency` | string | `USD` or `EUR` |
| `locale` | string | Airbnb locale such as `en`, `de`, `fr`, `es`, or `it` |
| `proxy` | object | Apify Proxy configuration |

Empty inputs, unknown fields, unsupported modes, malformed external URLs, invalid dates, and out-of-range limits are rejected before a run is created.

***

### 📦 Output structure

Each default dataset row represents one unique Airbnb listing.

```json
{
  "id": "123456789",
  "url": "https://www.airbnb.com/rooms/123456789",
  "name": "Apartment in Prague",
  "displayLocation": "Prague, Czechia",
  "roomType": "Entire rental unit",
  "personCapacity": 4,
  "bedrooms": 2,
  "beds": 2,
  "bathrooms": 1,
  "ratingValue": 4.91,
  "reviewsCount": 184,
  "displayPrice": "€145 night",
  "pricePerNight": 145,
  "currency": "EUR",
  "imageUrl": "https://...",
  "scrapeMode": "full",
  "detailStatus": "ok",
  "reviewsStatus": "ok",
  "calendarStatus": "ok"
}
```

#### 📚 Related datasets

```text
Default dataset
├── 🏡 Listings
├── 💰 Pricing
├── 👤 Hosts and ratings
└── 📅 Calendar metrics

Related datasets
├── ⭐ Reviews
├── 📊 Review summaries
├── 👤 Hosts
├── 🛏️ Amenities
└── 📋 Property information and house rules
```

These flattened views are convenient for spreadsheets, BI tools, database imports, and API integrations.

***

### 🚦 Status fields

| Field | Meaning |
|---|---|
| `scrapeMode` | Selected collection mode |
| `detailStatus` | Listing detail collection result |
| `reviewsStatus` | Guest review collection result |
| `calendarStatus` | Calendar collection result |

`not_requested` means the stage was intentionally not used. An unavailable optional stage does not turn a valid listing into a fake error row.

***

### 💡 Popular use cases

- 📊 Short-term rental market analysis
- 💰 Price and availability monitoring
- 🏙️ Destination research
- 🏡 Property-market research datasets
- ⭐ Guest review analysis
- 👤 Host portfolio research
- 📈 Travel and real-estate dashboards

***

### ⚠️ Public-data availability

Airbnb normally does not expose a private host phone number, private email address, or exact street address before a booking. Displayed location precision, pricing, reviews, and calendar coverage depend on the listing, dates, locale, currency, and market.

The actor exports only public information returned for the listing and never invents hidden contact details.

Use exported data responsibly and comply with applicable travel, privacy, and platform rules.

# Actor input Schema

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

Fast is optimized for discovery and pricing. Full enriches every listing with all supported public details.

## `queries` (type: `array`):

Add cities, neighborhoods, regions, or direct Airbnb room URLs. The actor detects each value automatically.

## `dateRange` (type: `string`):

Optional check-in/check-out pair in YYYY-MM-DD/YYYY-MM-DD format.

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

Number of adult guests.

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

Number of children.

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

Number of infants.

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

Number of pets.

## `maxItemsPerQuery` (type: `integer`):

Maximum unique listings collected for each destination or direct URL batch.

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

Maximum guest reviews collected for each listing in Full mode.

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

Optional lower price filter for destination searches.

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

Optional upper price filter for destination searches.

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

Keep listings with at least this many bedrooms.

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

Keep listings with at least this many bathrooms.

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

Keep listings with at least this many beds.

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

Optional Airbnb room-type filter.

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

Currency used for displayed prices.

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

Locale code such as en, de, fr, es or it.

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

The default Apify Proxy configuration is recommended.

## Actor input object example

```json
{
  "mode": "fast",
  "queries": [
    "Prague"
  ],
  "adults": 2,
  "children": 0,
  "infants": 0,
  "pets": 0,
  "maxItemsPerQuery": 10,
  "maxReviewsPerListing": 10,
  "roomType": "",
  "currency": "USD",
  "locale": "en",
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

## `pricing` (type: `string`):

No description

## `host_ratings` (type: `string`):

No description

## `hosts` (type: `string`):

No description

## `amenities` (type: `string`):

No description

## `property_info` (type: `string`):

No description

## `calendar_metrics` (type: `string`):

No description

## `review_rows` (type: `string`):

No description

## `review_summary` (type: `string`):

No description

## `monitor_changes` (type: `string`):

No description

# 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 = {
    "mode": "fast",
    "queries": [
        "Prague"
    ],
    "adults": 2,
    "maxItemsPerQuery": 10,
    "maxReviewsPerListing": 10,
    "currency": "USD",
    "locale": "en",
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trakk/airbnb-scraper-v2").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 = {
    "mode": "fast",
    "queries": ["Prague"],
    "adults": 2,
    "maxItemsPerQuery": 10,
    "maxReviewsPerListing": 10,
    "currency": "USD",
    "locale": "en",
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("trakk/airbnb-scraper-v2").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 '{
  "mode": "fast",
  "queries": [
    "Prague"
  ],
  "adults": 2,
  "maxItemsPerQuery": 10,
  "maxReviewsPerListing": 10,
  "currency": "USD",
  "locale": "en",
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call trakk/airbnb-scraper-v2 --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Scraper — Listings, Prices, Reviews & Availability",
        "description": "Scrape Airbnb listings by location or URL. Export prices, ratings, photos, amenities, host data, reviews, and availability calendars for short-term rental and market research.",
        "version": "0.1",
        "x-build-id": "PtrKO2eex8kec0vcA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trakk~airbnb-scraper-v2/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trakk-airbnb-scraper-v2",
                "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/trakk~airbnb-scraper-v2/runs": {
            "post": {
                "operationId": "runs-sync-trakk-airbnb-scraper-v2",
                "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/trakk~airbnb-scraper-v2/run-sync": {
            "post": {
                "operationId": "run-sync-trakk-airbnb-scraper-v2",
                "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",
                "required": [
                    "queries"
                ],
                "properties": {
                    "mode": {
                        "title": "Scraping mode",
                        "enum": [
                            "fast",
                            "full"
                        ],
                        "type": "string",
                        "description": "Fast is optimized for discovery and pricing. Full enriches every listing with all supported public details.",
                        "default": "fast"
                    },
                    "queries": {
                        "title": "Destinations or Airbnb room URLs",
                        "minItems": 1,
                        "maxItems": 10000,
                        "type": "array",
                        "description": "Add cities, neighborhoods, regions, or direct Airbnb room URLs. The actor detects each value automatically.",
                        "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "pattern": "^(?:https?://([^/]+\\.)?airbnb\\.[A-Za-z.]+/rooms/[0-9]+(?:[/?#]\\S*)?|(?!https?://)\\S(?:.*\\S)?)$"
                        }
                    },
                    "dateRange": {
                        "title": "Stay dates",
                        "pattern": "^\\d{4}-(0[1-9]|1[0-2])-([0-2]\\d|3[01])/\\d{4}-(0[1-9]|1[0-2])-([0-2]\\d|3[01])$",
                        "maxLength": 21,
                        "type": "string",
                        "description": "Optional check-in/check-out pair in YYYY-MM-DD/YYYY-MM-DD format."
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 16,
                        "type": "integer",
                        "description": "Number of adult guests.",
                        "default": 2
                    },
                    "children": {
                        "title": "Children",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of children.",
                        "default": 0
                    },
                    "infants": {
                        "title": "Infants",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Number of infants.",
                        "default": 0
                    },
                    "pets": {
                        "title": "Pets",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Number of pets.",
                        "default": 0
                    },
                    "maxItemsPerQuery": {
                        "title": "Maximum listings per source",
                        "minimum": 1,
                        "maximum": 270,
                        "type": "integer",
                        "description": "Maximum unique listings collected for each destination or direct URL batch.",
                        "default": 50
                    },
                    "maxReviewsPerListing": {
                        "title": "Reviews per listing",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum guest reviews collected for each listing in Full mode.",
                        "default": 50
                    },
                    "minPrice": {
                        "title": "Minimum displayed price",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Optional lower price filter for destination searches."
                    },
                    "maxPrice": {
                        "title": "Maximum displayed price",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Optional upper price filter for destination searches."
                    },
                    "minBedrooms": {
                        "title": "Minimum bedrooms",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Keep listings with at least this many bedrooms."
                    },
                    "minBathrooms": {
                        "title": "Minimum bathrooms",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Keep listings with at least this many bathrooms."
                    },
                    "minBeds": {
                        "title": "Minimum beds",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Keep listings with at least this many beds."
                    },
                    "roomType": {
                        "title": "Room type",
                        "enum": [
                            "",
                            "Entire home/apt",
                            "Private room",
                            "Shared room",
                            "Hotel room"
                        ],
                        "type": "string",
                        "description": "Optional Airbnb room-type filter.",
                        "default": ""
                    },
                    "currency": {
                        "title": "Price currency",
                        "enum": [
                            "USD",
                            "EUR"
                        ],
                        "type": "string",
                        "description": "Currency used for displayed prices.",
                        "default": "USD"
                    },
                    "locale": {
                        "title": "Airbnb locale",
                        "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{2})?$",
                        "type": "string",
                        "description": "Locale code such as en, de, fr, es or it.",
                        "default": "en"
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "The default Apify Proxy configuration is recommended.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": []
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
