{
  "openapi": "3.0.1",
  "info": {
    "title": "Otodom.pl Property Listings Scraper (Poland)",
    "description": "Scrapes property listings from Otodom.pl, Poland's largest real-estate portal: price, price per m², area, rooms, floor, address with GPS, photos, description and the seller's phone. Search by city, by area drawn on a map or by Otodom URL, sale and rent. Export to JSON, CSV or Excel.",
    "version": "1.0",
    "x-build-id": "Ax8BHf0ZmznQXkR9z"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~otodom-real-estate-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-otodom-real-estate-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/nice_dev~otodom-real-estate-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-otodom-real-estate-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/nice_dev~otodom-real-estate-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-otodom-real-estate-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",
            "maxItems": 1000,
            "type": "array",
            "description": "Otodom.pl search-result URLs (all filters set on the site are kept, pagination is automatic) or single listing URLs (`https://www.otodom.pl/pl/oferta/...`). When this list is not empty, the search fields below (location, type, filters, sort) are ignored. Max 1 000 URLs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "location": {
            "title": "Location",
            "maxLength": 200,
            "type": "string",
            "description": "City, district or voivodeship name, e.g. `Kraków`, `Warszawa Mokotów`, `pomorskie`. `Polska` = whole country. You can also paste an Otodom location path from a search URL (`mazowieckie/warszawa/warszawa/warszawa`). Names are resolved against Otodom's own location list; qualify a name several places share with its municipality, city or voivodeship (`Nowa Wieś, Michałowice`)."
          },
          "locations": {
            "title": "More locations",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several locations in one run: one search per location (same filters), each with its own **Max listings per search**. Added to **Location**. Same formats as **Location**; a listing found by two searches is saved once. Max 100 locations.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search type",
            "enum": [
              "sprzedaz",
              "wynajem"
            ],
            "type": "string",
            "description": "Sale (`sprzedaz`) or rent (`wynajem`).",
            "default": "sprzedaz"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "mieszkanie",
              "kawalerka",
              "dom",
              "dzialka",
              "lokal",
              "haleimagazyny",
              "garaz",
              "pokoj"
            ],
            "type": "string",
            "description": "Otodom category. `pokoj` (room) exists for rent only; `kawalerka` = studio (1-room apartment).",
            "default": "mieszkanie"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of listings to save for the whole run (after deduplication). 0 = no limit. For reference: apartments for sale in Warsaw ≈ 20 000 listings, whole Poland ≈ 150 000.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max listings per search",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Cap for EACH search (each location, or each search URL), so that the first city cannot use up the whole **Max listings** budget. 0 = no per-search cap.",
            "default": 0
          },
          "extractDetails": {
            "title": "Extract details",
            "type": "boolean",
            "description": "Open each listing page (1 extra request per listing) for GPS coordinates, full description, build year, building details, features, floor plans, all photos and seller phone numbers. Off = listing-card fields only (2-3× faster, same price).",
            "default": true
          },
          "privateSellerContacts": {
            "title": "Include private sellers' name and phone",
            "type": "boolean",
            "description": "Private (non-professional) sellers are natural persons: their name and phone number are personal data under GDPR. Agencies and developers are always included. Turn off to output `contactName` and `contactPhoto` as null and `phones` as an empty list for private sellers.",
            "default": true
          },
          "radius": {
            "title": "Radius (km)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Also return the listings within this distance around each location (the `+ km` menu of Otodom stops at 75; any whole number up to 100 works). With **Google Place ID**, the distance around that place; with **Latitude** / **Longitude**, the radius of the circle searched (1 km when left at 0). 0 = the location only.",
            "default": 0
          },
          "placeId": {
            "title": "Google Place ID (address, street, postal code)",
            "pattern": "^[A-Za-z0-9_-]{10,300}$",
            "maxLength": 300,
            "type": "string",
            "description": "Search around a precise place instead of a location: paste the Google Place ID of an address, a street or a postal code (find it with the Place ID Finder of Google Maps Platform), e.g. `ChIJAZ-GmmbMHkcR_NPqiCq-8HI`. Set **Radius (km)** too — without it Otodom searches about 300 m around the place. Leave **Location** empty. For raw coordinates use **Latitude** / **Longitude** instead; Otodom has no search by postal code text."
          },
          "latitude": {
            "title": "Latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Search in a circle around these coordinates, through Otodom's own map search. Give **Longitude** too and, optionally, **Radius (km)** (1 km by default). Leave **Location** and **Google Place ID** empty. Example: `52.2297`."
          },
          "longitude": {
            "title": "Longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of the centre of the circle, e.g. `21.0122`. Goes with **Latitude**."
          },
          "polygon": {
            "title": "Polygon (area drawn on a map)",
            "maxItems": 500,
            "type": "array",
            "description": "Search inside an area you draw, through Otodom's own map search — the listings whose pin falls inside the polygon. One entry per corner, `latitude, longitude`, at least 3 and at most 500, in order around the area (the last corner is joined to the first). A GeoJSON `Polygon`, `Feature` or one-area `FeatureCollection` (what geojson.io exports) pasted as a single entry also works; a polygon with a hole is refused, only its outline could be searched. Leave **Location**, **Google Place ID** and **Latitude** / **Longitude** empty. Example: `52.2450, 20.9800`, `52.2450, 21.0300`, `52.2100, 21.0300`, `52.2100, 20.9800`.",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Min price (PLN)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Minimum total price (sale) or monthly rent (rent), in PLN."
          },
          "priceMax": {
            "title": "Max price (PLN)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum total price (sale) or monthly rent (rent), in PLN."
          },
          "pricePerM2Min": {
            "title": "Min price per m² (PLN)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Minimum price per square metre, in PLN."
          },
          "pricePerM2Max": {
            "title": "Max price per m² (PLN)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum price per square metre, in PLN."
          },
          "areaMin": {
            "title": "Min area (m²)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Minimum area in square meters (plot area for `dzialka`)."
          },
          "areaMax": {
            "title": "Max area (m²)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Maximum area in square meters (plot area for `dzialka`)."
          },
          "roomsMin": {
            "title": "Min rooms",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Minimum number of rooms (1-6; 6 means 6 or more). Apartments and houses, and commercial premises for sale."
          },
          "roomsMax": {
            "title": "Max rooms",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Maximum number of rooms (1-6; 6 means 6 or more). Apartments and houses, and commercial premises for sale."
          },
          "market": {
            "title": "Market",
            "enum": [
              "ALL",
              "PRIMARY",
              "SECONDARY"
            ],
            "type": "string",
            "description": "Primary = new from developer (rynek pierwotny), secondary = resale (rynek wtórny). Sales only: Otodom has no market filter for rentals nor for plots (the run is refused instead of returning unfiltered listings).",
            "default": "ALL"
          },
          "ownerType": {
            "title": "Seller type",
            "enum": [
              "ALL",
              "PRIVATE",
              "AGENCY",
              "DEVELOPER"
            ],
            "type": "string",
            "description": "Restrict to private sellers, agencies or developers. Otodom has this menu for sales only (plots excepted): for rentals and plots `PRIVATE` uses the “private owner” filter of the site, `AGENCY` keeps the professional sellers among the extracted listings (the others are not charged), and `DEVELOPER` is refused.",
            "default": "ALL"
          },
          "daysSinceCreated": {
            "title": "Posted within",
            "enum": [
              "0",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Only listings published or bumped in the last N days.",
            "default": "0"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "DEFAULT",
              "LATEST",
              "PRICE_ASC",
              "PRICE_DESC",
              "AREA_ASC",
              "AREA_DESC"
            ],
            "type": "string",
            "description": "Order of results, as Otodom gives it: with `maxItems` you get the first listings of this order. Units of a new development follow their development, as on the site. With **Extract details** on, rows are written as listing pages come back, not in this order: sort the table. `LATEST` is the best choice for monitoring new listings; Otodom default becomes newest first when **Only new listings** or **Posted after** is set.",
            "default": "DEFAULT"
          },
          "keyword": {
            "title": "Keyword in description",
            "maxLength": 100,
            "type": "string",
            "description": "Full-text word searched in listing descriptions (Otodom's own `description` filter), e.g. `balkon`, `garaż`, `BREEAM`."
          },
          "buildYearMin": {
            "title": "Built after (year)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Minimum construction year. Apartments, studios and houses only."
          },
          "buildYearMax": {
            "title": "Built before (year)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Maximum construction year. Apartments, studios and houses only."
          },
          "floors": {
            "title": "Floor",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings on one of these floors. Apartments, studios and commercial premises only.",
            "items": {
              "type": "string",
              "enum": [
                "CELLAR",
                "GROUND",
                "FIRST",
                "SECOND",
                "THIRD",
                "FOURTH",
                "FIFTH",
                "SIXTH",
                "SEVENTH",
                "EIGHTH",
                "NINTH",
                "TENTH",
                "ABOVE_TENTH",
                "GARRET"
              ],
              "enumTitles": [
                "Basement level (suterena)",
                "Ground floor (parter)",
                "1st floor",
                "2nd floor",
                "3rd floor",
                "4th floor",
                "5th floor",
                "6th floor",
                "7th floor",
                "8th floor",
                "9th floor",
                "10th floor",
                "Above the 10th floor",
                "Attic (poddasze)"
              ]
            },
            "default": []
          },
          "buildingType": {
            "title": "Building type",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings in one of these building types. Apartments / studios: block … loft; houses: tenement, terraced, detached … farm; `Other` for both. A value that Otodom does not have for the chosen property type is refused before the run starts.",
            "items": {
              "type": "string",
              "enum": [
                "BLOCK",
                "TENEMENT",
                "HOUSE",
                "INFILL",
                "RIBBON",
                "APARTMENT",
                "LOFT",
                "DETACHED",
                "SEMI_DETACHED",
                "RESIDENCE",
                "FARM",
                "OTHER"
              ],
              "enumTitles": [
                "Apartment: block (blok)",
                "Tenement (kamienica)",
                "Apartment: in a house (dom wolnostojący)",
                "Apartment: infill building (plomba)",
                "Terraced (szeregowiec)",
                "Apartment: apartment building (apartamentowiec)",
                "Apartment: loft",
                "House: detached (wolnostojący)",
                "House: semi-detached (bliźniak)",
                "House: residence (rezydencja)",
                "House: farm (gospodarstwo)",
                "Other"
              ]
            },
            "default": []
          },
          "buildingMaterial": {
            "title": "Building material",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings built with one of these materials. For sale only (apartments, studios, houses).",
            "items": {
              "type": "string",
              "enum": [
                "BRICK",
                "WOOD",
                "BREEZEBLOCK",
                "HYDROTON",
                "CONCRETE_PLATE",
                "CONCRETE",
                "SILIKAT",
                "CELLULAR_CONCRETE",
                "REINFORCED_CONCRETE",
                "OTHER"
              ],
              "enumTitles": [
                "Brick (cegła)",
                "Wood (drewno)",
                "Breeze block (pustak)",
                "Expanded clay (keramzyt)",
                "Large concrete panels (wielka płyta)",
                "Concrete (beton)",
                "Sand-lime brick (silikat)",
                "Cellular concrete (beton komórkowy)",
                "Reinforced concrete (żelbet) — apartments and studios only",
                "Other"
              ]
            },
            "default": []
          },
          "extras": {
            "title": "Features (all required)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings that have ALL these features. The list Otodom offers depends on the property type (apartment for sale: balcony, terrace, garage, basement, lift, separate kitchen, garden, two-storey; for rent: + air conditioning, no basement / two-storey; studios: all residential ones; commercial premises: air conditioning and the last six). A feature that does not exist for the chosen type is refused before the run starts. Houses, plots, halls, garages and rooms have none.",
            "items": {
              "type": "string",
              "enum": [
                "BALCONY",
                "TERRACE",
                "GARAGE",
                "BASEMENT",
                "LIFT",
                "SEPARATE_KITCHEN",
                "GARDEN",
                "TWO_STOREY",
                "AIR_CONDITIONING",
                "USABLE_ROOM",
                "NON_SMOKERS_ONLY",
                "ASPHALT_ACCESS",
                "ELEVATOR",
                "FURNITURE",
                "HEATING",
                "PARKING",
                "SHOP_WINDOW"
              ],
              "enumTitles": [
                "Balcony",
                "Terrace",
                "Garage / parking space",
                "Basement / storage",
                "Lift",
                "Separate kitchen",
                "Garden",
                "Two-storey",
                "Air conditioning",
                "Utility room (studios)",
                "Non-smokers only (studios)",
                "Commercial: asphalt access",
                "Commercial: elevator",
                "Commercial: furnished",
                "Commercial: heating",
                "Commercial: parking",
                "Commercial: shop window"
              ]
            },
            "default": []
          },
          "heating": {
            "title": "Heating (rentals)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings with one of these heating types. Otodom only has this filter for apartments and studios FOR RENT.",
            "items": {
              "type": "string",
              "enum": [
                "URBAN",
                "GAS",
                "TILED_STOVE",
                "ELECTRICAL",
                "BOILER_ROOM",
                "OTHER"
              ],
              "enumTitles": [
                "District heating (miejskie)",
                "Gas",
                "Tiled stove (piec kaflowy)",
                "Electric",
                "Boiler room (kotłownia)",
                "Other"
              ]
            },
            "default": []
          },
          "media": {
            "title": "Utilities (rentals, all required)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep the listings that have ALL these utilities. Otodom only has this filter FOR RENT: apartments, studios and rooms (internet, cable TV, phone); houses (the whole list).",
            "items": {
              "type": "string",
              "enum": [
                "INTERNET",
                "CABLE_TELEVISION",
                "PHONE",
                "WATER",
                "ELECTRICITY",
                "GAS",
                "SEWAGE",
                "CESSPOOL",
                "WATER_PURIFICATION"
              ],
              "enumTitles": [
                "Internet",
                "Cable TV",
                "Phone line",
                "House: water",
                "House: electricity",
                "House: gas",
                "House: sewage",
                "House: septic tank",
                "House: water treatment"
              ]
            },
            "default": []
          },
          "terrainAreaMin": {
            "title": "Min plot area of a house (m²)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Houses only: minimum area of the plot. For plots (`dzialka`) use **Min area**."
          },
          "terrainAreaMax": {
            "title": "Max plot area of a house (m²)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Houses only: maximum area of the plot."
          },
          "hasPhotos": {
            "title": "With photos only",
            "type": "boolean",
            "description": "Keep the listings that have at least one photo.",
            "default": false
          },
          "hasVideo": {
            "title": "With a video only",
            "type": "boolean",
            "description": "Keep the listings that have a video (about 3 % of the apartments for sale in Warsaw).",
            "default": false
          },
          "has3DView": {
            "title": "With a virtual tour only",
            "type": "boolean",
            "description": "Keep the listings that have a 3D / virtual tour (about 30 % of the apartments for sale in Warsaw).",
            "default": false
          },
          "hasOpenDay": {
            "title": "With an open day only",
            "type": "boolean",
            "description": "Keep the listings that announce an open day (rare: about 1 in 1 000).",
            "default": false
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only listings first published on or after this date: `2026-09-01`, or a period before now such as `7 days`, `2 weeks`, `1 month` (API: `24 hours` and full ISO date-times work too). Reads `createdAtFirst` (first publication, the true age — a bumped old listing does not count as new), the date Otodom's newest-first sort follows. Finer than **Posted within**: any date. With **Sort by** left at Otodom default, searches are sorted by newest so the run stops as soon as a whole page is too old; with another sort, every page is read."
          },
          "postedBefore": {
            "title": "Posted before",
            "type": "string",
            "description": "Only listings published on or before this date (the whole day is included, Polish time), or older than a period such as `30 days`."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the listings whose title contains one of these words (case and accents ignored).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeListings": {
            "title": "Exclude listings",
            "maxItems": 10000,
            "uniqueItems": true,
            "type": "array",
            "description": "Listings you already have: numeric ids (`66347963`), slugs or listing URLs. They are skipped — not saved, not charged, their page is not opened (a listing URL pasted in **Start URLs** is still opened, then skipped). Max 10 000.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skip the listings that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their page is not even opened (a listing URL pasted in **Start URLs** is still opened, then skipped). First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new listings**. Give each schedule / task its own key (e.g. `krakow-rentals`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "With **Only new listings** on, forget everything remembered under this **Memory key** before the run: this run returns (and charges) every listing again. Does nothing without **Only new listings**. Untick it afterwards.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy or your own proxies. Keep the default: it is included in the price. The residential Apify proxy is not available in this Actor.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of requests processed in parallel. Requests are also capped at 400 per minute (see below).",
            "default": 8
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 2000,
            "type": "integer",
            "description": "Global request rate, 400/min by default. Without a proxy, lower it to about 100.",
            "default": 400
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per request before it is marked as failed.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}