# Otodom.pl Scraper (`unfenced-group/otodom-scraper`) Actor

Scrape Otodom.pl — Poland's largest real estate portal. 140k+ listings: apartments, houses, plots, commercial. Prices, areas, rooms, photos, GPS. Sale & rent. No API key required.

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

## Pricing

from $0.79 / 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 Real Estate Scraper

![Otodom.pl Real Estate Scraper banner](https://i.imgur.com/IhTJgPO.png)

Extract structured property listings from **Otodom.pl** — Poland's largest real estate marketplace with over 140,000 active listings. Scrape apartments, houses, rooms, commercial spaces and plots for sale or rent. No API key required. No configuration needed to get started.

---

### Features

- **All property types:** apartments, houses, rooms, land / plots, commercial spaces, warehouses and garages
- **Sale and rent:** full coverage of both transaction types
- **Location filtering:** whole of Poland or any specific city, voivodeship or district via location slug
- **Rich structured output:** price, price per m², surface area, number of rooms, floor, city, province, district, street address, agency, listing date and images
- **Optional detail enrichment:** full description, GPS coordinates, building type, construction status, condition, heating, material, ownership, kitchen type, parking, media types, security types, AI-detected extras and agency phone
- **Custom search URLs:** paste any Otodom.pl search URL directly as input

---

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array | `[]` | One or more Otodom.pl search result URLs. When provided, the transaction / propertyType / location fields below are ignored. |
| `transaction` | select | `sale` | `sale` for Sprzedaż listings, `rent` for Wynajem listings. |
| `propertyType` | select | `FLAT` | Property type: `FLAT`, `HOUSE`, `ROOM`, `TERRAIN`, `COMMERCIAL`, `WAREHOUSE`, `GARAGE`. |
| `location` | string | `cala-polska` | Otodom location slug. Use `cala-polska` for all of Poland, or a city slug such as `warszawa`, `krakow`, `wroclaw`, `gdansk`. Find any slug in the Otodom URL after selecting a location. |
| `maxResults` | integer | `200` | Maximum number of listings to scrape. |
| `fetchDetails` | boolean | `false` | Visit each listing's detail page to extract full description, GPS coordinates, building characteristics and AI-detected extras. Increases run time. |

---

### Output schema

#### Always present (list page)

| Field | Type | Description |
|---|---|---|
| `id` | string | Unique Otodom listing ID |
| `url` | string | Full listing URL |
| `title` | string | Listing title |
| `shortDescription` | string \| null | Short teaser text shown on list page |
| `operationType` | string | `sale` or `rent` |
| `propertyType` | string | `flat`, `house`, `room`, `terrain`, `commercial`, `warehouse`, `garage` |
| `priceText` | string \| null | Price as displayed, e.g. `PLN 850 000` |
| `priceAmount` | number \| null | Price as a number |
| `priceCurrency` | string \| null | `PLN` or null if hidden |
| `pricePerSqm` | number \| null | Price per square metre |
| `rentPrice` | number \| null | Additional monthly rent charge |
| `hidePrice` | boolean | True if the owner chose to hide the price |
| `areaInSquareMeters` | number \| null | Total usable area in m² |
| `terrainAreaInSquareMeters` | number \| null | Terrain/plot area in m² (houses and plots) |
| `roomsNumber` | number \| null | Number of rooms |
| `floorNumber` | number \| null | Floor as integer (0 = ground, -1 = attic/basement) |
| `streetAddress` | string \| null | Street name when disclosed by the owner |
| `city` | string \| null | City name |
| `district` | string \| null | City district |
| `subdistrict` | string \| null | Residential sub-district |
| `province` | string \| null | Voivodeship / province name |
| `country` | string | Always `PL` |
| `agencyName` | string \| null | Real estate agency name, or null for private sellers |
| `agencyId` | number \| null | Agency identifier |
| `isPrivateOwner` | boolean | True if the listing is from a private individual |
| `isPromoted` | boolean | True if the listing is a promoted/sponsored placement |
| `isExclusiveOffer` | boolean | True for exclusive listings |
| `images` | string[] | Array of full-resolution image URLs |
| `totalImages` | number | Total number of images available |
| `tags` | string[] | Feature tags, e.g. `TERRACE`, `PARKING_SPOT`, `BALCONY`, `BASEMENT` |
| `developmentTitle` | string \| null | Developer project name (new builds) |
| `developmentUrl` | string \| null | Developer project page URL |
| `publishDate` | string \| null | Date first listed, `YYYY-MM-DD` |
| `publishDateISO` | string \| null | Same as `publishDate` |
| `pushedUpAt` | string \| null | Last time the listing was bumped to the top |
| `source` | string | Always `otodom.pl` |
| `scrapedAt` | string | ISO timestamp of when the record was scraped |
| `contentHash` | string | 16-character hash of ID + price + rooms, for change detection |

#### With `fetchDetails: true`

| Field | Type | Description |
|---|---|---|
| `descriptionHtml` | string \| null | Full listing description in HTML |
| `descriptionText` | string \| null | Plain text version of the description |
| `coordinates` | object \| null | `{ lat, lng }` — GPS coordinates |
| `buildYear` | number \| null | Year the building was constructed |
| `buildingType` | string \| null | e.g. `BLOCK`, `APARTMENT`, `TENEMENT`, `HOUSE` |
| `buildingMaterial` | string \| null | e.g. `BRICK`, `CONCRETE_PLATE`, `REINFORCED_CONCRETE` |
| `buildingFloors` | number \| null | Total number of floors in the building |
| `condition` | string \| null | e.g. `READY_TO_USE`, `TO_RENOVATION`, `TO_COMPLETION` |
| `heating` | string \| null | e.g. `GAS`, `URBAN`, `ELECTRIC`, `BOILER_ROOM` |
| `ownership` | string \| null | e.g. `FULL_OWNERSHIP`, `LIMITED_OWNERSHIP` |
| `marketType` | string \| null | `primary` (developer) or `secondary` (resale) |
| `advertiserType` | string \| null | `business` or `private` |
| `freeFrom` | string \| null | Availability date when specified |
| `windowsType` | string \| null | e.g. `plastic`, `wooden`, `aluminium` |
| `kitchen` | string \| null | Kitchen type: `SEPARATE`, `ANNEX`, or null |
| `parking` | string[] | Parking types available, e.g. `garage`, `parking_spot` |
| `county` | string \| null | County name |
| `equipmentTypes` | string[] | Equipment included, e.g. `furniture`, `washing_machine` |
| `extrasTypes` | string[] | Extras, e.g. `balcony`, `terrace`, `basement`, `lift` |
| `mediaTypes` | string[] | Media available, e.g. `internet`, `cable-television`, `phone` |
| `securityTypes` | string[] | Security features, e.g. `entryphone`, `monitoring`, `anti_burglary_door` |
| `featuresByCategory` | object[] | Structured features grouped by category |
| `aiExtras` | object[] | AI-detected extras `[{ key, value }]` not yet in main listing |
| `agencyPhone` | string \| null | Agency phone number when available |
| `videos` | string[] | Video tour URLs when present |

---

### Example output

```json
{
  "id": "67359467",
  "url": "https://www.otodom.pl/pl/oferta/example-listing-ID4xAbC",
  "title": "115 metrów tarasu — 3 pokoje — 61,3 mkw",
  "operationType": "sale",
  "propertyType": "flat",
  "priceText": "PLN 869000",
  "priceAmount": 869000,
  "priceCurrency": "PLN",
  "pricePerSqm": 14176,
  "rentPrice": 900,
  "hidePrice": false,
  "areaInSquareMeters": 61.3,
  "roomsNumber": 3,
  "floorNumber": 3,
  "streetAddress": "ul. Płochocińska",
  "city": "Warszawa",
  "district": "Białołęka",
  "subdistrict": "Szamocin",
  "province": "mazowieckie",
  "country": "PL",
  "tags": ["TERRACE", "BASEMENT", "TOP_FLOOR", "PARKING_SPOT", "SECURE_BUILDING"],
  "images": ["https://ireland.apollo.olxcdn.com/v1/files/example.jpg"],
  "totalImages": 20,
  "agencyName": "Deweloper Market",
  "publishDate": "2026-04-23",
  "source": "otodom.pl",
  "scrapedAt": "2026-05-06T11:16:03.894Z",
  "contentHash": "06e1a66a4d3014ea",

  "coordinates": { "lat": 52.364383801137, "lng": 21.02693908859 },
  "buildYear": 2024,
  "buildingType": "BLOCK",
  "buildingMaterial": "REINFORCED_CONCRETE",
  "buildingFloors": 3,
  "condition": "TO_COMPLETION",
  "heating": "BOILER_ROOM",
  "ownership": "FULL_OWNERSHIP",
  "marketType": "secondary",
  "advertiserType": "business",
  "freeFrom": "2025-10-17",
  "extrasTypes": ["garage", "basement", "terrace", "lift"],
  "mediaTypes": ["internet", "cable-television", "phone"],
  "securityTypes": ["anti_burglary_door", "entryphone", "monitoring"],
  "agencyPhone": "+48794414112"
}
````

***

### Examples

#### 1 — Apartments for sale in Warsaw

```json
{
  "transaction": "sale",
  "propertyType": "FLAT",
  "location": "warszawa",
  "maxResults": 500
}
```

#### 2 — Houses for rent, all of Poland

```json
{
  "transaction": "rent",
  "propertyType": "HOUSE",
  "location": "cala-polska",
  "maxResults": 200
}
```

#### 3 — Custom search URL with filters (2-3 rooms, 40–70 m², Kraków)

Perform your search on otodom.pl with all desired filters applied, then copy the URL and pass it as `startUrls`:

```json
{
  "startUrls": [
    { "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/malopolskie/krakow/krakow/krakow?roomsNumber=%5BTWO%2CTHREE%5D&areaMin=40&areaMax=70" }
  ],
  "maxResults": 1000,
  "fetchDetails": false
}
```

#### 4 — Daily feed with full details (monitoring for new listings)

```json
{
  "transaction": "sale",
  "propertyType": "FLAT",
  "location": "wroclaw",
  "maxResults": 50,
  "fetchDetails": true
}
```

Run this on a daily schedule to detect new listings in Wrocław with full descriptions, GPS coordinates and building characteristics.

***

### Pricing

**$0.79 per 1,000 listings** — among the lowest in the market.

| Action | Cost |
|---|---|
| Actor start | $0.00005 |
| Per listing stored | $0.00079 |
| 1,000 listings | ~$0.79 |
| 10,000 listings | ~$7.90 |

> Proxy costs are covered by Unfenced Group — you are only charged for results.

***

### Known limitations

- `coordinates`, `buildingType`, `heating`, `condition`, and other building characteristics are only available when `fetchDetails: true`
- `agencyPhone` requires `fetchDetails: true`
- `priceAmount` is null for listings where the owner chose to hide the price (`hidePrice: true`)
- Otodom.pl paginates at 36 listings per page; the full market has 140k+ active listings

***

### Technical details

- **Source:** Otodom.pl — Poland's leading real estate portal
- **Method:** Next.js `_next/data` JSON API — pure JSON responses, no HTML parsing, no browser required
- **Response size:** ~240 KB per page (5× smaller than HTML approach)
- **Memory:** 256 MB minimum, 512 MB default
- **Retry:** Automatic retry on transient errors with exponential backoff
- **Deduplication:** 16-character content hash per listing for change detection across repeated runs
- **Output fields:** 36 fields (list page) + 20 additional fields with `fetchDetails: true`

***

### Additional services

Need custom fields, a different output format, webhook delivery, or scheduled monitoring? Contact **info@unfencedgroup.nl**.

***

*Built and maintained by [Unfenced Group](https://unfencedgroup.nl) — a commercial portfolio of European real estate and job board scrapers on Apify.*

# Actor input Schema

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

One or more Otodom.pl search result URLs. If provided, the transaction / propertyType / location fields below are ignored.

## `transaction` (type: `string`):

Type of listing: sale or rent.

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

Type of property to search.

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

Otodom location slug. Use 'cala-polska' for all of Poland, or a city slug such as 'warszawa', 'krakow', 'wroclaw'. Find the slug in the URL after selecting a location on otodom.pl.

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

Maximum number of listings to scrape.

## `fetchDetails` (type: `boolean`):

When enabled, the scraper visits each listing's detail page to extract the full description, GPS coordinates, building characteristics, AI-detected extras and agency phone number. Increases run time and compute cost.

## Actor input object example

```json
{
  "startUrls": [],
  "transaction": "sale",
  "propertyType": "FLAT",
  "location": "cala-polska",
  "maxResults": 200,
  "fetchDetails": 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 = {
    "startUrls": []
};

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=unfenced-group/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 largest real estate portal. 140k+ listings: apartments, houses, plots, commercial. Prices, areas, rooms, photos, GPS. Sale & rent. No API key required.",
        "version": "1.0",
        "x-build-id": "gYe8OhpLoGe78uwrD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unfenced-group~otodom-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unfenced-group-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/unfenced-group~otodom-scraper/runs": {
            "post": {
                "operationId": "runs-sync-unfenced-group-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/unfenced-group~otodom-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-unfenced-group-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "One or more Otodom.pl search result URLs. If provided, the transaction / propertyType / location fields below are ignored.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "transaction": {
                        "title": "Transaction type",
                        "enum": [
                            "sale",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Type of listing: sale or rent.",
                        "default": "sale"
                    },
                    "propertyType": {
                        "title": "Property type",
                        "enum": [
                            "FLAT",
                            "HOUSE",
                            "ROOM",
                            "TERRAIN",
                            "COMMERCIAL",
                            "WAREHOUSE",
                            "GARAGE"
                        ],
                        "type": "string",
                        "description": "Type of property to search.",
                        "default": "FLAT"
                    },
                    "location": {
                        "title": "Location slug",
                        "type": "string",
                        "description": "Otodom location slug. Use 'cala-polska' for all of Poland, or a city slug such as 'warszawa', 'krakow', 'wroclaw'. Find the slug in the URL after selecting a location on otodom.pl.",
                        "default": "cala-polska"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape.",
                        "default": 200
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "When enabled, the scraper visits each listing's detail page to extract the full description, GPS coordinates, building characteristics, AI-detected extras and agency phone number. Increases run time and compute cost.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
