{
  "openapi": "3.0.1",
  "info": {
    "title": "SiteVerdict — UK Property Data (Land Registry, EPC, Planning)",
    "description": "England and Wales sold prices from HM Land Registry Price Paid Data with median/mean, monthly trend and UK HPI context; EPC certificates and £/sqm with your own free EPC token; planning constraints in England (conservation area, listed buildings, flood zone, Article 4, TPO).",
    "version": "1.1",
    "x-build-id": "2uOzbmhfz06ROzl7V"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/siteverdict~siteverdict-uk-property-data/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-siteverdict-siteverdict-uk-property-data",
        "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/siteverdict~siteverdict-uk-property-data/runs": {
      "post": {
        "operationId": "runs-sync-siteverdict-siteverdict-uk-property-data",
        "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/siteverdict~siteverdict-uk-property-data/run-sync": {
      "post": {
        "operationId": "run-sync-siteverdict-siteverdict-uk-property-data",
        "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": {
          "searches": {
            "title": "Searches",
            "type": "array",
            "description": "One per line. Full postcode <code>PL4 7LG</code>, sector <code>PL4 7</code>, outcode <code>PL4</code>, street <code>Mutley Plain, Plymouth</code>, area <code>town:Plymouth</code> / <code>district:Cornwall</code> / <code>county:Devon</code>, or a point <code>point:50.3813,-4.1274</code> (planning check + nearest postcode). Max 200.",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "Sold from (YYYY-MM-DD)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Inclusive. Default: 2 years ago. Price Paid Data starts January 1995."
          },
          "dateTo": {
            "title": "Sold to (YYYY-MM-DD)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Inclusive. Default: yesterday."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Empty = all. HM Land Registry does not separate bungalows; end-terraces count as terraced.",
            "items": {
              "type": "string",
              "enum": [
                "D",
                "S",
                "T",
                "F",
                "O"
              ],
              "enumTitles": [
                "Detached",
                "Semi-detached",
                "Terraced",
                "Flat / maisonette",
                "Other"
              ]
            }
          },
          "tenure": {
            "title": "Tenure",
            "type": "array",
            "description": "Empty = both.",
            "items": {
              "type": "string",
              "enum": [
                "F",
                "L"
              ],
              "enumTitles": [
                "Freehold",
                "Leasehold"
              ]
            }
          },
          "newBuild": {
            "title": "New build",
            "enum": [
              "any",
              "new",
              "established"
            ],
            "type": "string",
            "description": "Filter on HM Land Registry's Old/New flag.",
            "default": "any"
          },
          "minPrice": {
            "title": "Minimum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional."
          },
          "maxPrice": {
            "title": "Maximum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional."
          },
          "includeAdditionalPricePaid": {
            "title": "Include category B sales",
            "type": "boolean",
            "description": "Category B = repossessions, buy-to-lets identified by mortgage, transfers to companies, 'other' property types. Output only; summary statistics always use standard category A sales.",
            "default": false
          },
          "maxTransactionsPerSearch": {
            "title": "Max transactions per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Newest first. Large areas (outcode, town, district) are fetched month by month until this is reached; the summary says how far back it got.",
            "default": 500
          },
          "outputTransactions": {
            "title": "Output individual transactions",
            "type": "boolean",
            "description": "Off = summaries (free) + EPC/planning only.",
            "default": true
          },
          "includeSummary": {
            "title": "Summary per search (free)",
            "type": "boolean",
            "description": "Median/mean/quartiles, by type/tenure/new-build, monthly trend, £/sqm (when EPCs match) and UK HPI context.",
            "default": true
          },
          "includeHpi": {
            "title": "UK House Price Index context",
            "type": "boolean",
            "description": "Local-authority UK HPI (falls back to region/country). Covers the whole UK, including Scotland and Northern Ireland.",
            "default": true
          },
          "includeEpc": {
            "title": "Add Energy Performance Certificates",
            "type": "boolean",
            "description": "Needs your own free bearer token (below) and a permitted purpose. England & Wales.",
            "default": false
          },
          "epcToken": {
            "title": "EPC API bearer token",
            "type": "string",
            "description": "From your 'My account' page on get-energy-performance-data.communities.gov.uk. Stored encrypted by Apify, never logged or written to output."
          },
          "epcPurpose": {
            "title": "EPC permitted purpose (required)",
            "enum": [
              "property-management-energy-efficiency",
              "energy-efficiency-research",
              "improvement-impact-research",
              "government-scheme-promotion",
              "sale-rental-market-energy-information",
              "enforcement",
              "building-control",
              "crime-prevention-legal-proceedings",
              "non-commercial-research-private-study"
            ],
            "type": "string",
            "description": "Ordnance Survey / Royal Mail permit EPC address data only for these energy-performance purposes (or the non-commercial research / private study copyright exception). Pick yours; it is recorded on each EPC row."
          },
          "epcMode": {
            "title": "Which certificates",
            "enum": [
              "matched",
              "all"
            ],
            "type": "string",
            "description": "<b>Matched</b>: only certificates matched to a sold property (gives £/sqm). <b>All</b>: every current certificate in the searched postcodes too.",
            "default": "matched"
          },
          "maxEpcPerSearch": {
            "title": "Max EPC records per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Billable EPC rows per search.",
            "default": 100
          },
          "maxEpcPostcodesPerSearch": {
            "title": "Max EPC postcodes per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "For outcode/street/area searches, EPCs are looked up for the postcodes with the most sales.",
            "default": 25
          },
          "epcFullDetails": {
            "title": "Full certificate details",
            "type": "boolean",
            "description": "Fetch each certificate for floor area, heating, age band, CO2, costs and recommendations (needed for £/sqm). Off = band and address only.",
            "default": true
          },
          "includePlanning": {
            "title": "Planning constraints check",
            "type": "boolean",
            "description": "For full postcodes and points (England): conservation area, listed buildings nearby, Article 4, flood zone, tree preservation, green belt and more from planning.data.gov.uk.",
            "default": true
          },
          "planningDatasets": {
            "title": "Planning datasets",
            "type": "array",
            "description": "Empty = sensible default set (conservation area, listed buildings + outlines, Article 4, flood zone, TPO zones + trees, scheduled monuments, World Heritage, parks & gardens, green belt, AONB/National Landscape, national park, SSSI, ancient woodland).",
            "items": {
              "type": "string",
              "enum": [
                "conservation-area",
                "listed-building",
                "listed-building-outline",
                "article-4-direction-area",
                "flood-risk-zone",
                "tree-preservation-zone",
                "tree",
                "scheduled-monument",
                "world-heritage-site",
                "world-heritage-site-buffer-zone",
                "park-and-garden",
                "green-belt",
                "area-of-outstanding-natural-beauty",
                "national-park",
                "site-of-special-scientific-interest",
                "ancient-woodland",
                "agricultural-land-classification",
                "air-quality-management-area",
                "archaeological-priority-area",
                "asset-of-community-value",
                "battlefield",
                "brownfield-land",
                "brownfield-site",
                "building-preservation-notice",
                "certificate-of-immunity",
                "central-activities-zone",
                "flood-storage-area",
                "heritage-at-risk",
                "heritage-coast",
                "infrastructure-project",
                "locally-listed-building",
                "local-nature-reserve",
                "national-nature-reserve",
                "nutrient-neutrality-catchment",
                "protected-wreck-site",
                "ramsar",
                "special-area-of-conservation",
                "special-protection-area"
              ]
            }
          },
          "planningRadiusMetres": {
            "title": "Nearby radius (metres)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Point features (listed buildings, protected trees) and areas within this distance are reported as 'within radius'. Postcode centroids can be ~100 m from a property.",
            "default": 50
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Per search. Requests to each official host are additionally spaced politely.",
            "default": 2
          },
          "sampleMode": {
            "title": "Sample mode (no network, no charge)",
            "type": "boolean",
            "description": "Replays recorded official responses for PL4 7LG plus a fictional A0 0AA demo of EPC matching and £/sqm. Ignores your searches. Nothing is charged.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}