{
  "openapi": "3.0.1",
  "info": {
    "title": "UK House Price Statistics by Postcode: Land Registry Data",
    "description": "Aggregated UK house price statistics from official HM Land Registry data: median, mean and quartile sold prices and sales counts by postcode district or sector, town, local authority or county, per month, quarter or year. England and Wales. No addresses. Unofficial.",
    "version": "0.1",
    "x-build-id": "y5Iqo3ejYMQe34Nm5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kyungminlee~uk-property-sold-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kyungminlee-uk-property-sold-prices",
        "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/kyungminlee~uk-property-sold-prices/runs": {
      "post": {
        "operationId": "runs-sync-kyungminlee-uk-property-sold-prices",
        "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/kyungminlee~uk-property-sold-prices/run-sync": {
      "post": {
        "operationId": "run-sync-kyungminlee-uk-property-sold-prices",
        "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": {
          "postcodes": {
            "title": "Postcode districts or sectors",
            "type": "array",
            "description": "Postcode districts (`SW11`, `M1`, `SW1A`) or postcode sectors (`SW11 6`). Each entry is one area. Full postcodes (`SW11 6AB`) are not accepted because this Actor returns statistics only, never address-level data. England and Wales only (Scottish `EH`/`G` and Northern Irish `BT` postcodes have no data). You can combine these with the town, local authority and county fields below.",
            "items": {
              "type": "string"
            }
          },
          "towns": {
            "title": "Towns or cities",
            "type": "array",
            "description": "Town or city names exactly as Land Registry records them, for example `MANCHESTER`, `BRISTOL`, `LEEDS` (case does not matter). The match is on the whole name, not a part of it.",
            "items": {
              "type": "string"
            }
          },
          "districts": {
            "title": "Local authorities",
            "type": "array",
            "description": "Local authority / district names, for example `CITY OF WESTMINSTER`, `BIRMINGHAM`, `CAMBRIDGE`, `CORNWALL` (case does not matter). Use this for boroughs and councils; use Towns for the postal town.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "County names as Land Registry records them, for example `GREATER MANCHESTER`, `KENT`, `GREATER LONDON`, `WEST YORKSHIRE`. Counties are large: combine with a short date range and a price or property type filter, or expect long runs.",
            "items": {
              "type": "string"
            }
          },
          "period": {
            "title": "Period",
            "enum": [
              "monthly",
              "quarterly",
              "yearly"
            ],
            "type": "string",
            "description": "Length of each statistics period: `monthly`, `quarterly` or `yearly`. One row is saved per area, period (and breakdown value) that has at least one sale. Periods are calendar months, quarters or years, cut at the date range you choose.",
            "default": "monthly"
          },
          "breakdownBy": {
            "title": "Break down by",
            "enum": [
              "none",
              "propertyType",
              "newBuild",
              "tenure"
            ],
            "type": "string",
            "description": "Split every period into separate rows by `propertyType` (detached, semi-detached, terraced, flat, other), `newBuild` (new or existing) or `tenure` (freehold, leasehold, unknown). `none` gives one row per area and period. A breakdown multiplies the number of rows, and so the price.",
            "default": "none"
          },
          "dateFrom": {
            "title": "Sold from",
            "type": "string",
            "description": "Only sales with a date of transfer on or after this date: `YYYY-MM-DD`, or a relative value such as `12 months` or `2 years` (that long before the run). Empty = 24 months before the end date. The run reads one Land Registry file per calendar year, so keep the range to 10 years or less."
          },
          "dateTo": {
            "title": "Sold until",
            "type": "string",
            "description": "Only sales with a date of transfer on or before this date: `YYYY-MM-DD` or a relative value such as `1 month`. Empty = today. Land Registry publishes new sales once a month, usually 1-2 months after the sale date, so the newest weeks are never complete."
          },
          "minPrice": {
            "title": "Minimum price (GBP)",
            "minimum": 0,
            "type": "integer",
            "description": "Only sales at or above this price in pounds. Empty = no minimum."
          },
          "maxPrice": {
            "title": "Maximum price (GBP)",
            "minimum": 0,
            "type": "integer",
            "description": "Only sales at or below this price in pounds. Empty = no maximum."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these property types. Empty = all types. `flat` includes maisonettes; `other` is everything Land Registry does not classify (land, commercial-style plots, some converted buildings).",
            "items": {
              "type": "string",
              "enum": [
                "detached",
                "semi-detached",
                "terraced",
                "flat",
                "other"
              ],
              "enumTitles": [
                "Detached",
                "Semi-detached",
                "Terraced",
                "Flat / maisonette",
                "Other"
              ]
            }
          },
          "newBuild": {
            "title": "New builds",
            "enum": [
              "any",
              "only",
              "exclude"
            ],
            "type": "string",
            "description": "`any` keeps every sale, `only` keeps only newly built properties (first sale), `exclude` removes them.",
            "default": "any"
          },
          "tenure": {
            "title": "Tenure",
            "enum": [
              "any",
              "freehold",
              "leasehold"
            ],
            "type": "string",
            "description": "`freehold` or `leasehold` only, or `any`. Most flats are leasehold, most houses freehold.",
            "default": "any"
          },
          "includeAdditionalTransactions": {
            "title": "Include 'additional' price paid transactions",
            "type": "boolean",
            "description": "Land Registry splits sales into standard transactions (ordinary sales to individuals at market value) and additional ones (repossessions, buy-to-let and company purchases, transfers under a power of sale). Leave on for the complete picture; switch off for a cleaner owner-occupier market view.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}