{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Sold Prices UK & France - Land Registry + DVF",
    "description": "Real sale prices from the official registers: HM Land Registry Price Paid Data (England and Wales) and DVF (France). Search by postcode, town, commune or department, filter by date, price and type. One clean record per sale, with licence and attribution. No listings, no asking prices, no API key.",
    "version": "0.1",
    "x-build-id": "OJd6H4UncdbSeOh1S"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/far003~property-sold-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-far003-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/far003~property-sold-prices/runs": {
      "post": {
        "operationId": "runs-sync-far003-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/far003~property-sold-prices/run-sync": {
      "post": {
        "operationId": "run-sync-far003-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": {
          "ukAreas": {
            "title": "UK areas (England & Wales)",
            "type": "array",
            "description": "Where to look in England and Wales. A full postcode (LS11 8AH), a postcode sector (LS11 8), a postcode district (LS11), a postcode area (LS), or a place name: town, district or county (Leeds, Hebden Bridge, Kent). Add a prefix to say what a name is: town:York, district:Cornwall, county:Kent. Case and spaces do not matter. Each area gets up to 'Max results per area' sales. A sale that fits two areas is delivered once, under the first. Scotland and Northern Ireland are not in this register. Leave empty to search France only.",
            "items": {
              "type": "string"
            }
          },
          "frAreas": {
            "title": "French areas",
            "type": "array",
            "description": "Where to look in France. A commune name, with its department if the name is not unique (Bordeaux, \"Saint-Denis, 93\"), an INSEE commune code (33063, 2A004), a postal code with the prefix cp: (cp:33000), or a whole department with dept: (dept:33). Paris, Lyon and Marseille are read through their arrondissements. A name that fits several communes is not guessed: you get a free record that lists the choices. Alsace (67, 68), Moselle (57) and Mayotte are not in DVF. Leave empty to search the UK only.",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "Sold from",
            "type": "string",
            "description": "First sale date to include: 2024-01-31, or just 2024-01 or 2024. Empty = two years before today. Reading more years means reading more yearly files: the UK register has one file per year of about 170 MB, DVF has data for 2021 to 2025 (the 2026 sales are not published yet)."
          },
          "dateTo": {
            "title": "Sold until",
            "type": "string",
            "description": "Last sale date to include: 2025-12-31, or 2025-12 or 2025. Empty = today. Sales appear in the UK register two weeks to two months after completion, so the last weeks are never complete."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only sales at or above this price (GBP for the UK, EUR for France). Empty = no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only sales at or below this price (GBP for the UK, EUR for France). Empty = no maximum."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Keep only these types. Both countries use: house, apartment, other. France also has commercial, land, outbuilding (garage, shed) and mixed (a deed that sells more than one kind of premises). The UK register also lets you ask for detached, semi-detached, terraced or flat. Empty = all types.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "apartment",
                "commercial",
                "land",
                "outbuilding",
                "mixed",
                "other",
                "detached",
                "semi-detached",
                "terraced",
                "flat"
              ]
            }
          },
          "ukStandardSalesOnly": {
            "title": "UK: standard sales only",
            "type": "boolean",
            "description": "The UK register has two categories: A, ordinary sales of a single home at full value, and B, other transfers (repossessions, buy-to-let purchases with a mortgage, sales to companies). Turn this on to keep only category A. Every record says which category it is.",
            "default": false
          },
          "maxResultsPerArea": {
            "title": "Max results per area",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Sales delivered for each area, taken newest first (or oldest first). This is your main cost control: you pay for the sales delivered, nothing else.",
            "default": 100
          },
          "maxResults": {
            "title": "Max results in total",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Hard stop for the whole run, all areas together. Your own 'maximum cost per run' setting also stops the run exactly.",
            "default": 1000
          },
          "sortOrder": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Which sales come first, and which ones you keep when an area has more than the limit.",
            "default": "newest"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}