{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Property Data API - EPC, Comps, Council Tax, Flood Risk",
    "description": "Look up any of 30 million UK homes by UPRN: price and rent estimates with gross yield, land registry sale history and tenure, EPC ratings and scores, council tax band and cost, flood and coastal risk, title and plot, broadband and mobile coverage, comparable listings and the seller disclosure pack.",
    "version": "0.1",
    "x-build-id": "ZC6pm9OWCZh9woIqU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~uk-property-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-uk-property-data-api",
        "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/nabeelbaghoor~uk-property-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-uk-property-data-api",
        "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/nabeelbaghoor~uk-property-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-uk-property-data-api",
        "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": {
          "mode": {
            "title": "What to do",
            "enum": [
              "addressSearch",
              "postcodeSearch",
              "propertyReport",
              "materialInformation",
              "comparables",
              "soldComparables",
              "insider"
            ],
            "type": "string",
            "description": "Address search matches free text to UK properties and their UPRNs, which every other mode needs. Postcode search lists every address in a postcode. Property report reads one property in full. Material information reads the disclosure pack a UK seller has to provide. Comparables lists nearby listings in one portal status, sold comparables lists registered land registry sales, and insider lists what has been on the market across a whole outcode.",
            "default": "propertyReport"
          },
          "searchPhrases": {
            "title": "Search phrases",
            "type": "array",
            "description": "One address, part of an address or postcode per line, for address search mode. The provider returns a match score per result, so a partial address gives you candidates rather than a guess.",
            "items": {
              "type": "string"
            }
          },
          "postcodes": {
            "title": "Postcodes",
            "type": "array",
            "description": "One full UK postcode per line, for postcode search mode. For example SW1A 2AA.",
            "items": {
              "type": "string"
            }
          },
          "uprns": {
            "title": "UPRNs",
            "type": "array",
            "description": "One Unique Property Reference Number per line, for the property, material information and comparable modes. The UPRN is the national identifier that every UK property dataset aligns to, and address search mode is how to find it from an address.",
            "items": {
              "type": "string"
            }
          },
          "outcodes": {
            "title": "Outcodes",
            "type": "array",
            "description": "One postcode outcode per line for insider mode, meaning the part before the space. For example SW1A or M1.",
            "items": {
              "type": "string"
            }
          },
          "includeCommercial": {
            "title": "Include commercial addresses",
            "type": "boolean",
            "description": "Include commercial premises in a postcode search rather than residential addresses only.",
            "default": false
          },
          "includeSchools": {
            "title": "Include nearby schools",
            "type": "boolean",
            "description": "Emit one row per nearby school with its Ofsted rating, pupil count, phases and distance. Read from the property record where it is already present, so it usually costs no extra call.",
            "default": false
          },
          "includeTransport": {
            "title": "Include nearby transport",
            "type": "boolean",
            "description": "Emit one row per nearby transport link, flattened out of the provider's six groups so rail, bus, ferry, road and air links can be sorted together by distance.",
            "default": false
          },
          "includeTreeOrders": {
            "title": "Include tree preservation orders",
            "type": "boolean",
            "description": "Emit one row per tree preservation order around the property, with its order reference and species. Relevant to anyone planning work on or near the plot.",
            "default": false
          },
          "includeListedBuildings": {
            "title": "Include listed buildings",
            "type": "boolean",
            "description": "Emit one row per listed building around the property, with its grade and listing date.",
            "default": false
          },
          "includeTelevision": {
            "title": "Include television availability",
            "type": "boolean",
            "description": "Add which television services reach the property to the property row.",
            "default": false
          },
          "includeImages": {
            "title": "Include map and street view links",
            "type": "boolean",
            "description": "Add the map with plot polygon, satellite image and street view image links to the property row.",
            "default": false
          },
          "listingStatuses": {
            "title": "Listing statuses",
            "type": "array",
            "description": "Which listing populations to pull comparables from. These are not filters over one list: an asking price, an agreed sale and a letting are different numbers, and the status that produced each row travels with it so they can be told apart.",
            "items": {
              "type": "string",
              "enum": [
                "available",
                "sstc",
                "forsalewithdrawn",
                "soldwithdrawn",
                "tolet",
                "letagreed",
                "letagreedwithdrawn",
                "letwithdrawn"
              ],
              "enumTitles": [
                "Available - currently listed for sale",
                "SSTC - sold subject to contract",
                "For sale withdrawn - listed, then withdrawn unsold",
                "Sold withdrawn - went SSTC, then withdrawn after completion",
                "To let - currently listed to let",
                "Let agreed - tenant agreed",
                "Let agreed withdrawn - agreed, then withdrawn",
                "Let withdrawn - listed to let, then withdrawn"
              ]
            }
          },
          "bedrooms": {
            "title": "Bedrooms",
            "type": "string",
            "description": "Restrict comparables to this bedroom count. Leave empty for any."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Restrict comparables to these property types. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "Flat",
                "Detached",
                "Semi-Detached",
                "Terraced",
                "Other"
              ],
              "enumTitles": [
                "Flat",
                "Detached",
                "Semi-detached",
                "Terraced",
                "Other"
              ]
            }
          },
          "priceFrom": {
            "title": "Minimum price",
            "type": "integer",
            "description": "Lowest price to include in comparables, in pounds. Applies to the sale price for sales statuses and to the monthly rent for letting statuses."
          },
          "priceTo": {
            "title": "Maximum price",
            "type": "integer",
            "description": "Highest price to include in comparables, in pounds."
          },
          "searchDistanceMiles": {
            "title": "Search radius in miles",
            "type": "number",
            "description": "How far around the subject property to look for comparables. The provider defaults to half a mile."
          },
          "listedWithinDays": {
            "title": "Listed within days",
            "type": "integer",
            "description": "Only return comparables listed in the last this many days. Leave empty for all time."
          },
          "newBuildOnly": {
            "title": "New builds only",
            "type": "boolean",
            "description": "Restrict comparables to new build properties.",
            "default": false
          },
          "bungalowsOnly": {
            "title": "Bungalows only",
            "type": "boolean",
            "description": "Restrict comparables to bungalows.",
            "default": false
          },
          "sort": {
            "title": "Sort comparables by",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "How the provider orders comparables before the limit is applied, which decides which ones you get when there are more than the limit.",
            "default": ""
          },
          "comparableLimit": {
            "title": "Comparables per property",
            "type": "integer",
            "description": "How many comparables the provider returns per property, between 1 and 100. Larger values are clamped to 100 rather than silently ignored.",
            "default": 30
          },
          "insiderWithdrawn": {
            "title": "Insider: withdrawn listings",
            "type": "boolean",
            "description": "Read the withdrawn feed instead of the active one in insider mode. A withdrawn listing is a property that came off the market without selling, which is a different signal from one that sold.",
            "default": false
          },
          "insiderGroup": {
            "title": "Insider group",
            "type": "string",
            "description": "Optional grouping value the insider feed accepts. Leave empty unless the provider has told you which group to use."
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own account key, sent in the provider's own named header rather than as a bearer token. Stored encrypted and never written into the dataset. Can also be supplied as the DATA_API_KEY environment secret."
          },
          "basicAuthUsername": {
            "title": "Basic auth username",
            "type": "string",
            "description": "Only if your account also requires HTTP basic authentication alongside the key. Leave empty otherwise: a half-filled basic header turns a working key into a refusal."
          },
          "basicAuthPassword": {
            "title": "Basic auth password",
            "type": "string",
            "description": "Password paired with the basic auth username. Sent only when both are filled in. Stored encrypted and never written into the dataset."
          },
          "maxResults": {
            "title": "Maximum rows",
            "type": "integer",
            "description": "Stop after this many rows. Counts every row: addresses, properties, comparables, schools and transport links alike.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "type": "integer",
            "description": "How fast to call the provider. Lower this if your plan's rate limit is being hit.",
            "default": 60
          },
          "baseUrl": {
            "title": "API host",
            "type": "string",
            "description": "Overrides the host the API is called on. Leave empty unless the provider has given you a different one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}