# Otodom.pl Scraper (`one-api/otodom-scraper`) Actor

Scrape Otodom.pl, Poland's leading property marketplace. Search apartments, houses, land and commercial for sale or rent by location, postal code, coordinates, polygon or URL; pull full listing details (price, area, rooms, photos, agency/owner contacts); and autocomplete Polish locations.

- **URL**: https://apify.com/one-api/otodom-scraper.md
- **Developed by:** [ONE API](https://apify.com/one-api) (community)
- **Categories:** Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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

## Otodom.pl Scraper

Scrape **Otodom.pl** — Poland's leading real-estate marketplace (OLX / Adevinta group). Search apartments, houses, land, commercial units and investments **for sale or rent**, pull full listing details, and autocomplete Polish locations.

### What it does

- **🔎 Search listings** — five auto-detected search modes from one input box:
  - **Location name** — `Warszawa`, `Kraków`, `Mokotów Warszawa`, or an otodom domainId path
  - **Postal code** — `01-001` (Polish `NN-NNN` format)
  - **Coordinates** — `52.2297,21.0122` or `52.2297,21.0122,2` (lat, lng, radius km)
  - **Polygon** — `lon lat,lon lat,...` ring (longitude first, GeoJSON convention)
  - **Search URL** — paste any `https://www.otodom.pl/pl/wyniki/...` URL; its filters are reused
- **🏠 Property details** — paste a numeric listing id (`68104795`) or an offer URL (`https://www.otodom.pl/pl/oferta/<slug>`) for the full record: price, area, rooms, characteristics, description, photos, agency/owner contacts.
- **🔍 Location autocomplete** — type-ahead for Polish cities, districts, streets and regions, with coordinates you can feed back into the search.

Fill any combination of the three sections — they run together and write to one dataset.

### Filters (apply to every search line)

Operation (sale / rent), property type, market (new / resale), posted-by (agency / private / developer), sort order, and ranges for price, area, price-per-m², plot area, rooms, and year built — plus building type, floor, building material, heating, features/amenities, media, recency, and toggles for photos / video / 3D walkaround / open day / exclusive offers.

### Output

- **One flat dataset row per listing**, detail record, or suggestion — sortable, filterable, CSV/Excel/JSON-exportable.
- Columns: `Mode`, `Listing ID`, `Title`, `Transaction`, `Property Type`, `Price`, `Currency`, `Price per m²`, `Area m²`, `Rooms`, `Floor`, `City`, `District`, `Province`, `Street`, `Latitude`, `Longitude`, `Agency / Owner`, `Phone`, `Date Created`, `Cover Photo`, `Listing URL`.
- The complete upstream JSON for each item is kept in the `Raw` column for power users who need nested fields.

### Notes

- Otodom.pl publishes **sale and rent** only — there is no sold-listings dataset.
- Prices are in **PLN**. Areas are in **m²**.
- otodom caps each search page at **72** results — increase the **Page** number to paginate deeper.
- Listings expire when sold or removed, so an old id / URL may return an error row.

### Errors

Nothing is silently dropped. Failed lines land in the dataset as rows with `Mode = "ERROR"` and the upstream message in the `Title` column.

### Pricing

Pay per result: **$3 per 1,000 dataset items** — the same rate on every Apify plan tier.

# Actor input Schema

## `search_inputs` (type: `array`):

Each line is auto-detected and routed to the right `/search/*` endpoint on otodom.pl:
• `https://www.otodom.pl/pl/wyniki/...` → `/search/byurl` (filters parsed straight from the URL)
• Polish postal code `NN-NNN` (e.g. `01-001`) → `/search/byzip`
• `lat,lng` or `lat,lng,radiusKm` (e.g. `52.2297,21.0122,2`) → `/search/bycoordinates`
• Polygon ring `lon lat,lon lat,...` (≥3 space-separated pairs) → `/search/bypolygon`
• Anything else — a city / district / region name (e.g. `Warszawa`) → `/search/bylocation`

The filters below apply to every search line. Each matched listing becomes one dataset row.
## `property_inputs` (type: `array`):

Each line is auto-detected and calls the right details endpoint:
• Digits only (e.g. `68104795`) → `/details/byid`
• `https://www.otodom.pl/pl/oferta/<slug>` → `/details/byurl`

Each row is one full listing record: price, area, rooms, characteristics, description, photos, and agency/owner contacts. Listings expire when sold or removed, so old ids may 404.
## `autocomplete_inputs` (type: `array`):

Partial Polish location text (city, district, street, region). Each line calls `/autocomplete` and returns matching suggestions with names and coordinates you can feed back into the Search section. Each suggestion becomes one dataset row.
## `searchType` (type: `string`):

Which transaction to search. otodom.pl has no sold-listings dataset, so only sale and rent are offered.
## `propertyType` (type: `string`):

Property category to search (single-select).
## `market` (type: `string`):

`Primary` = brand-new from developers, `Secondary` = resale. `All` returns both.
## `ownerType` (type: `string`):

Who posted the listing.
## `sortOrder` (type: `string`):

How results are ordered.
## `page` (type: `integer`):

Page number to fetch for each search line (1-based).
## `resultCount` (type: `integer`):

Listings per page for each search line. otodom caps a page at 72.
## `radius` (type: `integer`):

Search radius in kilometres — used for coordinate, postal-code, and location searches. Leave empty to use each endpoint's default (≈2 km for coordinates, ≈3 km for postal codes, ≈7 km for free-text locations).
## `priceRange` (type: `string`):

Total price as a `min:X,max:Y` string in PLN. Use either or both halves, e.g. `min:300000`, `max:900000`, or `min:300000,max:900000`.
## `areaRange` (type: `string`):

Usable floor area as a `min:X,max:Y` string in m², e.g. `min:40,max:80`.
## `pricePerMeterRange` (type: `string`):

Price per square metre as a `min:X,max:Y` string in PLN/m², e.g. `min:8000,max:15000`.
## `plotAreaRange` (type: `string`):

Land or plot area as a `min:X,max:Y` string in m² (for houses & land), e.g. `min:300,max:1000`.
## `roomsRange` (type: `string`):

Number of rooms as a `min:X,max:Y` string (1-10; 10 means 10+), e.g. `min:2,max:4`. Studio = `min:1,max:1`.
## `yearBuiltRange` (type: `string`):

Construction year as a `min:X,max:Y` string, e.g. `min:2000,max:2024`.
## `buildingType` (type: `string`):

Building type(s), comma-separated for multiple. Values: `block, tenement, house, infill, ribbon, apartment, loft`.
## `floors` (type: `string`):

Floor the unit sits on, comma-separated for multiple. Values: `cellar, ground, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, above_ten, garret`.
## `buildingMaterial` (type: `string`):

Construction material(s), comma-separated. Common values: `brick, concrete, breezeblock, cellular_concrete, reinforced_concrete, silikat, wood, other`.
## `heating` (type: `string`):

Heating type(s), comma-separated. Common values: `urban, gas, electrical, boiler_room, tiled_stove, heat_pump, other`.
## `extras` (type: `string`):

Listing features, comma-separated. Common values: `balcony, terrace, garden, garage, basement, separate_kitchen, air_conditioning, two_storey, lift, usable_room`.
## `media` (type: `string`):

Available utilities, comma-separated. Common values: `internet, cable_tv, phone`.
## `daysSinceCreated` (type: `integer`):

Only return listings added within the last N days (e.g. 1, 3, 7, 14). Leave empty for no recency filter.
## `hasPhotos` (type: `boolean`):

Return only listings that include photos.
## `hasVideo` (type: `boolean`):

Return only listings that include a video.
## `has3DView` (type: `boolean`):

Return only listings that include a 3D walkaround tour.
## `openDay` (type: `boolean`):

Return only listings advertising an open day / viewing event.
## `exclusiveOffer` (type: `boolean`):

Return only listings marked as exclusive offers.

## Actor input object example

```json
{
  "search_inputs": [
    "Warszawa",
    "Kraków"
  ],
  "property_inputs": [
    "68104795",
    "https://www.otodom.pl/pl/oferta/mieszkanie-2-pokojowe-z-balkonem-na-mokotowie-nowe-do-wykonczenia-ID4BLar"
  ],
  "autocomplete_inputs": [],
  "searchType": "For_Sale",
  "propertyType": "Flat",
  "market": "All",
  "ownerType": "All",
  "sortOrder": "Relevance",
  "page": 1,
  "resultCount": 20,
  "priceRange": "",
  "areaRange": "",
  "pricePerMeterRange": "",
  "plotAreaRange": "",
  "roomsRange": "",
  "yearBuiltRange": "",
  "buildingType": "",
  "floors": "",
  "buildingMaterial": "",
  "heating": "",
  "extras": "",
  "media": "",
  "hasPhotos": false,
  "hasVideo": false,
  "has3DView": false,
  "openDay": false,
  "exclusiveOffer": false
}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "search_inputs": [
        "Warszawa",
        "Kraków"
    ],
    "property_inputs": [
        "68104795",
        "https://www.otodom.pl/pl/oferta/mieszkanie-2-pokojowe-z-balkonem-na-mokotowie-nowe-do-wykonczenia-ID4BLar"
    ],
    "autocomplete_inputs": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("one-api/otodom-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 = {
    "search_inputs": [
        "Warszawa",
        "Kraków",
    ],
    "property_inputs": [
        "68104795",
        "https://www.otodom.pl/pl/oferta/mieszkanie-2-pokojowe-z-balkonem-na-mokotowie-nowe-do-wykonczenia-ID4BLar",
    ],
    "autocomplete_inputs": [],
}

# Run the Actor and wait for it to finish
run = client.actor("one-api/otodom-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 '{
  "search_inputs": [
    "Warszawa",
    "Kraków"
  ],
  "property_inputs": [
    "68104795",
    "https://www.otodom.pl/pl/oferta/mieszkanie-2-pokojowe-z-balkonem-na-mokotowie-nowe-do-wykonczenia-ID4BLar"
  ],
  "autocomplete_inputs": []
}' |
apify call one-api/otodom-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Otodom.pl Scraper",
        "description": "Scrape Otodom.pl, Poland's leading property marketplace. Search apartments, houses, land and commercial for sale or rent by location, postal code, coordinates, polygon or URL; pull full listing details (price, area, rooms, photos, agency/owner contacts); and autocomplete Polish locations.",
        "version": "1.0",
        "x-build-id": "SE1JLCY7HpPuN5NEH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/one-api~otodom-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-one-api-otodom-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/one-api~otodom-scraper/runs": {
            "post": {
                "operationId": "runs-sync-one-api-otodom-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/one-api~otodom-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-one-api-otodom-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": {
                    "search_inputs": {
                        "title": "Search query (one per line)",
                        "type": "array",
                        "description": "Each line is auto-detected and routed to the right `/search/*` endpoint on otodom.pl:\n• `https://www.otodom.pl/pl/wyniki/...` → `/search/byurl` (filters parsed straight from the URL)\n• Polish postal code `NN-NNN` (e.g. `01-001`) → `/search/byzip`\n• `lat,lng` or `lat,lng,radiusKm` (e.g. `52.2297,21.0122,2`) → `/search/bycoordinates`\n• Polygon ring `lon lat,lon lat,...` (≥3 space-separated pairs) → `/search/bypolygon`\n• Anything else — a city / district / region name (e.g. `Warszawa`) → `/search/bylocation`\n\nThe filters below apply to every search line. Each matched listing becomes one dataset row.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "property_inputs": {
                        "title": "Listing id or otodom.pl URL (one per line)",
                        "type": "array",
                        "description": "Each line is auto-detected and calls the right details endpoint:\n• Digits only (e.g. `68104795`) → `/details/byid`\n• `https://www.otodom.pl/pl/oferta/<slug>` → `/details/byurl`\n\nEach row is one full listing record: price, area, rooms, characteristics, description, photos, and agency/owner contacts. Listings expire when sold or removed, so old ids may 404.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "autocomplete_inputs": {
                        "title": "Location autocomplete text (one per line)",
                        "type": "array",
                        "description": "Partial Polish location text (city, district, street, region). Each line calls `/autocomplete` and returns matching suggestions with names and coordinates you can feed back into the Search section. Each suggestion becomes one dataset row.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchType": {
                        "title": "Operation",
                        "enum": [
                            "For_Sale",
                            "For_Rent"
                        ],
                        "type": "string",
                        "description": "Which transaction to search. otodom.pl has no sold-listings dataset, so only sale and rent are offered.",
                        "default": "For_Sale"
                    },
                    "propertyType": {
                        "title": "Property type",
                        "enum": [
                            "Flat",
                            "House",
                            "Land",
                            "Commercial",
                            "Warehouse",
                            "Garage",
                            "Room",
                            "Investment"
                        ],
                        "type": "string",
                        "description": "Property category to search (single-select).",
                        "default": "Flat"
                    },
                    "market": {
                        "title": "Market segment",
                        "enum": [
                            "All",
                            "Primary",
                            "Secondary"
                        ],
                        "type": "string",
                        "description": "`Primary` = brand-new from developers, `Secondary` = resale. `All` returns both.",
                        "default": "All"
                    },
                    "ownerType": {
                        "title": "Posted by",
                        "enum": [
                            "All",
                            "Agency",
                            "Private",
                            "Developer"
                        ],
                        "type": "string",
                        "description": "Who posted the listing.",
                        "default": "All"
                    },
                    "sortOrder": {
                        "title": "Sort order",
                        "enum": [
                            "Relevance",
                            "Newest",
                            "Price_Low_to_High",
                            "Price_High_to_Low",
                            "Price_Per_Meter_Low",
                            "Area_Large_to_Small"
                        ],
                        "type": "string",
                        "description": "How results are ordered.",
                        "default": "Relevance"
                    },
                    "page": {
                        "title": "Page",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Page number to fetch for each search line (1-based).",
                        "default": 1
                    },
                    "resultCount": {
                        "title": "Results per page",
                        "minimum": 1,
                        "maximum": 72,
                        "type": "integer",
                        "description": "Listings per page for each search line. otodom caps a page at 72.",
                        "default": 20
                    },
                    "radius": {
                        "title": "Radius (km)",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Search radius in kilometres — used for coordinate, postal-code, and location searches. Leave empty to use each endpoint's default (≈2 km for coordinates, ≈3 km for postal codes, ≈7 km for free-text locations)."
                    },
                    "priceRange": {
                        "title": "Price range (PLN)",
                        "type": "string",
                        "description": "Total price as a `min:X,max:Y` string in PLN. Use either or both halves, e.g. `min:300000`, `max:900000`, or `min:300000,max:900000`.",
                        "default": ""
                    },
                    "areaRange": {
                        "title": "Area range (m²)",
                        "type": "string",
                        "description": "Usable floor area as a `min:X,max:Y` string in m², e.g. `min:40,max:80`.",
                        "default": ""
                    },
                    "pricePerMeterRange": {
                        "title": "Price per m² range (PLN/m²)",
                        "type": "string",
                        "description": "Price per square metre as a `min:X,max:Y` string in PLN/m², e.g. `min:8000,max:15000`.",
                        "default": ""
                    },
                    "plotAreaRange": {
                        "title": "Plot / land area range (m²)",
                        "type": "string",
                        "description": "Land or plot area as a `min:X,max:Y` string in m² (for houses & land), e.g. `min:300,max:1000`.",
                        "default": ""
                    },
                    "roomsRange": {
                        "title": "Rooms range",
                        "type": "string",
                        "description": "Number of rooms as a `min:X,max:Y` string (1-10; 10 means 10+), e.g. `min:2,max:4`. Studio = `min:1,max:1`.",
                        "default": ""
                    },
                    "yearBuiltRange": {
                        "title": "Year-built range",
                        "type": "string",
                        "description": "Construction year as a `min:X,max:Y` string, e.g. `min:2000,max:2024`.",
                        "default": ""
                    },
                    "buildingType": {
                        "title": "Building type",
                        "type": "string",
                        "description": "Building type(s), comma-separated for multiple. Values: `block, tenement, house, infill, ribbon, apartment, loft`.",
                        "default": ""
                    },
                    "floors": {
                        "title": "Floor",
                        "type": "string",
                        "description": "Floor the unit sits on, comma-separated for multiple. Values: `cellar, ground, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, above_ten, garret`.",
                        "default": ""
                    },
                    "buildingMaterial": {
                        "title": "Building material",
                        "type": "string",
                        "description": "Construction material(s), comma-separated. Common values: `brick, concrete, breezeblock, cellular_concrete, reinforced_concrete, silikat, wood, other`.",
                        "default": ""
                    },
                    "heating": {
                        "title": "Heating",
                        "type": "string",
                        "description": "Heating type(s), comma-separated. Common values: `urban, gas, electrical, boiler_room, tiled_stove, heat_pump, other`.",
                        "default": ""
                    },
                    "extras": {
                        "title": "Features / amenities",
                        "type": "string",
                        "description": "Listing features, comma-separated. Common values: `balcony, terrace, garden, garage, basement, separate_kitchen, air_conditioning, two_storey, lift, usable_room`.",
                        "default": ""
                    },
                    "media": {
                        "title": "Media / utilities",
                        "type": "string",
                        "description": "Available utilities, comma-separated. Common values: `internet, cable_tv, phone`.",
                        "default": ""
                    },
                    "daysSinceCreated": {
                        "title": "Listed within N days",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "Only return listings added within the last N days (e.g. 1, 3, 7, 14). Leave empty for no recency filter."
                    },
                    "hasPhotos": {
                        "title": "Only with photos",
                        "type": "boolean",
                        "description": "Return only listings that include photos.",
                        "default": false
                    },
                    "hasVideo": {
                        "title": "Only with video",
                        "type": "boolean",
                        "description": "Return only listings that include a video.",
                        "default": false
                    },
                    "has3DView": {
                        "title": "Only with 3D walkaround",
                        "type": "boolean",
                        "description": "Return only listings that include a 3D walkaround tour.",
                        "default": false
                    },
                    "openDay": {
                        "title": "Only with an open day",
                        "type": "boolean",
                        "description": "Return only listings advertising an open day / viewing event.",
                        "default": false
                    },
                    "exclusiveOffer": {
                        "title": "Only exclusive offers",
                        "type": "boolean",
                        "description": "Return only listings marked as exclusive offers.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
