{
  "openapi": "3.0.1",
  "info": {
    "title": "Zoopla UK Scraper | Sale, Rent & House Prices",
    "description": "Scrape Zoopla.co.uk UK property listings: for sale, to rent, new homes, commercial, overseas, sold house prices and estate agents. Get listingId, GBP price, beds, outcode and images. Guest HTML only — no full address, phone or contact forms. Export CSV, Excel or JSON.",
    "version": "0.1",
    "x-build-id": "gKv8LKhunbxDaKKda"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~zoopla-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-zoopla-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/lentic_clockss~zoopla-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-zoopla-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/lentic_clockss~zoopla-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-zoopla-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": {
          "area": {
            "title": "Area",
            "type": "string",
            "description": "UK place: a Zoopla place slug or free-text name, for example Islington, London; London; N1; or Didsbury, Manchester. Fill this or Detail URLs. Each area search is one input with its own Max results allowance. Overseas mode also accepts country slugs such as spain or france. Leave both empty to get a small example run (3 Sheffield sale listings)."
          },
          "detailUrls": {
            "title": "Detail URLs",
            "type": "array",
            "description": "Zoopla listing links, for example https://www.zoopla.co.uk/for-sale/details/12345678/ (also to-rent, new-homes, commercial and overseas details links). Each URL is one input with its own Max results allowance. When filled, Area is not searched.",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search type",
            "enum": [
              "sale",
              "rent",
              "new-homes",
              "detail",
              "house-prices",
              "agents",
              "commercial",
              "commercial-rent",
              "overseas",
              "map"
            ],
            "type": "string",
            "description": "Which Zoopla listings to collect: for sale, to rent, new homes, listing details, sold house prices, estate agents, commercial or overseas. Map pins are not available yet.",
            "default": "sale"
          },
          "maxResults": {
            "title": "Max results per area or URL",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum Dataset rows for each detail URL or area search (1–200; default 70). Larger values are collected in parts of up to 70 rows. All row types count together. The whole run stops at your maximum total charge. Free Apify plan users: up to 200 rows per run and 10 runs total.",
            "default": 70
          },
          "enrichDetails": {
            "title": "Follow listing URLs",
            "type": "boolean",
            "description": "If true, GET each listingUris.detail and merge listingStatus / tenure / JSON-LD price plus lead fields (phones, address, geo, org). Clamps maxPages to 3.",
            "default": false
          },
          "priceMin": {
            "title": "Min price (GBP)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional SRP query price_min=."
          },
          "priceMax": {
            "title": "Max price (GBP)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional SRP query price_max=."
          },
          "bedsMin": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Exact bedsMin (no bedsMax) uses /{n}-bedrooms/{area}/; otherwise query beds_min=."
          },
          "bedsMax": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional SRP query beds_max=."
          },
          "radius": {
            "title": "Radius (miles)",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "Optional SRP query radius= (0–40)."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "",
              "recommended",
              "newest_listings",
              "highest_price",
              "lowest_price",
              "most_reduced"
            ],
            "type": "string",
            "description": "results_sort: recommended, newest_listings, highest_price, lowest_price, most_reduced. Omit for site default.",
            "default": ""
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Pagination key pn= for lists, house prices, and agents. About 28 cards/page on SRP, 25 on house-prices/agents. Capped at 8; enrichDetails clamps to 3.",
            "default": 1
          },
          "workerBaseUrl": {
            "title": "Worker base URL override",
            "pattern": "^(https://worker\\.opendata\\.best/b/zoopla-co-uk/?)?$",
            "type": "string",
            "description": "Optional. Production uses the configured control-plane endpoint https://worker.opendata.best/b/zoopla-co-uk. Overrides must use that same endpoint.",
            "default": ""
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}