# Gratka.pl Scraper | Polish Real Estate (`trev0n/gratka-scraper`) Actor

Scrape Gratka.pl real estate listings with 40+ fields: price, area, rooms, floor, GPS, building details, seller contacts, photos. Sale & rent for apartments, houses, plots. No browser needed — fast & lightweight.

- **URL**: https://apify.com/trev0n/gratka-scraper.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 13 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## 🏠 Gratka.pl Real Estate Scraper

🎯 **Extract real estate listings from Gratka.pl — one of Poland's largest classifieds portals with 20+ years of history — in seconds, not hours.**

Automatically collect structured property data including prices, locations, floor plans, building details, seller contacts, photos, and more. Works for apartments, houses, plots, commercial properties, and rentals across all Polish cities and regions.

### 🚀 What Does It Do?

This scraper automatically extracts property listings from Gratka.pl and collects **structured, ready-to-use data** from one of Poland's most established classifieds portals. No manual browsing needed — just set your filters and hit Start.

💡 **Two modes of operation:**

1. **🔍 Discovery Mode** — Set your search criteria (location, price range, area, rooms) and let it find matching properties across Gratka.pl
2. **📋 Direct URL Mode** — Paste specific Gratka.pl search or listing URLs to scrape exactly what you need

### 👥 Who Is This For?

| 🏢 Use Case | 💬 How It Helps |
| --- | --- |
| 📊 **Real Estate Agencies** | Monitor competitor listings, track pricing trends, and discover new properties across regions |
| 🔎 **Property Investors** | Identify undervalued properties by comparing price/m² across neighborhoods |
| 📣 **Market Researchers** | Analyze the Polish housing market with structured, exportable data |
| 🤝 **Proptech Startups** | Aggregate Gratka listings into your platform alongside Otodom and Morizon |
| 🏗️ **Developers** | Track competing new developments and pricing strategies |
| 🌍 **Relocation Services** | Help expats and newcomers find properties in Polish cities |

### ✨ Features

- 🏘️ **All Property Types** — Apartments, houses, plots, rooms, garages, and commercial properties
- 💰 **Sale & Rent** — Covers both purchase and rental listings
- 🗺️ **Any Location** — Search across all Polish voivodeships, cities, districts, and streets
- 🎛️ **Smart Filters** — Price range, area range, room count — combine them any way you like
- 📸 **Full Photo URLs** — Get direct links to all listing photos in high resolution
- 🏗️ **Building Details** — Building type, material, year, heating, floor, and more (with full details mode)
- 📍 **GPS Coordinates** — Latitude and longitude for every property (with full details mode)
- 👤 **Seller Info** — Agency name, agent name, phone number, and agent profile URL
- 🔄 **Deduplication** — Automatically skips duplicate listings across pages
- ⚡ **Fast & Scalable** — Scrape hundreds of listings per minute with parallel requests
- 📤 **Export Anywhere** — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option | What It Does |
| --- | --- |
| 🏷️ **Search Type** | Choose between Sale or Rent listings |
| 🏠 **Property Type** | Apartment, House, Plot, Room, Garage, or Commercial |
| 📍 **Location** | City, district, or neighborhood (e.g., `warszawa`, `krakow/stare-miasto`) |
| 💰 **Price Min / Max** | Filter by price range in PLN |
| 📐 **Area Min / Max** | Filter by area range in square meters |
| 🛏️ **Rooms Min / Max** | Filter by number of rooms |
| 📋 **Extract Full Details** | Visit each property page for complete data (description, GPS, building info, photos) |
| 🔢 **Max Items** | Control how many listings to extract per run |
| 🔗 **Start URLs** | Optionally provide specific Gratka.pl URLs to scrape |

### 📦 What You Get (Output Fields)

Every property listing includes:

#### Basic Info

| Field | Example |
| --- | --- |
| id | `1541908900` |
| idOnFrontend | `46000017` |
| title | `KSAWERÓW, basen/fitness w budynku metro 3 minuty` |
| price | `1599000` |
| priceCurrency | `PLN` |
| priceFormatted | `1 599 000 zł` |
| pricePerM2 | `17767` |
| pricePerM2Formatted | `17 767 zł/m²` |
| area | `90` |
| numberOfRooms | `4 pokoje` |
| floorFormatted | `piętro 12/14` |
| transaction | `SALE` |

#### Location

| Field | Example |
| --- | --- |
| location | `Warszawa, Mokotów, Ksawerów, ul. Bukowińska` |
| city | `Warszawa` |
| district | `Mokotów` |
| street | `Bukowińska` |
| countryCode | `PL` |
| latitude | `52.1806672` |
| longitude | `21.0262143` |

#### Property Details (Full Details Mode)

| Field | Example |
| --- | --- |
| condition | `Do odświeżenia` |
| totalArea | `90 m²` |
| interiorHeight | `260 cm` |
| numberOfBedrooms | `4` |
| kitchenType | `Widna` |
| numberOfBathrooms | `2` |
| hasBalcony | `Tak` |
| ownershipType | `Własność` |
| marketType | `Rynek wtórny` |

#### Building Details (Full Details Mode)

| Field | Example |
| --- | --- |
| buildingType | `Apartamentowiec` |
| buildingMaterial | `Beton` |
| buildYear | `2008` |
| heating | `Miejskie` |

#### Features & Tags (Full Details Mode)

| Field | Example |
| --- | --- |
| equipments | `["Meble", "Umeblowana kuchnia"]` |
| facilities | `["Winda", "Domofon", "Miejsce postojowe (parking podziemny)"]` |
| tags | `["winda", "siłownia", "basen", "parking podziemny"]` |
| description | `Full HTML description of the property` |

#### Seller Info

| Field | Example |
| --- | --- |
| sellerType | `agency` |
| agencyName | `BUMA 11 Sp. z o.o.` |
| agencyId | `44725` |
| agentName | `Michał Piniaha` |
| agentUrl | `https://gratka.pl/posrednik/michal-piniaha-46132773` |
| sellerPhone | `501 224 101` |

#### Media & Links

| Field | Example |
| --- | --- |
| mainImage | `https://img1.staticmorizon.com.pl/thumb/.../photo.jpg` |
| imageCount | `34` |
| images | `[array of all photo URLs]` |
| view3D | `https://my.matterport.com/show/?m=wBWvjYQHtBw` |
| propertyUrl | `https://gratka.pl/nieruchomosci/mieszkanie-warszawa-mokotow-bukowinska/ob/46000017` |

#### Metadata

| Field | Example |
| --- | --- |
| reference | `9314` |
| addedAt | `06.02.2026` |
| updatedAt | `26.02.2026` |
| viewCount | `331` |
| isTopPromoted | `false` |
| scrapedAt | `2026-03-21T12:00:00.000Z` |

### 📊 Example Output

```json
{
    "id": "1541908900",
    "idOnFrontend": "46000017",
    "title": "KSAWERÓW, basen/fitness w budynku metro 3 minuty",
    "price": 1599000,
    "priceCurrency": "PLN",
    "priceFormatted": "1 599 000 zł",
    "pricePerM2": 17767,
    "pricePerM2Formatted": "17 767 zł/m²",
    "area": 90,
    "numberOfRooms": "4 pokoje",
    "floorFormatted": "piętro 12/14",
    "location": "Warszawa, Mokotów, Ksawerów, ul. Bukowińska",
    "city": "Warszawa",
    "district": "Mokotów",
    "street": "Bukowińska",
    "countryCode": "PL",
    "latitude": 52.1806672,
    "longitude": 21.0262143,
    "condition": "Do odświeżenia",
    "totalArea": "90 m²",
    "interiorHeight": "260 cm",
    "numberOfBedrooms": "4",
    "kitchenType": "Widna",
    "numberOfBathrooms": "2",
    "hasBalcony": "Tak",
    "ownershipType": "Własność",
    "marketType": "Rynek wtórny",
    "buildingType": "Apartamentowiec",
    "buildingMaterial": "Beton",
    "buildYear": 2008,
    "heating": "Miejskie",
    "description": "<p><b>LOKALIZACJA GÓRNY MOKOTÓW, UL. BUKOWIŃSKA</b> Jedna z najlepszych lokalizacji Warszawy...</p>",
    "equipments": ["Meble", "Umeblowana kuchnia"],
    "facilities": ["Obiekt zamknięty", "Winda", "Domofon", "Miejsce postojowe (parking podziemny)"],
    "tags": ["winda", "siłownia", "dwustronne", "basen", "kuchnia otwarta", "parking podziemny"],
    "images": [
        "https://img1.staticmorizon.com.pl/thumb/.../photo-1.jpg",
        "https://img1.staticmorizon.com.pl/thumb/.../photo-2.jpg"
    ],
    "imageCount": 34,
    "mainImage": "https://img1.staticmorizon.com.pl/thumb/.../photo-1.jpg",
    "view3D": "https://my.matterport.com/show/?m=wBWvjYQHtBw",
    "sellerType": "agency",
    "agencyName": "BUMA 11 Sp. z o.o.",
    "agencyId": "44725",
    "agentName": "Michał Piniaha",
    "agentUrl": "https://gratka.pl/posrednik/michal-piniaha-46132773",
    "sellerPhone": "501 224 101",
    "reference": "9314",
    "addedAt": "06.02.2026",
    "updatedAt": "26.02.2026",
    "viewCount": 331,
    "transaction": "SALE",
    "isTopPromoted": false,
    "propertyUrl": "https://gratka.pl/nieruchomosci/mieszkanie-warszawa-mokotow-bukowinska/ob/46000017",
    "scrapedAt": "2026-03-21T12:00:00.000Z"
}
````

### 📋 Dataset Views

The Apify Console gives you **3 ready-made table views** to quickly browse your results:

| View | What It Shows |
| --- | --- |
| 📊 **Overview** | Title, price, price/m², area, rooms, location, market type, URL |
| 🎯 **Detailed** | All overview fields plus floor, building type, year, heating, ownership, condition, seller info |
| 💰 **Prices** | Focused on price comparison — title, price, price/m², area, rooms, floor, market, location |

### ❓ FAQ

**🤔 What's the difference between basic and full details mode?**
Basic mode extracts data from listing pages only — it's fast and great for bulk collection. Full details mode visits each property page individually to get description, GPS coordinates, building details, all photos, and seller contact info.

**🤔 How many properties can I scrape per run?**
There's no hard limit. A typical run can extract hundreds of listings in minutes. Set `maxItems` to control the volume, or leave it at 0 for unlimited scraping.

**🤔 Does it work for both sale and rent?**
Yes — select "Sale" or "Rent" in the search type filter, or provide a Gratka rental URL directly.

**🤔 Can I scrape properties from a specific neighborhood?**
Absolutely. Use the location field with district-level paths like `warszawa/mokotow` or `krakow/stare-miasto`, or paste a filtered Gratka URL directly.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For fresh data, run daily or weekly. You can schedule automatic runs on Apify with just a few clicks.

**🤔 Does it work with proxies?**
Yes — residential proxies are recommended for the best results. The scraper works with Apify's built-in proxy service.

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (market type, build year, heating, ownership form)
- 📊 Extra data fields or custom output formats
- 🔄 Integration with your CRM, Google Sheets, or database
- ⏰ Scheduled scraping with automatic deduplication
- 🌐 Scraping from other real estate platforms alongside Gratka (Otodom, Morizon, Nieruchomości-online)

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from Gratka.pl. It does not access private data, bypass authentication, or interfere with the platform's normal operation. Please use the data responsibly and in compliance with applicable laws and platform terms of service.

# Actor input Schema

## `startUrls` (type: `array`):

List of Gratka.pl URLs to scrape. Can be search result pages or individual property listing URLs. If provided, other search filters are ignored.

## `searchType` (type: `string`):

Type of search: sale or rent.

## `propertyType` (type: `string`):

Type of property to search for.

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

Location path from Gratka URL (e.g., 'warszawa', 'krakow/stare-miasto'). Check Gratka.pl URL structure for your desired location.

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

Minimum price in PLN.

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

Maximum price in PLN.

## `areaMin` (type: `integer`):

Minimum area in square meters.

## `areaMax` (type: `integer`):

Maximum area in square meters.

## `roomsMin` (type: `integer`):

Minimum number of rooms.

## `roomsMax` (type: `integer`):

Maximum number of rooms.

## `maxItems` (type: `integer`):

Maximum number of property listings to scrape (0 = unlimited).

## `extractDetails` (type: `boolean`):

When enabled, visits each property page for full details (description, features, images, building info, GPS coordinates). When disabled, extracts listing-level data only (faster and cheaper).

## `maxConcurrency` (type: `integer`):

Maximum number of parallel requests. Higher = faster but may trigger rate limiting.

## `maxRequestRetries` (type: `integer`):

Maximum number of retries for failed requests.

## `maxRequestsPerMinute` (type: `integer`):

Maximum number of requests per minute to avoid rate limiting.

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

Proxy settings. Residential proxies are recommended for best results.

## Actor input object example

```json
{
  "searchType": "sprzedaz",
  "propertyType": "mieszkania",
  "location": "warszawa",
  "maxItems": 50,
  "extractDetails": true,
  "maxConcurrency": 20,
  "maxRequestRetries": 2,
  "maxRequestsPerMinute": 150
}
```

# Actor output Schema

## `overview` (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 = {
    "location": "warszawa"
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/gratka-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 = { "location": "warszawa" }

# Run the Actor and wait for it to finish
run = client.actor("trev0n/gratka-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 '{
  "location": "warszawa"
}' |
apify call trev0n/gratka-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Gratka.pl Scraper | Polish Real Estate",
        "description": "Scrape Gratka.pl real estate listings with 40+ fields: price, area, rooms, floor, GPS, building details, seller contacts, photos. Sale & rent for apartments, houses, plots. No browser needed — fast & lightweight.",
        "version": "1.0",
        "x-build-id": "xDegoSTeiwqXfqRha"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trev0n~gratka-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trev0n-gratka-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/trev0n~gratka-scraper/runs": {
            "post": {
                "operationId": "runs-sync-trev0n-gratka-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/trev0n~gratka-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-trev0n-gratka-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of Gratka.pl URLs to scrape. Can be search result pages or individual property listing URLs. If provided, other search filters are ignored.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchType": {
                        "title": "Search Type",
                        "enum": [
                            "sprzedaz",
                            "wynajem"
                        ],
                        "type": "string",
                        "description": "Type of search: sale or rent.",
                        "default": "sprzedaz"
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "enum": [
                            "mieszkania",
                            "domy",
                            "dzialki",
                            "pokoje",
                            "garaze",
                            "komercyjne"
                        ],
                        "type": "string",
                        "description": "Type of property to search for.",
                        "default": "mieszkania"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location path from Gratka URL (e.g., 'warszawa', 'krakow/stare-miasto'). Check Gratka.pl URL structure for your desired location."
                    },
                    "priceMin": {
                        "title": "Price Min (PLN)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in PLN."
                    },
                    "priceMax": {
                        "title": "Price Max (PLN)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in PLN."
                    },
                    "areaMin": {
                        "title": "Area Min (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum area in square meters."
                    },
                    "areaMax": {
                        "title": "Area Max (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum area in square meters."
                    },
                    "roomsMin": {
                        "title": "Rooms Min",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of rooms."
                    },
                    "roomsMax": {
                        "title": "Rooms Max",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of rooms."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of property listings to scrape (0 = unlimited).",
                        "default": 50
                    },
                    "extractDetails": {
                        "title": "Extract Full Details",
                        "type": "boolean",
                        "description": "When enabled, visits each property page for full details (description, features, images, building info, GPS coordinates). When disabled, extracts listing-level data only (faster and cheaper).",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of parallel requests. Higher = faster but may trigger rate limiting.",
                        "default": 20
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retries for failed requests.",
                        "default": 2
                    },
                    "maxRequestsPerMinute": {
                        "title": "Max Requests Per Minute",
                        "minimum": 10,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Maximum number of requests per minute to avoid rate limiting.",
                        "default": 150
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are recommended for best results."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
