{"openapi": "3.0.3", "info": {"title": "PDI Property Data API", "description": "\n# The PDI Property Data API\n\nProperty-level UK data over REST. Send an address or a UPRN and get back one reconciled, UPRN-level record for any of **34M+ UK residential properties**: **487+ data points per property**, drawn from **100+ datasets** and joined on the UPRN, covering ownership, planning, valuation, energy, council tax, risk and connectivity.\n\nThe same reconciled record is delivered through these APIs, as bulk data feeds, or as a bespoke delivery into your own systems. It is built for platforms, lenders, PropTech and CRM providers, and enterprise data teams that need property data inside their own products and workflows.\n\n**How it works**\n- **REST and JSON** over HTTPS, described by a machine-readable [OpenAPI 3 specification](https://developers.propertydealsinsight.com/openapi.json).\n- **Authentication.** Every request carries your API token. Endpoints on `api.propertydealsinsight.com` take `Authorization: Bearer <token>` and a `userContext` header (your account email). Endpoints on `dataapi.propertydealsinsight.com` take the PDI standard headers: `X-PDI-Authorization` (your token), `X-PDI-Channel-Id`, `X-PDI-End-To-End-Id`, `X-PDI-Process-Name`, `role`, `userContext` and `userPackage`. Each endpoint lists exactly the headers it needs, with example values. See *Get API Token* below.\n- **Address or UPRN in.** Send an address and get the matched UPRN back, or start from the UPRN.\n- **One identifier.** Every dataset is keyed by UPRN, so responses join without a separate matching step.\n\n**API families**\n- **Property enrichment:** address to UPRN, then property type, bedrooms, floor area, council tax band and annual charge, and EPC rating.\n- **Property data object:** one consolidated property profile by UPRN or address.\n- **Valuation:** automated sales valuation with a confidence score and comparables, rental valuation, and recent sold prices.\n- **Appraisal reports:** a full appraisal report, or its data, by address or UPRN.\n- **Planning:** planning applications at and around a property.\n- **Ownership:** company ownership of property.\n- **Energy performance:** EPC certificates with improvement recommendations.\n- **Council tax:** band and annual charge.\n- **Flood risk:** risk from rivers and the sea, and from surface water.\n- **Mobile and broadband coverage:** Ofcom mobile coverage and predicted broadband speeds by postcode.\n- **Water supplier:** water and sewerage supplier by postcode.\n- **Agent and market intelligence:** agent performance, stock and marketing time, and market prospect lists.\n- **Address search:** postcode, outcode and estate agent name autocomplete.\n- **PDTF / OPDA:** property packs by UPRN for the Property Data Trust Framework.\n\nEvery endpoint, with its parameters, schemas and examples, is listed in the navigation on the left.\n\n**Need something that is not listed?** Bespoke endpoints and bulk extracts are built on the same reconciled record. [Tell us what you are building](https://www.propertydealsinsight.com/contact/?interest=api-access).\n\n**Access:** [Developer overview](https://www.propertydealsinsight.com/developers/) · [API plans and pricing](https://www.propertydealsinsight.com/api-plans-and-pricing/) · [Request API access](https://www.propertydealsinsight.com/contact/?interest=api-access)\n\n\n# Get API Token\n\nTo get your API token:\n\n1. Register or log in at **[Property Deals Insight (PDI)](https://product.propertydealsinsight.com/signup)**.\n2. Go to the **[My Account](https://product.propertydealsinsight.com/profile)** page.\n3. Click **Get API Token** in the left navigation menu, then click the **Generate API Token** button.\n\nYou need an active API plan to generate a token. See [API plans and pricing](https://www.propertydealsinsight.com/api-plans-and-pricing/), or [request access](https://www.propertydealsinsight.com/contact/?interest=api-access) for test credentials and enterprise terms.\n\n![Get your PDI API key in three steps: sign up or log in, open Get API Token in My Account, then copy the token and send it with each request](https://www.propertydealsinsight.com/wp-content/uploads/2026/10/pdi-get-api-key-steps-2026-10.webp)\n\n**Need test credentials, higher volumes or enterprise terms?** [Talk to our data team](https://www.propertydealsinsight.com/contact/?interest=api-access), [book a call](https://calendly.com/propertydealsinsight/45min), or call 0203 389 8222.\n\n", "termsOfService": "https://www.propertydealsinsight.com/policies-and-terms/", "contact": {"name": "PDI Sales", "url": "https://www.propertydealsinsight.com/contact", "email": "sales@propertydealsinsight.com"}, "version": "v1", "x-logo": {"url": "logo.png", "href": "https://www.propertydealsinsight.com", "altText": "PDI Logo"}}, "tags": [{"name": "PDI Appraisal Report", "description": "\nGenerate an appraisal report in seconds for any of 34M+ UK residential properties, by address or UPRN.\n\nEach report brings together:\n- **Property Valuation Estimate**: Estimated value of the property.\n- **Sales Comparison**: Local Sales stock and comparables in the area.\n- **Rental Comparison**: Local Rental stock and comparables in the area.\n- **Recent Sales**: Details of Recently Sold Properties (Land Registry and Ministry of Housing Data).\n- **EPC Details**: Energy Performance Certificate details for the property.\n- **Cash Flow**: Estimated BTL cash flow for the property.\n\n### Type of the appraisal report\n\n| Report Type | Contains |\n|------------|-----------|\n| Default | Property Valuation<br />Sales Comparison<br />Rental Comparison<br />Recent Sales<br />EPC Details<br />Cash Flow |\n| Sale | Property Valuation<br />Sales Comparison<br />Recent Sales<br />EPC Details |\n| Rent | Property Valuation<br />Rental Comparison<br />EPC Details |\n| Buy | Property Valuation<br />Sales Comparison<br />Rental Comparison<br />Recent Sales<br />EPC Details<br />Cash Flow |\n", "x-displayName": "Appraisal reports"}, {"name": "Agent", "x-displayName": "Agents", "description": "Estate agent branches by area, with their stock, listings and marketing performance."}, {"name": "Energy Performance", "x-displayName": "Energy performance (EPC)", "description": "EPC certificates for a property, with current and potential ratings and improvement recommendations."}, {"name": "Property Ownership", "x-displayName": "Ownership", "description": "Company ownership of UK property, linked to Companies House."}, {"name": "PDI Property Enrichment", "description": "Resolve UK addresses to UPRNs and return the property behind them: property type, bedrooms, floor area, council tax band and annual charge, and EPC rating and heating fuel.\n\nMatch an address you already hold, enrich a UPRN you already have, or list the addresses at a postcode for a user to choose from. Coverage spans England, Wales and Scotland.", "x-displayName": "Property enrichment"}, {"name": "PDI Market Intelligence", "x-displayName": "Market intelligence", "description": "Stock coming to market, withdrawals and local market trends."}, {"name": "PDI Sourcing Lists", "description": "Lists of UK properties that match a defined opportunity type. Currently available: auction lots, searched by postcode or location, radius, property type and price range.", "x-displayName": "Sourcing lists"}, {"name": "Direct Mail", "x-displayName": "Direct Mail", "description": "Send targeted letters to property owners from your PDI account."}, {"name": "Planning Application", "x-displayName": "Planning", "description": "Planning applications at and around a property."}, {"name": "Council Tax", "x-displayName": "Council Tax", "description": "Council tax band and annual charge for a property."}, {"name": "Water Supplier", "x-displayName": "Water Supplier", "description": "Water and sewerage supplier for a postcode."}, {"name": "PDTF / OPDA Sandbox", "description": "PDI's **Data Provider** endpoints into the OPDA Smart Property Data Trust Framework (PDTF) Sandbox operated by Raidiam.\n\nAuth: OAuth2 `client_credentials` with `private_key_jwt`, presented over mTLS, issued by `matls-auth.directory.pdtf.raidiam.io`.\n\nResponses are signed via Detached JWS in the `x-jws-signature` header (PS256, RFC 7515 + RFC 7797).\n\nRoutes live under `/opda/...` and are excluded from PDI's internal JWT and credit-deduction middleware.", "x-displayName": "PDTF property packs"}, {"name": "PDTF / OPDA Sandbox (Opaque Token)", "x-displayName": "PDTF packs (opaque token)", "description": "PDTF property packs for OPDA participants using an opaque token."}, {"name": "PDTF / OPDA Sandbox (Reference Spec)", "x-displayName": "PDTF reference spec", "description": "Reference endpoints from the OPDA PDTF specification."}, {"name": "Property Evaluation", "description": "Get automated UK property sales valuations and recent sold price data. Send property details to receive an AVM valuation, confidence score, and comparable sale history for any UK address.", "x-displayName": "Valuations and sold prices"}, {"name": "Property Search", "description": "Property Search REST APIs", "x-displayName": "Property search"}, {"name": "On Market Comparable", "description": "Find comparable on-market UK property listings from portal by postcode, property type, and bedroom count.", "x-displayName": "On-market comparables"}, {"name": "Network Coverage", "description": "Check mobile and broadband network coverage for UK properties by postcode. Returns Ofcom coverage data including signal quality and predicted broadband speeds for each address at the postcode.", "x-displayName": "Mobile and broadband"}, {"name": "Flood Risk", "description": "Check flood risk for a UK property or location. Shows risk from rivers and the sea, and from surface water, using a UPRN, postcode, address, or map coordinates.", "x-displayName": "Flood Risk"}, {"name": "Flip Analysis", "description": "Estimate profit and return on investment for a UK property flip. Enter a purchase price to see acquisition, finance, renovation, and selling costs, plus overall ROI.", "x-displayName": "Flip Analysis"}, {"name": "Cash Flow", "description": "Estimate property cash flow and rental yield for a UK buy-to-let or investment deal. Enter purchase costs, rent, mortgage, and running costs to see monthly cash flow, annual profit, and a 10-year projection.", "x-displayName": "Cash Flow"}, {"name": "Property Data Object", "description": "Get a consolidated UK property profile combining Land Registry sold prices, EPC data, UPRN, council tax, and network coverage by address or UPRN.", "x-displayName": "Property data object"}, {"name": "On Market", "description": "Get full address details for on-market UK properties from portal URLs.", "x-displayName": "On-market listings"}, {"name": "Auto Complete", "description": "Find UK postcodes, outcodes, and estate agent names as you type. These search suggestions help you pick the right property location or agent faster, without typing them fully.", "x-displayName": "Address autocomplete"}], "paths": {"/pdi-appraisal-report": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Appraisal Report"], "summary": "Pdi Appraisal Report", "description": "This endpoint allows you to create an appraisal report by providing the necessary information about the property.You get instant property valuation estimates using our proprietary automated valuation model.\n\nIn response, you will receive a link containing a report based on your preference.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| address    | string| A valid UK Address format which our system supports                      | Flat 6, 221 Stockton Road, Hartlepool<br /><br />209, Stockton Road<br /><br />Apartment 1, 1 Garrett Street</li> | |\n| postcode   | string | A valid UK postcode                  | WA4 1AB | |\n| propertyType| enum: Flat, Detached, Semi-Detached, Terraced | Type of the property  | Flat | YES |\n| internalArea| integer| Property's internal area in Square Meter  | 29 | YES |\n| bedrooms   | integer | Number of bedrooms in the property   | 2 | YES |\n| bathrooms  | integer | Number of bathrooms in the property  | 1 | YES |\n| receptions | integer | Number of reception rooms in the property  | 1                           | YES |\n| reportType | enum: Default, Sale, Rent, Buy | Type of the appraisal report  | Sale | YES |\n| downloadPDF| boolean | Set to true if you want report in PDF  | true | YES |\n| mapType | enum: Street, Satellite, Roadmap | Type of map to show on the front page of the report  | Roadmap | YES |\n| pdiDataEnrichment| boolean | Set to true if you want to auto populate the mandatory fields like property type, internal area and bedrooms| true | YES |", "operationId": "pdi_appraisal_report_pdi_appraisal_report_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAppraisalReport"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}, "examples": {"Default | Link": {"description": "Report type is Default with link", "value": {"link": "https://product.propertydealsinsight.com/sl/SVk="}}, "Sale | Link": {"description": "Report type is Sale with link", "value": {"link": "https://product.propertydealsinsight.com/sl/SVo="}}, "Sale | PDF": {"description": "Report type is Sale with PDF link", "value": {"link": "https://v2.convertapi.com/d/ekok568wb9nrrpxjckjl2no9qdjzritf/property-valuation-report-Flat%202,%2071%20Knutsford%20Road-2024-01-09_12-20-04.pdf"}}, "Rent | Link": {"description": "Report type is Rent with link", "value": {"link": "https://product.propertydealsinsight.com/sl/STE="}}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-appraisal-report' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"Flat 2, 71 Knutsford Road\", \"postcode\": \"WA4 1AB\", \"propertyType\": \"Flat\", \"internalArea\": 70, \"bedrooms\": 2, \"bathrooms\": 1, \"receptions\": 0, \"reportType\": \"Default\", \"downloadPDF\": false, \"mapType\": \"Roadmap\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-appraisal-report\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"address\": \"Flat 2, 71 Knutsford Road\",\n      \"postcode\": \"WA4 1AB\",\n      \"propertyType\": \"Flat\",\n      \"internalArea\": 70,\n      \"bedrooms\": 2,\n      \"bathrooms\": 1,\n      \"receptions\": 0,\n      \"reportType\": \"Default\",\n      \"downloadPDF\": false,\n      \"mapType\": \"Roadmap\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-appraisal-report\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"address\": \"Flat 2, 71 Knutsford Road\",\n    \"postcode\": \"WA4 1AB\",\n    \"propertyType\": \"Flat\",\n    \"internalArea\": 70,\n    \"bedrooms\": 2,\n    \"bathrooms\": 1,\n    \"receptions\": 0,\n    \"reportType\": \"Default\",\n    \"downloadPDF\": false,\n    \"mapType\": \"Roadmap\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-appraisal-report/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Appraisal Report"], "summary": "Pdi Appraisal Report By Uprn", "description": "This endpoint allows you to create an appraisal report by providing the necessary information about the property.You get instant property valuation estimates using our proprietary automated valuation model.\n\nIn response, you will receive a link containing a report based on your preference.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| uprn    | string| Unique Property Reference Number                      | 10090372040 | |\n| propertyType| enum: Flat, Detached, Semi-Detached, Terraced | Type of the property  | Flat | YES |\n| internalArea| integer| Property's internal area in Square Meter  | 29 | YES |\n| bedrooms   | integer | Number of bedrooms in the property   | 2 | YES |\n| bathrooms  | integer | Number of bathrooms in the property  | 1 | YES |\n| receptions | integer | Number of reception rooms in the property  | 1                           | YES |\n| reportType | enum: Default, Sale, Rent, Buy | Type of the appraisal report  | Sale | YES |\n| downloadPDF| boolean | Set to true if you want report in PDF  | true | YES |\n| mapType | enum: Street, Satellite, Roadmap | Type of map to show on the front page of the report  | Roadmap | YES |\n| pdiDataEnrichment| boolean | Set to true if you want to auto populate the mandatory fields like property type, internal area and bedrooms| true | YES |", "operationId": "pdi_appraisal_report_by_uprn_pdi_appraisal_report_uprn_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAppraisalReportUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}, "examples": {"Default | Link": {"description": "Report type is Default with link", "value": {"link": "https://product.propertydealsinsight.com/sl/SVk="}}, "Sale | Link": {"description": "Report type is Sale with link", "value": {"link": "https://product.propertydealsinsight.com/sl/SVo="}}, "Sale | PDF": {"description": "Report type is Sale with PDF link", "value": {"link": "https://v2.convertapi.com/d/ekok568wb9nrrpxjckjl2no9qdjzritf/property-valuation-report-Flat%202,%2071%20Knutsford%20Road-2024-01-09_12-20-04.pdf"}}, "Rent | Link": {"description": "Report type is Rent with link", "value": {"link": "https://product.propertydealsinsight.com/sl/STE="}}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-appraisal-report/uprn' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"10090372040\", \"propertyType\": \"Flat\", \"internalArea\": 70, \"bedrooms\": 2, \"bathrooms\": 1, \"receptions\": 0, \"reportType\": \"Default\", \"downloadPDF\": false, \"mapType\": \"Roadmap\", \"pdiDataEnrichment\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-appraisal-report/uprn\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"uprn\": \"10090372040\",\n      \"propertyType\": \"Flat\",\n      \"internalArea\": 70,\n      \"bedrooms\": 2,\n      \"bathrooms\": 1,\n      \"receptions\": 0,\n      \"reportType\": \"Default\",\n      \"downloadPDF\": false,\n      \"mapType\": \"Roadmap\",\n      \"pdiDataEnrichment\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-appraisal-report/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"10090372040\",\n    \"propertyType\": \"Flat\",\n    \"internalArea\": 70,\n    \"bedrooms\": 2,\n    \"bathrooms\": 1,\n    \"receptions\": 0,\n    \"reportType\": \"Default\",\n    \"downloadPDF\": false,\n    \"mapType\": \"Roadmap\",\n    \"pdiDataEnrichment\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-appraisal-report-data": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Appraisal Report"], "summary": "Pdi Appraisal Report Data", "description": "Run the same orchestration as `/pdi-appraisal-report` but stop short\nof generating the static map, share link and PDF. Returns the raw JSON\npayloads from each backend API stitched together so the caller can shape\nthem (e.g. into a PDTF property pack).", "operationId": "pdi_appraisal_report_data_pdi_appraisal_report_data_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAppraisalReport"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"Flat 2, 71 Knutsford Road\", \"postcode\": \"WA4 1AB\", \"propertyType\": \"Flat\", \"internalArea\": 70, \"bedrooms\": 2, \"bathrooms\": 1, \"receptions\": 0, \"reportType\": \"Default\", \"downloadPDF\": false, \"mapType\": \"Roadmap\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"address\": \"Flat 2, 71 Knutsford Road\",\n      \"postcode\": \"WA4 1AB\",\n      \"propertyType\": \"Flat\",\n      \"internalArea\": 70,\n      \"bedrooms\": 2,\n      \"bathrooms\": 1,\n      \"receptions\": 0,\n      \"reportType\": \"Default\",\n      \"downloadPDF\": false,\n      \"mapType\": \"Roadmap\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"address\": \"Flat 2, 71 Knutsford Road\",\n    \"postcode\": \"WA4 1AB\",\n    \"propertyType\": \"Flat\",\n    \"internalArea\": 70,\n    \"bedrooms\": 2,\n    \"bathrooms\": 1,\n    \"receptions\": 0,\n    \"reportType\": \"Default\",\n    \"downloadPDF\": false,\n    \"mapType\": \"Roadmap\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-appraisal-report-data/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Appraisal Report"], "summary": "Pdi Appraisal Report Data By Uprn", "description": "Same orchestration as `/pdi-appraisal-report-data` but driven by UPRN.\nAddress and postcode are resolved from the UPRN automatically.\nProperty type, internal area and bedrooms are enriched from the database\nwhen `pdiDataEnrichment` is True and not explicitly provided.", "operationId": "pdi_appraisal_report_data_by_uprn_pdi_appraisal_report_data_uprn_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAppraisalReportUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data/uprn' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"10090372040\", \"propertyType\": \"Flat\", \"internalArea\": 70, \"bedrooms\": 2, \"bathrooms\": 1, \"receptions\": 0, \"reportType\": \"Default\", \"downloadPDF\": false, \"mapType\": \"Roadmap\", \"pdiDataEnrichment\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data/uprn\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"uprn\": \"10090372040\",\n      \"propertyType\": \"Flat\",\n      \"internalArea\": 70,\n      \"bedrooms\": 2,\n      \"bathrooms\": 1,\n      \"receptions\": 0,\n      \"reportType\": \"Default\",\n      \"downloadPDF\": false,\n      \"mapType\": \"Roadmap\",\n      \"pdiDataEnrichment\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-appraisal-report-data/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"10090372040\",\n    \"propertyType\": \"Flat\",\n    \"internalArea\": 70,\n    \"bedrooms\": 2,\n    \"bathrooms\": 1,\n    \"receptions\": 0,\n    \"reportType\": \"Default\",\n    \"downloadPDF\": false,\n    \"mapType\": \"Roadmap\",\n    \"pdiDataEnrichment\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/marketing-time-by-agent": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "Marketing Time By Agent", "description": "We begin by compiling a comprehensive list of properties that have been marked as sold and are also registered in the UK registry data. Next, we calculate the time difference between the initial listing date and the date they were sold. This calculation provides you with the average number of days it takes for an agent to sell properties within a specified postcode area.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| region   | string | A valid UK postcode area                 | HA<br />BD<br />EC<br /> | |\n| limit | integer | maximum number of results to return  | 50 | Y |\n| pageNumber | integer | to navigate through multiple pages of results  | 1 | Y |", "operationId": "Marketing_Time_By_Agent_agent_marketing_time_by_agent_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PMarketingTimeByAgent"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "totalElements": 3, "totalPages": 1, "data": [{"agent_name": "Robsons", "agent_address": "Robsons, Pinner", "agent_phone": "020 8866 8083", "avg_marketing_days": "149", "no_of_listings": "31"}, {"agent_name": "Gibbs Gillespie", "agent_address": "Gibbs Gillespie, Ruislip Manor", "agent_phone": "01895 601095", "avg_marketing_days": "157", "no_of_listings": "30"}, {"agent_name": "Lawrence Rand", "agent_address": "Lawrence Rand, Ruislip", "agent_phone": "01895 601049", "avg_marketing_days": "152", "no_of_listings": "27"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/marketing-time-by-agent' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"region\": \"HA\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/marketing-time-by-agent\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"region\": \"HA\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/marketing-time-by-agent\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"region\": \"HA\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/agent-performance": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "Agent Performance", "description": "We measure agent performance using several key parameters:\n\n- **Number of Listings**: The total number of properties listed by the agent.\n- **Listings Sold**: The number of properties sold by the agent within a specific timeframe.\n- **Time to Sale**: The average duration from listing to sale.\n- **Valuation vs. Sale Price**: The difference between the initial property valuation and the actual sale price.\n\nThese metrics provide a comprehensive overview of an agent's effectiveness and efficiency in the real estate market.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| outcode   | string | A valid UK outcode                 | B5<br />BS18<br />EH10 | |\n| limit | integer | maximum number of results to return  | 50 | Y |\n| pageNumber | integer | to navigate through multiple pages of results  | 1 | Y |", "operationId": "Agent_Performance_agent_agent_performance_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAgentPerformance"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "totalElements": 3, "totalPages": 1, "data": [{"agent_name": "Arkade Property", "agent_address": "Ground Floor, 41 Vittoria St, Birmingham", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(595292).png", "no_of_live_listings": "18", "no_of_sold_listings": "10", "avg_difference_in_percentage": "3.029000", "turnaround_days": "179.5000", "turnaround_weeks": "26"}, {"agent_name": "eXp World UK", "agent_address": "eXp World UK limited, 1 Northumberland Avenue, Trafalgar Square", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(615292).png", "no_of_live_listings": "2398", "no_of_sold_listings": "44", "avg_difference_in_percentage": "2.757727", "turnaround_days": "122.1591", "turnaround_weeks": "18"}, {"agent_name": "Sold.co.uk", "agent_address": "First Floor, 50 St Mary Axe, London", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(755292).png", "no_of_live_listings": "550", "no_of_sold_listings": "13", "avg_difference_in_percentage": "2.593846", "turnaround_days": "165.3077", "turnaround_weeks": "24"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/agent-performance' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"B1\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/agent-performance\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"B1\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/agent-performance\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"B1\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/property-type-agent-wise": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "Agent Wise Property Type", "description": "The purpose of this is to provide you with a breakdown of the total number of listings categorized by property type and organized by the respective agents.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| region   | string | A valid UK postcode area                 | HA<br />BD<br />EC | |\n| limit | integer | maximum number of results to return  | 50 | Y |\n| pageNumber | integer | to navigate through multiple pages of results  | 1 | Y |", "operationId": "Agent_Wise_Property_Type_agent_property_type_agent_wise_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPropertyTypeAgentWise"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "totalElements": 3, "totalPages": 1, "data": [{"agent_name": "Blueground", "agent_address": "Office 503, 66-67 Newman Street, London", "agent_phone": "020 3641 9988", "property_type": "flat", "no_of_listing": "278"}, {"agent_name": "Foxtons", "agent_address": "Foxtons, Clerkenwell", "agent_phone": "020 3909 6448", "property_type": "flat", "no_of_listing": "244"}, {"agent_name": "Savills - Clerkenwell Lettings", "agent_address": "122/124 St John Street, Clerkenwell", "agent_phone": "020 8022 3151", "property_type": "flat", "no_of_listing": "243"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/property-type-agent-wise' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"region\": \"EC\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/property-type-agent-wise\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"region\": \"EC\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/property-type-agent-wise\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"region\": \"EC\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/agent-wise-stock": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "Agent Wise Stock", "description": "Get Agentwise total listings within a given no of days and for a particular outcode\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         | Optional |\n|-----------|------|------------------|-----------------------------------------------------------------|-----------|\n| outcode   | string | A valid UK outcode                 | B5<br />BS18<br />EH10 | |\n| forDays | integer | get total stock for days  | 182 | Y |\n| limit | integer | maximum number of results to return  | 50 | Y |\n| pageNumber | integer | to navigate through multiple pages of results  | 1 | Y |", "operationId": "Agent_Wise_Stock_agent_agent_wise_stock_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAgentWiseStock"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 3, "pageNumber": 1, "size": 3, "totalElements": 107, "totalPages": 36, "data": [{"agent_name": "Connells - Birmingham City", "agent_address": "145 Great Charles Street Queensway, Birmingham", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(561596).png", "no_of_sale_stock": "27", "no_of_rent_stock": "25"}, {"agent_name": "Dixons Estate Agents - Birmingham City Centre", "agent_address": "Westside Two, 20 Suffolk Street, Queensway, Birmingham", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(640107).png", "no_of_sale_stock": "24", "no_of_rent_stock": "0"}, {"agent_name": "Alesco Investment Properties", "agent_address": "Office 5 2 2, The Leather Market, London", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/logo_(595292).png", "no_of_sale_stock": "24", "no_of_rent_stock": "0"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/agent-wise-stock' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"B1\", \"forDays\": 182}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/agent-wise-stock\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"B1\",\n      \"forDays\": 182\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/agent-wise-stock\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"B1\",\n    \"forDays\": 182\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/list": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "List Of Agents", "description": "Returns a list of agent branches that operate in the specified outcode.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| outcode | string | A valid UK outcode | B5, BS18, EH10 | No |\n| limit | integer | Maximum number of results to return | 10 | Yes (default: 10) |\n| pageNumber | integer | Page number for pagination | 1 | Yes (default: 1) |\n\n## Response\n\n| Field | Description | Example |\n|-------|-------------|---------|\n| agent_name | Name of the agent / company name | Bloomsbury Invest |\n| agent_address | Agent branch address | 2 Stephen Street, London |\n| agent_logo | Agent brand logo URL | https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(596116).png |\n\n> **💷 Credit Cost**  \n> 1 credit per 10 results (minimum 1 credit will be deducted for each request)", "operationId": "List_of_Agents_agent_list_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PListOfAgents"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 3, "pageNumber": 1, "size": 3, "totalElements": 34, "totalPages": 12, "data": [{"agent_name": "Bloomsbury Invest", "agent_address": "2 Stephen Street, London", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(596116).png"}, {"agent_name": "Connells - Birmingham City", "agent_address": "145 Great Charles Street Queensway, Birmingham", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(561596).png"}, {"agent_name": "Rothmore Property", "agent_address": "Manchester One, 53 Portland Street, Manchester", "agent_logo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(724747).png"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/list' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"B1\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/list\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"B1\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/list\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"B1\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/agent/listings": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Agent"], "summary": "Agent Listings", "description": "This will return a list of on market listings (both sale and rental) listed by an agent.\n\n### Request Body\n\n| Parameter | Type       | Description                                      | Example                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| agentName   | string | A valid agent name which PDI supports                 | Maguire Jackson<br />Barrows & Forrester<br />Davidson Estates |\n| agentBranch   | string | A valid agent branch address which PDI supports                 | 33 George Street, Birmingham<br />14a Frederick Road, Edgbaston, Birmingham|\n\n\n### Response\n|Fields  | Description  | Examples\n|--|--|--|\n| pdi_listing_id | A unique PDI identifier for the listing  |PDI-122916113<br />PDI-115165772|\n| category | Type of listing  | sale<br />rent|\n| type_of_property | Type of property  | flat<br />terraced<br />detached|\n| bedrooms | No of Bedrooms  | 2<br />3|\n| price | Asking price  | 180000<br />364000|\n| current_status | Status of the listing  | live<br />sold<br />expired|", "operationId": "Agent_Listings_agent_listings_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAgentListings"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/agent/listings' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"agentName\": \"Barrows & Forrester\", \"agentBranch\": \"19 Kenyon Forge, Kenyon Street, Birmingham\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/agent/listings\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"agentName\": \"Barrows & Forrester\",\n      \"agentBranch\": \"19 Kenyon Forge, Kenyon Street, Birmingham\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/agent/listings\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"agentName\": \"Barrows & Forrester\",\n    \"agentBranch\": \"19 Kenyon Forge, Kenyon Street, Birmingham\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/epc-object-with-recommendations": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "get": {"tags": ["Energy Performance"], "summary": "Energy Performance Certificate With Recommendation", "description": "This endpoint provides you with domestic energy performance certificates for properties, along with suggestions on how to improve their energy efficiency. It also gives you the estimated total cost to achieve a better energy rating, along with specific recommendations for each property.\n\n### Example Get Requests\n\n| Title | Get Parameters |\n|-----------|------|\n| Filtering by postcode   | ?postcode=HA1<br />?postcode=HA1 1SE |\n| Filtering by uprn | ?uprn=12345678 |\n| Filtering by address | ?address=liverpool |\n| Filtering by address with limit | ?address=liverpool&size=20 |", "operationId": "Energy_Performance_Certificate_with_Recommendation_epc_object_with_recommendations_get", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": [{"address": "Apartment 3, 71, Knutsford Road", "postcode": "WA4 1AB", "uprn": "10090372041", "current-energy-rating": "E", "potential-energy-rating": "C", "indicative-total-cost-to-reach-potential-energy-rating": "£8,795 - £22,785", "lodgement-datetime": "2018-04-17 14:13:58", "lmk-key": "1623958649202018041714135850789738", "recommendations": [{"improvement-summary-text": "Increase loft insulation to 270 mm", "indicative-cost": "£100 - £350"}, {"improvement-summary-text": "Internal or external wall insulation", "indicative-cost": "£4,000 - £14,000"}, {"improvement-summary-text": "Low energy lighting for all fixed outlets", "indicative-cost": "£10"}, {"improvement-summary-text": "High heat retention storage heaters", "indicative-cost": "£800 - £1,200"}, {"improvement-summary-text": "Heat recovery system for mixer showers", "indicative-cost": "£585 - £725"}, {"improvement-summary-text": "Replace single glazed windows with low-E double glazed windows", "indicative-cost": "£3,300 - £6,500"}]}]}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://dataapi.propertydealsinsight.com/epc-object-with-recommendations' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://dataapi.propertydealsinsight.com/epc-object-with-recommendations\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/epc-object-with-recommendations\", {\n  method: \"GET\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/property-ownership/company": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Property Ownership"], "summary": "Company", "description": "Get list of properties owned by company along with title number, this list includes any overseas owners too", "operationId": "Company_property_ownership_company_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPropertyOwnershipCompany"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 20, "pageNumber": 1, "size": 2, "totalElements": 2, "totalPages": 1, "data": [{"company_registered_at": "UK", "title_number": "WSX218608", "tenure": "Leasehold", "property_address": "Flat 35, Cissbury Court, Findon Road, Worthing (BN14 0BF)", "district": "WORTHING", "county": "WEST SUSSEX", "region": "SOUTH EAST", "postcode": "BN14 0BF", "price_paid": 0, "proprietor_name_1": "WHITEFIELD CHRISTIAN TRUST", "company_registration_no_1": "", "proprietorship_category_1": "Corporate Body", "proprietor_1_address_1": "St Audreys, South Street, Wincanton BA9 9DR", "proprietor_1_address_2": "", "proprietor_1_address_3": "", "proprietor_name_2": "", "company_registration_no_2": "", "proprietorship_category_2": "", "proprietor_2_address_1": "", "proprietor_2_address_2": "", "proprietor_2_address_3": "", "proprietor_name_3": "", "company_registration_no_3": "", "proprietorship_category_3": "", "proprietor_3_address_1": "", "proprietor_3_address_2": "", "proprietor_3_address_3": "", "proprietor_name_4": "", "company_registration_no_4": "", "proprietorship_category_4": "", "proprietor_4_address_1": "", "proprietor_4_address_2": "", "proprietor_4_address_3": "", "date_proprietor_added": "2015-09-02T00:00:00"}, {"company_registered_at": "UK", "title_number": "WSX223423", "tenure": "Leasehold", "property_address": "31 Cissbury Court, Findon Road, Worthing, (BN14 0BF)", "district": "WORTHING", "county": "WEST SUSSEX", "region": "SOUTH EAST", "postcode": "BN14 0BF", "price_paid": 90000, "proprietor_name_1": "RETIREMENT RENTALS LIMITED", "company_registration_no_1": "03441914", "proprietorship_category_1": "Limited Company or Public Limited Company", "proprietor_1_address_1": "80 Cheapside, London EC2V 6EE", "proprietor_1_address_2": "", "proprietor_1_address_3": "", "proprietor_name_2": "", "company_registration_no_2": "", "proprietorship_category_2": "", "proprietor_2_address_1": "", "proprietor_2_address_2": "", "proprietor_2_address_3": "", "proprietor_name_3": "", "company_registration_no_3": "", "proprietorship_category_3": "", "proprietor_3_address_1": "", "proprietor_3_address_2": "", "proprietor_3_address_3": "", "proprietor_name_4": "", "company_registration_no_4": "", "proprietorship_category_4": "", "proprietor_4_address_1": "", "proprietor_4_address_2": "", "proprietor_4_address_3": "", "date_proprietor_added": "2018-10-05T00:00:00"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/property-ownership/company' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"BN14\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/property-ownership/company\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"BN14\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/property-ownership/company\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"BN14\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/address/uprn-lookup-by-address": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Property Enrichment"], "summary": "UPRN by address", "description": "Resolve a UK address and postcode to a UPRN.\n\nMatches an address you already hold against PDI's property register and returns\nits Unique Property Reference Number (UPRN). No property data is returned — use\nit to attach UPRNs to your records, then enrich only the ones you need.\n\n### Match outcomes\n\nBranch on `match_status`. Every outcome is returned with HTTP `200`, including\nno match.\n\n| match_status | Meaning | uprn |\n|--|--|--|\n| `MATCHED` | One property identified | Populated |\n| `MULTIPLE_MATCHES` | Several properties qualify and none is an exact match. `matches` lists them | null |\n| `NO_MATCH` | No property could be verified. `reason_code` says why | null |\n\nTo resolve a `MULTIPLE_MATCHES` result, send the `address` and `postcode` of the\nchosen entry in `matches` as a new request.\n\n### Common use cases\n\n- **Bulk reconciliation** — attach UPRNs to an existing customer or property book.\n- **De-duplication** — find records that refer to the same property.\n- **Joining datasets** — use the UPRN as the key to other property data.\n\n### Works well with\n\n- **`/pdi-property-enrichment/core`** and **`/pdi-property-enrichment/base`** —\n  enrich a UPRN you have resolved.\n- **`/pdi-property-enrichment/core-by-address`** — match and enrich in a single call.\n\n### Request\n\n| Parameter | Type   | Description | Example |\n|--|--|--|--|\n| address   | string | The address as you hold it, as free text | 8 Wall Street, Blackpool |\n| postcode  | string | A full, valid UK postcode. Case and spacing are normalised | FY1 2EG |\n\nThe postcode is the search key: an address is only matched against properties at\nthe postcode supplied.\n\n### Response (`data`)\n\n| Field | Description |\n|--|--|\n| input_address | The address you sent |\n| postcode | The postcode you sent, normalised |\n| match_status | `MATCHED`, `MULTIPLE_MATCHES` or `NO_MATCH` |\n| multiple_matches | `true` when several properties qualified |\n| match_confidence | `HIGH`, `MEDIUM` or `LOW` when `MATCHED`; otherwise null |\n| score | 0–1, how closely the matched address corresponds to your input, when `MATCHED`; otherwise null |\n| uprn | Unique Property Reference Number, when `MATCHED`; otherwise null |\n| matched_address | The address of the identified property, when `MATCHED`; otherwise null |\n| address_source | `ADDRESS_MASTER` (PDI property register) or `EPC` (EPC register), when `MATCHED` or `MULTIPLE_MATCHES`; otherwise null |\n| reason_code | Why a single property was not identified — see below. Null when `MATCHED` |\n| matches | When `MULTIPLE_MATCHES`, the candidates, each with `address`, `postcode`, `score` and `address_source`. Candidates carry no UPRN. Empty otherwise |\n\n### reason_code\n\n| Code | Meaning |\n|--|--|\n| `MULTIPLE_CANDIDATES` | Several properties qualified. Choose from `matches` |\n| `NO_CANDIDATE_PASSED_VERIFICATION` | Properties exist at the postcode, but none matched the address closely enough — often a missing or different flat or unit number |\n| `NO_CANDIDATE_RETRIEVED` | Nothing at the postcode resembled the address. Check the postcode is right |\n| `NO_RESOLVABLE_ADDRESS` | The address is a single name with no number, such as a town on its own |\n\n### Credits\n\nCharged only when a property is identified (`MATCHED`). `MULTIPLE_MATCHES`,\n`NO_MATCH` and rejected requests are not charged. The rate below applies to a\n`MATCHED` result, and the `X-PDI-Credits-Deducted` response header states what\neach accepted request cost.\n\n\n> **💷 Credit Cost**  \n> 1 credit per request", "operationId": "Lookup_Address_by_Address_and_Postcode_address_uprn_lookup_by_address_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PLookupAddressByAddressAndPostcode"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "examples": {"matched": {"summary": "MATCHED — one property identified", "value": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"input_address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG", "match_status": "MATCHED", "multiple_matches": false, "match_confidence": "HIGH", "score": 1, "uprn": "100010837358", "matched_address": "8 Wall Street, Blackpool", "address_source": "ADDRESS_MASTER", "matches": []}]}}, "multiple": {"summary": "MULTIPLE_MATCHES — candidates to choose from (2 of 25 shown)", "value": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"input_address": "Screenworks 22 Highbury Grove", "postcode": "N5 2EF", "match_status": "MULTIPLE_MATCHES", "multiple_matches": true, "address_source": "ADDRESS_MASTER", "reason_code": "MULTIPLE_CANDIDATES", "matches": [{"address": "Unit G11, Screenworks, 22 Highbury Grove, London", "postcode": "N5 2EF", "score": 0.8785, "address_source": "ADDRESS_MASTER"}, {"address": "Unit G01, Screenworks, 22 Highbury Grove, London", "postcode": "N5 2EF", "score": 0.8785, "address_source": "ADDRESS_MASTER"}]}]}}, "no_match": {"summary": "NO_MATCH — no property verified", "value": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"input_address": "19 Oswald Street, Glasgow", "postcode": "G1 4PD", "match_status": "NO_MATCH", "multiple_matches": false, "reason_code": "NO_CANDIDATE_PASSED_VERIFICATION", "matches": []}]}}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/address/uprn-lookup-by-address' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"address\": \"8 Wall Street, Blackpool\", \"postcode\": \"FY1 2EG\", \"debug\": false, \"include\": [\"example\"]}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/address/uprn-lookup-by-address\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"address\": \"8 Wall Street, Blackpool\",\n      \"postcode\": \"FY1 2EG\",\n      \"debug\": false,\n      \"include\": [\n        \"example\"\n      ]\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/address/uprn-lookup-by-address\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"address\": \"8 Wall Street, Blackpool\",\n    \"postcode\": \"FY1 2EG\",\n    \"debug\": false,\n    \"include\": [\n      \"example\"\n    ]\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-property-enrichment/base": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Property Enrichment"], "summary": "Property attributes by UPRN", "description": "Return the core attributes of a UK property from its UPRN.\n\nReturns the property's address, type, bedrooms and floor area, with the source of\neach value. For council tax and EPC as well, use `/pdi-property-enrichment/core`.\n\n### Common use cases\n\n- **Record enrichment** — add property type, size and bedrooms to records already\n  keyed by UPRN.\n- **Portfolio segmentation** — group a set of properties by type and size.\n\n### Works well with\n\n- **`/address/uprn-lookup-by-address`** — resolve an address to a UPRN first.\n- **`/pdi-property-enrichment/core`** — the same attributes plus council tax and EPC.\n\n### Request\n\n| Parameter | Type   | Description | Example |\n|--|--|--|--|\n| uprn | string | Unique Property Reference Number, digits only | 100010837358 |\n\n### Response (`data`)\n\n| Field | Description |\n|--|--|\n| address | The property's address |\n| postcode | The property's postcode |\n| uprn | Unique Property Reference Number |\n| property_type | Type of property, for example `Flat`, `Terraced`, `Semi-Detached`, `Detached` or `House`. Null when not held |\n| bedrooms | Number of bedrooms. Null when not held |\n| total_floor_area | Floor area in square metres. Null when not held |\n| source | The dataset each of `property_type`, `bedrooms` and `total_floor_area` came from, for example `EPC`, `price_paid` (HM Land Registry) or `Portal` (property listings) |\n\nA UPRN with no record returns HTTP `200` with an empty `data` list and the\nmessage `No property found for this UPRN.`\n\n### Credits\n\nCharged when a property is returned. A UPRN with no record is not charged, and\nneither is a rejected request. When a property is returned, the\n`X-PDI-Credits-Deducted` response header states the charge.\n\n\n> **💷 Credit Cost**  \n> 1 credit per request", "operationId": "Enrich_a_property_by_UPRN__base__pdi_property_enrichment_base_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPropertyEnrichment"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG", "uprn": "100010837358", "property_type": "Terraced", "bedrooms": 2, "total_floor_area": 53, "source": {"property_type": "price_paid", "bedrooms": "Portal", "total_floor_area": "EPC"}}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-property-enrichment/base' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"uprn\": \"100010837358\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/base\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"uprn\": \"100010837358\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/base\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"uprn\": \"100010837358\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-property-enrichment/core": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Property Enrichment"], "summary": "Property enrichment by UPRN", "description": "Return a UK property's attributes, council tax and EPC from its UPRN.\n\nEverything in `/pdi-property-enrichment/base`, plus the council tax band and\nannual charge, and the latest EPC rating and heating fuel.\n\n### Common use cases\n\n- **Energy and utilities** — identify mains gas and off-grid properties, and the\n  energy rating, before a quote.\n- **Household cost estimates** — combine the council tax charge with property size\n  and type.\n- **Record enrichment** — add property, council tax and energy data to records\n  already keyed by UPRN.\n\n### Works well with\n\n- **`/address/uprn-lookup-by-address`** — resolve an address to a UPRN first.\n- **`/pdi-property-enrichment/core-by-address`** — match an address and enrich it\n  in a single call.\n\n### Request\n\n| Parameter | Type   | Description | Example |\n|--|--|--|--|\n| uprn | string | Unique Property Reference Number, digits only | 100010837358 |\n\n### Response (`data`)\n\n| Field | Description |\n|--|--|\n| address | The property's address |\n| postcode | The property's postcode |\n| uprn | Unique Property Reference Number |\n| property_type | Type of property, for example `Flat`, `Terraced`, `Semi-Detached`, `Detached` or `House`. Null when not held |\n| bedrooms | Number of bedrooms. Null when not held |\n| total_floor_area | Floor area in square metres. Null when not held |\n| source | The dataset each of `property_type`, `bedrooms` and `total_floor_area` came from, for example `EPC`, `price_paid` (HM Land Registry) or `Portal` (property listings) |\n| council_tax | Council tax for the property — see below. Null when no council tax record is matched |\n| epc | The latest Energy Performance Certificate — see below. Null when no certificate is held |\n\n**`council_tax`**\n\n| Field | Description |\n|--|--|\n| band | Council tax band: A–H in England and Scotland, A–I in Wales |\n| authority | The billing authority |\n| amount | The annual charge for that band at that authority, in GBP. It is the band charge, not a property-specific bill. Null when not held |\n| year | The charging year `amount` applies to |\n\n**`epc`**\n\n| Field | Description |\n|--|--|\n| rating | Current energy rating, A–G |\n| heating_type | The main heating description on the certificate |\n| main_fuel | The main fuel as recorded on the certificate. Often null for Scottish properties |\n| mains_gas_flag | `Y` or `N` where the certificate records it; otherwise null. Not recorded on Scottish certificates |\n| fuel_category | The fuel, normalised: `MAINS_GAS`, `COMMUNITY_HEAT`, `OFF_GRID_ELECTRIC`, `OFF_GRID_OIL`, `OFF_GRID_LPG`, `OFF_GRID_SOLID_FUEL` or `OFF_GRID_UNSPECIFIED`. Null when it cannot be determined |\n| lodgement_date | The date the certificate was lodged |\n| linked_by | `UPRN` when the certificate is filed under the matched UPRN, or `ADDRESS` when that lookup was empty and the certificate address is the same property. An address link does not change the matched UPRN |\n\nUse `fuel_category` rather than `main_fuel` in your logic: the raw fuel text is\nworded differently between certificates and between nations.\n\nA UPRN with no record returns HTTP `200` with an empty `data` list and the\nmessage `No property found for this UPRN.`\n\n### Credits\n\nCharged when a property is returned. A UPRN with no record is not charged, and\nneither is a rejected request. When a property is returned, the\n`X-PDI-Credits-Deducted` response header states the charge.\n\n\n> **💷 Credit Cost**  \n> 3 credits per request", "operationId": "Enrich_a_property_by_UPRN__core__pdi_property_enrichment_core_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPropertyEnrichment"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG", "uprn": "100010837358", "property_type": "Terraced", "bedrooms": 2, "total_floor_area": 53, "source": {"property_type": "price_paid", "bedrooms": "Portal", "total_floor_area": "EPC"}, "council_tax": {"band": "A", "authority": "Blackpool", "amount": 1675.48, "year": "2026"}, "epc": {"rating": "C", "heating_type": "Boiler and radiators, mains gas", "main_fuel": "mains gas (not community)", "mains_gas_flag": "Y", "fuel_category": "MAINS_GAS", "lodgement_date": "2026-02-12", "linked_by": "UPRN"}}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"uprn\": \"100010837358\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"uprn\": \"100010837358\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"uprn\": \"100010837358\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-property-enrichment/core-by-address": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Property Enrichment"], "summary": "Property enrichment by address", "description": "Match a UK address and return the property, with council tax and EPC.\n\nMatches an address you already hold against PDI's property register. When a\nsingle property is identified, the same response carries its UPRN, attributes,\ncouncil tax and EPC — one call instead of a lookup followed by an enrichment.\n\n### Match outcomes\n\nBranch on `match_status`. Every outcome is returned with HTTP `200`, including\nno match.\n\n| match_status | Meaning | Property fields |\n|--|--|--|\n| `MATCHED` | One property identified | Populated |\n| `MULTIPLE_MATCHES` | Several properties qualify and none is an exact match. `matches` lists them | null |\n| `NO_MATCH` | No property could be verified. `reason_code` says why | null |\n\nTo resolve a `MULTIPLE_MATCHES` result, send the `address` and `postcode` of the\nchosen entry in `matches` as a new request.\n\n### Common use cases\n\n- **Quotes and onboarding** — turn an address a customer gives you into property\n  details at the point of capture.\n- **Energy and utilities** — identify mains gas and off-grid properties from an\n  address.\n- **Record enrichment** — enrich records that carry an address but no UPRN.\n\n### Works well with\n\n- **`/pdi-property-enrichment/address-selector`** — let a user pick their address\n  at a postcode, then send the selection here.\n- **`/address/uprn-lookup-by-address`** — the UPRN only, when you do not need\n  property data yet.\n- **`/pdi-property-enrichment/core`** — enrich by UPRN when you already hold one.\n\n### Request\n\n| Parameter | Type   | Description | Example |\n|--|--|--|--|\n| address   | string | The address as you hold it, as free text | 8 Wall Street, Blackpool |\n| postcode  | string | A full, valid UK postcode. Case and spacing are normalised | FY1 2EG |\n\nThe postcode is the search key: an address is only matched against properties at\nthe postcode supplied.\n\n### Response (`data`) — match fields\n\n| Field | Description |\n|--|--|\n| input_address | The address you sent |\n| postcode | The postcode you sent, normalised |\n| match_status | `MATCHED`, `MULTIPLE_MATCHES` or `NO_MATCH` |\n| multiple_matches | `true` when several properties qualified |\n| match_confidence | `HIGH`, `MEDIUM` or `LOW` when `MATCHED`; otherwise null |\n| score | 0–1, how closely the matched address corresponds to your input, when `MATCHED`; otherwise null |\n| uprn | Unique Property Reference Number, when `MATCHED`; otherwise null |\n| matched_address | The address of the identified property, when `MATCHED`; otherwise null |\n| address_source | `ADDRESS_MASTER` (PDI property register) or `EPC` (EPC register), when `MATCHED` or `MULTIPLE_MATCHES`; otherwise null |\n| reason_code | Why a single property was not identified — see below. Null when `MATCHED` |\n| matches | When `MULTIPLE_MATCHES`, the candidates, each with `address`, `postcode`, `score` and `address_source`. Candidates carry no UPRN or property data. Empty otherwise |\n\n### Response (`data`) — property fields\n\nPopulated when `match_status` is `MATCHED`; null otherwise.\n\n| Field | Description |\n|--|--|\n| address | The identified property's address |\n| property_type | Type of property, for example `Flat`, `Terraced`, `Semi-Detached`, `Detached` or `House`. Null when not held |\n| bedrooms | Number of bedrooms. Null when not held |\n| total_floor_area | Floor area in square metres. Null when not held |\n| source | The dataset each of `property_type`, `bedrooms` and `total_floor_area` came from, for example `EPC`, `price_paid` (HM Land Registry) or `Portal` (property listings) |\n| council_tax | Council tax for the property — see below. Null when no council tax record is matched |\n| epc | The latest Energy Performance Certificate — see below. Null when no certificate is held |\n\n**`council_tax`**\n\n| Field | Description |\n|--|--|\n| band | Council tax band: A–H in England and Scotland, A–I in Wales |\n| authority | The billing authority |\n| amount | The annual charge for that band at that authority, in GBP. It is the band charge, not a property-specific bill. Null when not held |\n| year | The charging year `amount` applies to |\n\n**`epc`**\n\n| Field | Description |\n|--|--|\n| rating | Current energy rating, A–G |\n| heating_type | The main heating description on the certificate |\n| main_fuel | The main fuel as recorded on the certificate. Often null for Scottish properties |\n| mains_gas_flag | `Y` or `N` where the certificate records it; otherwise null. Not recorded on Scottish certificates |\n| fuel_category | The fuel, normalised: `MAINS_GAS`, `COMMUNITY_HEAT`, `OFF_GRID_ELECTRIC`, `OFF_GRID_OIL`, `OFF_GRID_LPG`, `OFF_GRID_SOLID_FUEL` or `OFF_GRID_UNSPECIFIED`. Null when it cannot be determined |\n| lodgement_date | The date the certificate was lodged |\n| linked_by | `UPRN` when the certificate is filed under the matched UPRN, or `ADDRESS` when that lookup was empty and the certificate address is the same property. An address link does not change the matched UPRN |\n\nUse `fuel_category` rather than `main_fuel` in your logic: the raw fuel text is\nworded differently between certificates and between nations.\n\n### reason_code\n\n| Code | Meaning |\n|--|--|\n| `MULTIPLE_CANDIDATES` | Several properties qualified. Choose from `matches` |\n| `NO_CANDIDATE_PASSED_VERIFICATION` | Properties exist at the postcode, but none matched the address closely enough — often a missing or different flat or unit number |\n| `NO_CANDIDATE_RETRIEVED` | Nothing at the postcode resembled the address. Check the postcode is right |\n| `NO_RESOLVABLE_ADDRESS` | The address is a single name with no number, such as a town on its own |\n\n### Credits\n\nCharged only when a property is identified (`MATCHED`). `MULTIPLE_MATCHES`,\n`NO_MATCH` and rejected requests are not charged. The rate below applies to a\n`MATCHED` result, and the `X-PDI-Credits-Deducted` response header states what\neach accepted request cost.\n\n\n> **💷 Credit Cost**  \n> 4 credits per request", "operationId": "Enrich_a_property_by_address__core__pdi_property_enrichment_core_by_address_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPropertyEnrichmentByAddress"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "examples": {"matched": {"summary": "MATCHED — property identified and enriched", "value": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"input_address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG", "match_status": "MATCHED", "multiple_matches": false, "match_confidence": "HIGH", "score": 1, "uprn": "100010837358", "matched_address": "8 Wall Street, Blackpool", "address_source": "ADDRESS_MASTER", "matches": [], "address": "8 Wall Street, Blackpool", "property_type": "Terraced", "bedrooms": 2, "total_floor_area": 53, "source": {"property_type": "price_paid", "bedrooms": "Portal", "total_floor_area": "EPC"}, "council_tax": {"band": "A", "authority": "Blackpool", "amount": 1675.48, "year": "2026"}, "epc": {"rating": "C", "heating_type": "Boiler and radiators, mains gas", "main_fuel": "mains gas (not community)", "mains_gas_flag": "Y", "fuel_category": "MAINS_GAS", "lodgement_date": "2026-02-12", "linked_by": "UPRN"}}]}}, "multiple": {"summary": "MULTIPLE_MATCHES — candidates to choose from (2 of 25 shown)", "value": {"code": 200, "isSuccess": true, "message": "Multiple addresses matched. Choose one from matches and resubmit.", "size": 1, "totalElements": 1, "data": [{"input_address": "Screenworks 22 Highbury Grove", "postcode": "N5 2EF", "match_status": "MULTIPLE_MATCHES", "multiple_matches": true, "address_source": "ADDRESS_MASTER", "reason_code": "MULTIPLE_CANDIDATES", "matches": [{"address": "Unit G11, Screenworks, 22 Highbury Grove, London", "postcode": "N5 2EF", "score": 0.8785, "address_source": "ADDRESS_MASTER"}, {"address": "Unit G01, Screenworks, 22 Highbury Grove, London", "postcode": "N5 2EF", "score": 0.8785, "address_source": "ADDRESS_MASTER"}]}]}}, "no_match": {"summary": "NO_MATCH — no property verified", "value": {"code": 200, "isSuccess": true, "message": "", "size": 1, "totalElements": 1, "data": [{"input_address": "19 Oswald Street, Glasgow", "postcode": "G1 4PD", "match_status": "NO_MATCH", "multiple_matches": false, "reason_code": "NO_CANDIDATE_PASSED_VERIFICATION", "matches": []}]}}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core-by-address' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"address\": \"8 Wall Street, Blackpool\", \"postcode\": \"FY1 2EG\", \"include\": [\"example\"]}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core-by-address\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"address\": \"8 Wall Street, Blackpool\",\n      \"postcode\": \"FY1 2EG\",\n      \"include\": [\n        \"example\"\n      ]\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/core-by-address\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"address\": \"8 Wall Street, Blackpool\",\n    \"postcode\": \"FY1 2EG\",\n    \"include\": [\n      \"example\"\n    ]\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-property-enrichment/address-selector": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Property Enrichment"], "summary": "Addresses by postcode", "description": "Return the addresses held at a full UK postcode.\n\nAddresses are returned in house-number order, one entry per address.\n\n### Common use cases\n\n- **Address selection** — let a user pick their property from a list instead of\n  typing it, for sign-up, checkout and quote forms.\n- **Address validation** — confirm an address exists at the postcode a user\n  supplied before you store it.\n\n### Works well with\n\n- **`/v1/autocomplete/postcode/{postcode}`** — suggest full postcodes as a user\n  types, then call this endpoint with the one they choose.\n- **`/pdi-property-enrichment/core-by-address`** — pass a selected `address` and\n  `postcode` exactly as returned to get the UPRN, property attributes, council\n  tax and EPC for that property.\n- **`/address/uprn-lookup-by-address`** — pass a selected `address` and\n  `postcode` to get the UPRN only.\n\n> **Tip:** send the `address` and `postcode` values on unchanged. They are\n> returned in the form those endpoints expect.\n\n### Request\n\n| Parameter | Type   | Description               | Example |\n|-----------|--------|---------------------------|---------|\n| postcode  | string | A full, valid UK postcode | FY1 2EG |\n\n### Response (`data`)\n\n| Field    | Description |\n|----------|-------------|\n| address  | The address, without the postcode |\n| postcode | The postcode |\n\nA postcode with no addresses returns an empty `data` list.\n\n### Credits\n\nCharged per call when at least one address is returned. A call that returns no\naddresses is not charged, and neither is a rejected request. When addresses are\nreturned, the `X-PDI-Credits-Deducted` response header states the charge.\n\n\n> **💷 Credit Cost**  \n> 1 credit per request", "operationId": "Addresses_by_postcode_pdi_property_enrichment_address_selector_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAddressSelector"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "examples": {"addresses": {"summary": "Addresses at a postcode (3 of 41 shown)", "value": {"code": 200, "isSuccess": true, "message": "", "size": 41, "totalElements": 41, "data": [{"address": "1 Wall Street, Blackpool", "postcode": "FY1 2EG"}, {"address": "2 Wall Street, Blackpool", "postcode": "FY1 2EG"}, {"address": "3 Wall Street, Blackpool", "postcode": "FY1 2EG"}]}}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-property-enrichment/address-selector' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"postcode\": \"FY1 2EG\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/address-selector\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"postcode\": \"FY1 2EG\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-property-enrichment/address-selector\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"postcode\": \"FY1 2EG\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-market-intelligence/market-prospects": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Market Intelligence"], "summary": "Market Prospects", "description": "Unparalleled On/Off Market data - Use this API to get a list of properties that are/were on the market in a specific outcode. You can filter the listings by type (sale or rent) and include only those with a complete property address. The response includes a list of properties with details such as price, number of bedrooms, number of bathrooms, property type, listing status, and more. You can also view images, floorplans, and features of the property. The response includes a total count of properties and the total number of pages.\n\n### Request\n\n| Parameter | Type       | Description                                      | Examples                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| outcode   | string | A valid UK outcode                  | BA11, E16, W5 |\n| type    | string | Type of listing                  | SALE, RENT |\n| withFullAddressOnly    | boolean | Filter listings to include only those with a complete property address                  | true, false |\n\n\n### Response\n|Fields  | Description  | Examples\n|--|--|--|\n| identifier | Unique identifier for the property |PDI-RM01-159269036|\n| postcode | <div style=\"width: 400px;\">Postcode associated with the address</div> |BA11 6NX|\n| full_property_address | Property address |5, Hughes Court, High Street, Rode, Frome, Somerset BA11 6NX<br /><br />49b, Catherine Street, Frome, Somerset BA11 1DA|\n| address | Property address |High Street, Rode, Frome, Somerset<br /><br />Catherine Street, Frome, Somerset|\n| uprn | Unique Property Reference Number |250033921|\n| num_bedrooms | Number of bedrooms |3|\n| num_bathrooms | Number of bathrooms |1|\n| price | Listed price in GBP (sale price or rent per month) |£500,000<br />£1,950|\n| price_qualifier | Qualifier for the price |Guide Price|\n| price_frequency | Frequency of the price |not specified|\n| property_type| Type of property |Flat, Terraced, Detached etc|\n| first_published_date| Listed on date |2025-02-19 11:44:23.0|\n| listing_update_reason| When listing gets updated, you get status here (price reduced / increse etc) |price_reduced|\n| listing_type| Type of listing, can be sale or rent |sale|\n| status| Current status of listing. If its live, sold or expired |for_sale<br />to_rent<br />expired<br />archived<br />sold|\n| secondary_status| This is secondary status of listing, i.e. Just added, Sold STC, Let etc |Just added|\n| latitude| gps coordinates of the propery |51.285003|\n| longitude| gps coordinates of the propery |-2.28072|\n| listing_url| URL link to open portal listing |https://dataapi.propertydealsinsight.com/r/L01/d/properties/158438741|\n| images| A list of available listing images |https://dataapi.propertydealsinsight.com/r/L01/ixl/dir/10k/9102/158438741/9102_DDB250034_IMG_00_0000.jpeg|\n| features| A list of features of the property |Two double bedrooms<br />Ground floor<br />Private garden<br />Over 100 year lease<br />Period conversion<br />No onward chain|\n| floorplans| A list of floorplans of the property |https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg|\n| agent| Listed by agent name, address and phone number |Martin & Co Westbury<br />Connells - Gillingham|", "operationId": "Market_Prospects_pdi_market_intelligence_market_prospects_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/routers__PDIMarketIntelligence__market_prospects__PInfo"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"data": [{"identifier": "PDI-RM01-159269036", "postcode": "E16 4AH", "address": "Kildare Road, Canning Town", "full_property_address": "109, Kildare Road, London, Greater London E16 4AH", "num_bedrooms": 2, "num_bathrooms": 1, "price": 330000, "price_qualifier": "Guide Price", "price_frequency": "not specified", "property_type": "Flat", "first_published_date": "2025-03-11T13:52:05", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.518299, "longitude": 0.021415, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159269036", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_09_0000.jpeg"], "features": ["TWO DOUBLE BEDROOMS", "GROUND FLOOR", "PRIVATE GARDEN", "OVER 100 YEAR LEASE", "PERIOD CONVERSION", "NO ONWARD CHAIN", "EASY REACH OF CANNING TOWN AND WEST HAM TRAIN STATIONS", "PERFECT FIRST TIME BUY"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg"], "agent": {"name": "Hunters", "address": "Hunters, Plaistow", "phone": "020 3910 6037"}}, {"identifier": "PDI-ZL01-58812092", "postcode": "E16 2RR", "address": "Felixstowe Court, Royal Docks, London E16", "full_property_address": "41 Felixstowe Court, London, E16 2RR", "uprn": "46082136", "num_bedrooms": 2, "num_bathrooms": 1, "price": 1600, "price_qualifier": "", "price_frequency": "monthly", "property_type": "flat", "first_published_date": "2025-03-12T21:42:11", "listing_type": "rent", "status": "to_rent", "secondary_status": "Just added", "latitude": 51.501775, "longitude": 0.071374, "listing_url": "https://dataapi.propertydealsinsight.com/r/L02/d/to-rent/details/58812092/", "images": ["https://dataapi.propertydealsinsight.com/r/L02/ixl/657d5cf05f47cb0b3953c11915890b2a2acc0c74.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/a076e194d970f8a51af940b2fc2824b62d05b56e.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/9928fa929a575a02f082753b92e7d6285f081977.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/c952eb9f7c643451baf0f154a4cb9367f98b2bd3.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/edac788e909242677bb7b3d8f3a3c56e38f7b164.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/b2e31c8a22bb7279ebab62b1ac988a7fc4dce674.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/61d4e293b44be644588a72dc5bb766baa2c7ab11.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/862c5ffac16c693756ff0c2e6507c603eb9a2276.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/9d03151a3eccad1b3525f5a98025a96515dd98b9.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/4a6aaee743eaf8664afad5b81cbc9582ca6d0c6e.jpg"], "features": ["No deposit option available.", "Two bedroom apartment", "Popular development", "Off road parking", "Separate Kitchen", "24 hour Security Office"], "floorplans": "[]", "agent": {"name": "Portico - Royal Docks", "address": "12 Hartlepool Court, Fishguard Way, London", "phone": "020 8115 0789"}}, {"identifier": "PDI-RM01-159335543", "postcode": "E16 3RA", "address": "Hands Walk, London, E16", "full_property_address": "32, Hands Walk, London, Greater London E16 3RA", "num_bedrooms": 3, "num_bathrooms": 1, "price": 350000, "price_qualifier": "", "price_frequency": "not specified", "property_type": "Maisonette", "first_published_date": "2025-03-12T17:07:54", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.51345, "longitude": 0.0225, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159335543", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_09_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_10_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_11_0000.jpeg"], "features": [], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_FLP_00_0000.jpeg"], "agent": {"name": "Bairstow Eves", "address": "Bairstow Eves, Stratford", "phone": "020 3873 5835"}}, {"identifier": "PDI-RM01-159162623", "postcode": "E16 2FX", "address": "Parkside Court, 15 Booth Road, London, E16 2FX", "full_property_address": "Flat 39, Parkside Court, 15 Booth Road, London, E16 2FX", "uprn": "10090327076", "num_bedrooms": 1, "num_bathrooms": 1, "price": 1800, "price_qualifier": "", "price_frequency": "monthly", "property_type": "Flat", "first_published_date": "2025-03-07T21:59:58", "listing_update_reason": "new", "listing_type": "rent", "status": "to_rent", "secondary_status": "", "latitude": 51.501024, "longitude": 0.036801, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159162623", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_12_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_13_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_09_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_10_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_11_0000.jpeg"], "features": ["Central heating", "Double glazed", "Washing machine", "White goods"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_FLP_00_0000.jpeg"], "agent": {"name": "Visum", "address": "Visum, Nationwide", "phone": "03300 101115"}}, {"identifier": "PDI-RM01-159269036", "postcode": "E16 4AH", "address": "Kildare Road, Canning Town", "full_property_address": "109, Kildare Road, London, Greater London E16 4AH", "num_bedrooms": 2, "num_bathrooms": 1, "price": 330000, "price_qualifier": "Guide Price", "price_frequency": "not specified", "property_type": "Flat", "first_published_date": "2025-03-11T13:52:05", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.518299, "longitude": 0.021415, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159269036", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_09_0000.jpeg"], "features": ["TWO DOUBLE BEDROOMS", "GROUND FLOOR", "PRIVATE GARDEN", "OVER 100 YEAR LEASE", "PERIOD CONVERSION", "NO ONWARD CHAIN", "EASY REACH OF CANNING TOWN AND WEST HAM TRAIN STATIONS", "PERFECT FIRST TIME BUY"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg"], "agent": {"name": "Hunters", "address": "Hunters, Plaistow", "phone": "020 3910 6037"}}], "code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "size": 1, "totalElements": 5, "totalPages": 1}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"E16\", \"type\": \"SALE\", \"withFullAddressOnly\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"E16\",\n      \"type\": \"SALE\",\n      \"withFullAddressOnly\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"E16\",\n    \"type\": \"SALE\",\n    \"withFullAddressOnly\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-market-intelligence/market-prospects-status": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Market Intelligence"], "summary": "Market Prospects Status", "description": "Unparalleled On/Off Market data - Use this API to get a list of properties in a specific outcode based on predefined sourcing lists such as newly listed, under offer, price reduced, withdrawn or suspected sold in a specific outcode. You can also filter listings to include only those with a complete property address.\n\n### Request\n\n| Parameter | Type       | Description                                      | Examples                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| outcode   | string | A valid UK outcode                  | BA11, E16, W5 |\n| type    | string | Type of listing                  | SALE, RENT |\n| withFullAddressOnly    | boolean | Filter listings to include only those with a complete property address                  | true, false |\n| status    | string | Status of the listing                  | NEW_INSTRUCTIONS, UNDER_OFFER, WITHDRAWALS |\n\nMeaning of status:\n- NEW_INSTRUCTIONS: When a property is newly listed\n- UNDER_OFFER: When a property goes from on market to under offer/sold STC\n- WITHDRAWALS: When an on-market property is withdrawn from the website - Presenting a great opportunity to win the instruction\n- SUSPECTED_SOLD: When a property that is under offer/sold STC is withdrawn from the website\n- FALL_THROUGHS: When a property sale falls through - Presenting an opportunity to win the instruction\n- PRICE_REDUCTIONS: When a property price is reduced - this can indicate the vendor is motivated to sell/let and is likely to be open to offers or changing agents\n\n### Response\n|Fields  | Description  | Examples\n|--|--|--|\n| identifier | Unique identifier for the property |PDI-RM01-159269036|\n| postcode | <div style=\"width: 400px;\">Postcode associated with the address</div> |BA11 6NX|\n| full_property_address | Property address |5, Hughes Court, High Street, Rode, Frome, Somerset BA11 6NX<br /><br />49b, Catherine Street, Frome, Somerset BA11 1DA|\n| address | Property address |High Street, Rode, Frome, Somerset<br /><br />Catherine Street, Frome, Somerset|\n| uprn | Unique Property Reference Number |250033921|\n| num_bedrooms | Number of bedrooms |3|\n| num_bathrooms | Number of bathrooms |1|\n| price | Listed price in GBP (sale price or rent per month) |£500,000<br />£1,950|\n| price_qualifier | Qualifier for the price |Guide Price|\n| price_frequency | Frequency of the price |not specified|\n| property_type| Type of property |Flat, Terraced, Detached etc|\n| first_published_date| Listed on date |2025-02-19 11:44:23.0|\n| listing_update_reason| When listing gets updated, you get status here (price reduced / increse etc) |price_reduced|\n| listing_type| Type of listing, can be sale or rent |sale|\n| status| Current status of listing. If its live, sold or expired |for_sale<br />to_rent<br />expired<br />archived<br />sold|\n| secondary_status| This is secondary status of listing, i.e. Just added, Sold STC, Let etc |Just added|\n| latitude| gps coordinates of the propery |51.285003|\n| longitude| gps coordinates of the propery |-2.28072|\n| listing_url| URL link to open portal listing |https://dataapi.propertydealsinsight.com/r/L01/d/properties/158438741|\n| images| A list of available listing images |https://dataapi.propertydealsinsight.com/r/L01/ixl/dir/10k/9102/158438741/9102_DDB250034_IMG_00_0000.jpeg|\n| features| A list of features of the property |Two double bedrooms<br />Ground floor<br />Private garden<br />Over 100 year lease<br />Period conversion<br />No onward chain|\n| floorplans| A list of floorplans of the property |https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg|\n| agent| Listed by agent name, address and phone number |Martin & Co Westbury<br />Connells - Gillingham|", "operationId": "Market_Prospects_Status_pdi_market_intelligence_market_prospects_status_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/routers__PDIMarketIntelligence__market_prospects_status__PInfo"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"data": [{"identifier": "PDI-RM01-159269036", "postcode": "E16 4AH", "address": "Kildare Road, Canning Town", "full_property_address": "109, Kildare Road, London, Greater London E16 4AH", "num_bedrooms": 2, "num_bathrooms": 1, "price": 330000, "price_qualifier": "Guide Price", "price_frequency": "not specified", "property_type": "Flat", "first_published_date": "2025-03-11T13:52:05", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.518299, "longitude": 0.021415, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159269036", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_09_0000.jpeg"], "features": ["TWO DOUBLE BEDROOMS", "GROUND FLOOR", "PRIVATE GARDEN", "OVER 100 YEAR LEASE", "PERIOD CONVERSION", "NO ONWARD CHAIN", "EASY REACH OF CANNING TOWN AND WEST HAM TRAIN STATIONS", "PERFECT FIRST TIME BUY"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg"], "agent": {"name": "Hunters", "address": "Hunters, Plaistow", "phone": "020 3910 6037"}}, {"identifier": "PDI-ZL01-58812092", "postcode": "E16 2RR", "address": "Felixstowe Court, Royal Docks, London E16", "full_property_address": "41 Felixstowe Court, London, E16 2RR", "uprn": "46082136", "num_bedrooms": 2, "num_bathrooms": 1, "price": 1600, "price_qualifier": "", "price_frequency": "monthly", "property_type": "flat", "first_published_date": "2025-03-12T21:42:11", "listing_type": "rent", "status": "to_rent", "secondary_status": "Just added", "latitude": 51.501775, "longitude": 0.071374, "listing_url": "https://dataapi.propertydealsinsight.com/r/L02/d/to-rent/details/58812092/", "images": ["https://dataapi.propertydealsinsight.com/r/L02/ixl/657d5cf05f47cb0b3953c11915890b2a2acc0c74.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/a076e194d970f8a51af940b2fc2824b62d05b56e.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/9928fa929a575a02f082753b92e7d6285f081977.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/c952eb9f7c643451baf0f154a4cb9367f98b2bd3.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/edac788e909242677bb7b3d8f3a3c56e38f7b164.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/b2e31c8a22bb7279ebab62b1ac988a7fc4dce674.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/61d4e293b44be644588a72dc5bb766baa2c7ab11.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/862c5ffac16c693756ff0c2e6507c603eb9a2276.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/9d03151a3eccad1b3525f5a98025a96515dd98b9.jpg", "https://dataapi.propertydealsinsight.com/r/L02/ixl/4a6aaee743eaf8664afad5b81cbc9582ca6d0c6e.jpg"], "features": ["No deposit option available.", "Two bedroom apartment", "Popular development", "Off road parking", "Separate Kitchen", "24 hour Security Office"], "floorplans": "[]", "agent": {"name": "Portico - Royal Docks", "address": "12 Hartlepool Court, Fishguard Way, London", "phone": "020 8115 0789"}}, {"identifier": "PDI-RM01-159335543", "postcode": "E16 3RA", "address": "Hands Walk, London, E16", "full_property_address": "32, Hands Walk, London, Greater London E16 3RA", "num_bedrooms": 3, "num_bathrooms": 1, "price": 350000, "price_qualifier": "", "price_frequency": "not specified", "property_type": "Maisonette", "first_published_date": "2025-03-12T17:07:54", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.51345, "longitude": 0.0225, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159335543", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_09_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_10_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_IMG_11_0000.jpeg"], "features": [], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/1k/815/159335543/815_STR250136_FLP_00_0000.jpeg"], "agent": {"name": "Bairstow Eves", "address": "Bairstow Eves, Stratford", "phone": "020 3873 5835"}}, {"identifier": "PDI-RM01-159162623", "postcode": "E16 2FX", "address": "Parkside Court, 15 Booth Road, London, E16 2FX", "full_property_address": "Flat 39, Parkside Court, 15 Booth Road, London, E16 2FX", "uprn": "10090327076", "num_bedrooms": 1, "num_bathrooms": 1, "price": 1800, "price_qualifier": "", "price_frequency": "monthly", "property_type": "Flat", "first_published_date": "2025-03-07T21:59:58", "listing_update_reason": "new", "listing_type": "rent", "status": "to_rent", "secondary_status": "", "latitude": 51.501024, "longitude": 0.036801, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159162623", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_12_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_13_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_09_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_10_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_IMG_11_0000.jpeg"], "features": ["Central heating", "Double glazed", "Washing machine", "White goods"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/36k/35298/159162623/35298_51528_FLP_00_0000.jpeg"], "agent": {"name": "Visum", "address": "Visum, Nationwide", "phone": "03300 101115"}}, {"identifier": "PDI-RM01-159269036", "postcode": "E16 4AH", "address": "Kildare Road, Canning Town", "full_property_address": "109, Kildare Road, London, Greater London E16 4AH", "num_bedrooms": 2, "num_bathrooms": 1, "price": 330000, "price_qualifier": "Guide Price", "price_frequency": "not specified", "property_type": "Flat", "first_published_date": "2025-03-11T13:52:05", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.518299, "longitude": 0.021415, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159269036", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_09_0000.jpeg"], "features": ["TWO DOUBLE BEDROOMS", "GROUND FLOOR", "PRIVATE GARDEN", "OVER 100 YEAR LEASE", "PERIOD CONVERSION", "NO ONWARD CHAIN", "EASY REACH OF CANNING TOWN AND WEST HAM TRAIN STATIONS", "PERFECT FIRST TIME BUY"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg"], "agent": {"name": "Hunters", "address": "Hunters, Plaistow", "phone": "020 3910 6037"}}], "code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "size": 1, "totalElements": 5, "totalPages": 1}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects-status' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"outcode\": \"E16\", \"type\": \"SALE\", \"withFullAddressOnly\": false, \"status\": \"NEW_INSTRUCTIONS\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects-status\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"outcode\": \"E16\",\n      \"type\": \"SALE\",\n      \"withFullAddressOnly\": false,\n      \"status\": \"NEW_INSTRUCTIONS\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/market-prospects-status\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"outcode\": \"E16\",\n    \"type\": \"SALE\",\n    \"withFullAddressOnly\": false,\n    \"status\": \"NEW_INSTRUCTIONS\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-market-intelligence/get-listing": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Market Intelligence"], "summary": "Get Single Listing", "description": "Get a single listing by passing an identifier which could be PDI identifier(recommended) or property UPRN for the listing.\n\n### Request\n| Parameter | Type       | Description                                      | Examples                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| identifier    | string| A valid listing identifier or UPRN             | PDI-RM01-159269036 or 250033921 |\n\n### Response\n|Fields  | Description  | Examples\n|--|--|--|\n| identifier | Unique identifier for the property |PDI-RM01-159269036|\n| postcode | <div style=\"width: 400px;\">Postcode associated with the address</div> |BA11 6NX|\n| full_property_address | Property address |5, Hughes Court, High Street, Rode, Frome, Somerset BA11 6NX<br /><br />49b, Catherine Street, Frome, Somerset BA11 1DA|\n| address | Property address |High Street, Rode, Frome, Somerset<br /><br />Catherine Street, Frome, Somerset|\n| uprn | Unique Property Reference Number |250033921|\n| num_bedrooms | Number of bedrooms |3|\n| num_bathrooms | Number of bathrooms |1|\n| price | Listed price in GBP (sale price or rent per month) |£500,000<br />£1,950|\n| price_qualifier | Qualifier for the price |Guide Price|\n| price_frequency | Frequency of the price |not specified|\n| property_type| Type of property |Flat, Terraced, Detached etc|\n| first_published_date| Listed on date |2025-02-19 11:44:23.0|\n| listing_update_reason| When listing gets updated, you get status here (price reduced / increse etc) |price_reduced|\n| listing_type| Type of listing, can be sale or rent |sale|\n| status| Current status of listing. If its live, sold or expired |for_sale<br />to_rent<br />expired<br />archived<br />sold|\n| secondary_status| This is secondary status of listing, i.e. Just added, Sold STC, Let etc |Just added|\n| latitude| gps coordinates of the propery |51.285003|\n| longitude| gps coordinates of the propery |-2.28072|\n| listing_url| URL link to open portal listing |https://dataapi.propertydealsinsight.com/r/L01/d/properties/158438741|\n| images| A list of available listing images |https://dataapi.propertydealsinsight.com/r/L01/ixl/dir/10k/9102/158438741/9102_DDB250034_IMG_00_0000.jpeg|\n| features| A list of features of the property |Two double bedrooms<br />Ground floor<br />Private garden<br />Over 100 year lease<br />Period conversion<br />No onward chain|\n| floorplans| A list of floorplans of the property |https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg|\n| agent| Listed by agent name, address and phone number |Martin & Co Westbury<br />Connells - Gillingham|", "operationId": "Get_Single_Listing_pdi_market_intelligence_get_listing_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/routers__PDIMarketIntelligence__get_single_listing__PInfo"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}, "example": {"data": [{"identifier": "PDI-RM01-159269036", "postcode": "E16 4AH", "address": "Kildare Road, Canning Town", "full_property_address": "109, Kildare Road, London, Greater London E16 4AH", "num_bedrooms": 2, "num_bathrooms": 1, "price": 330000, "price_qualifier": "Guide Price", "price_frequency": "not specified", "property_type": "Flat", "first_published_date": "2025-03-11T13:52:05", "listing_update_reason": "new", "listing_type": "sale", "status": "for_sale", "secondary_status": "", "latitude": 51.518299, "longitude": 0.021415, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/159269036", "images": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_00_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_01_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_02_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_03_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_04_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_05_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_06_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_07_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_08_0000.jpeg", "https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_IMG_09_0000.jpeg"], "features": ["TWO DOUBLE BEDROOMS", "GROUND FLOOR", "PRIVATE GARDEN", "OVER 100 YEAR LEASE", "PERIOD CONVERSION", "NO ONWARD CHAIN", "EASY REACH OF CANNING TOWN AND WEST HAM TRAIN STATIONS", "PERFECT FIRST TIME BUY"], "floorplans": ["https://dataapi.propertydealsinsight.com/r/L01/ixl/108k/107680/159269036/107680_33731497_FLP_00_0000.jpeg"], "agent": {"name": "Hunters", "address": "Hunters, Plaistow", "phone": "020 3910 6037"}}], "code": 200, "isSuccess": true, "message": "", "limit": 50, "pageNumber": 1, "size": 1, "totalElements": 1, "totalPages": 1}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-market-intelligence/get-listing' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"identifier\": \"PDI-RM01-159269036\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/get-listing\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"identifier\": \"PDI-RM01-159269036\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-market-intelligence/get-listing\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"identifier\": \"PDI-RM01-159269036\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/pdi-sourcing-lists/auction-deals": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDI Sourcing Lists"], "summary": "Auction Deals", "description": "This endpoint allows you to search for auction property deals in the UK market.\nYou can search by either providing a valid UK postcode or a location name.\n\n### Request Body\n\n| Parameter | Type | Description | Example | Required |\n|-----------|------|-------------|---------|----------|\n| postcode | string | A valid UK postcode | E16 2QU | Either postcode or location |\n| location | string | A valid UK location name | London | Either postcode or location |\n| radius | float | Search radius in miles (0.25-10) | 5 | No (default: 3) |\n| property_type | string | Type of property | FLATS | No (default: ALL) |\n| min_price | integer | Minimum property price in GBP | 100000 | No |\n| max_price | integer | Maximum property price in GBP | 1000000 | No |\n| limit | integer | Maximum number of results (1-100) | 20 | No (default: 20) |\n| pageNumber | integer | Page number for pagination | 1 | No (default: 1) |\n\n### Response\n\n| Field | Description | Example |\n|-------|-------------|---------|\n| property_identifier | Unique property identifier | PDI-ZL01-65693544 |\n| first_published_date | Date when property was first listed | 2023-09-26T16:36:06 |\n| image | Property images object | {\"thumbnail\": \"...\", \"image\": \"...\"} |\n| address | Property address | London W1F |\n| postcode | Full UK postcode | W1F 0UH |\n| property_type | Type of property | flat |\n| num_bedrooms | Number of bedrooms | 2 |\n| num_bathrooms | Number of bathrooms | 0 |\n| price | Property price in GBP | 1650000 |\n| reduced_increased_by | Price change percentage | 0.00 |\n| agent | Agent information object | {\"name\": \"...\", \"address\": \"...\", \"phone\": \"...\"} |\n| distance | Distance from search location in miles | 0.6 |\n| listing_url | URL to property details | https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/65693544/ |\n\n**Note:** At least one of `postcode` or `location` must be provided. Both fields cannot be empty.\n\n**Price Filtering:** Use `min_price` and `max_price` to filter results by property price. If `max_price` is provided, it must be greater than or equal to `min_price`.\n\n**Search Radius:** The `radius` parameter controls the search area around the specified postcode or location. Default is 3 miles with a range of 0.25 to 10 miles.\n\n> **💷 Credit Cost**  \n> 1 credit per 20 results (minimum 1 credit will be deducted for each request)", "operationId": "Auction_Deals_pdi_sourcing_lists_auction_deals_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PAuctionDeals"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 3, "pageNumber": 1, "size": 3, "totalElements": 138, "totalPages": 46, "data": [{"property_identifier": "PDI-ZL01-65693544", "first_published_date": "2023-09-26T16:36:06", "image": {"thumbnail": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/dc10929adafadd345256171ef889e66555d92976.jpg", "image": "https://dataapi.propertydealsinsight.com/r/L02/ixl/dc10929adafadd345256171ef889e66555d92976.jpg"}, "address": "London W1F", "postcode": "W1F 0UH", "property_type": "flat", "num_bedrooms": 2, "num_bathrooms": 0, "price": 1650000, "reduced_increased_by": "0.00", "agent": {"name": "Savills - National Auctions", "address": "33 Margaret Street, London", "phone": "020 8022 4160"}, "distance": 0.6, "listing_url": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/65693544/"}, {"property_identifier": "PDI-ZL01-64744030", "first_published_date": "2023-05-30T18:13:50", "image": {"thumbnail": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/26b7b150cc3bcbb8a7cd19bc54d60b34100eb733.jpg", "image": "https://dataapi.propertydealsinsight.com/r/L02/ixl/26b7b150cc3bcbb8a7cd19bc54d60b34100eb733.jpg"}, "address": "Rochester Row, Westminster, London SW1P", "postcode": "SW1P 1JU", "property_type": "flat", "num_bedrooms": 3, "num_bathrooms": 2, "price": 1000000, "reduced_increased_by": "-20.00", "agent": {"name": "Foxtons - Pimlico & Westminster", "address": "166 Vauxhall Bridge Road, London", "phone": "020 3544 3891"}, "distance": 1.12, "listing_url": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/64744030/"}, {"property_identifier": "PDI-RM01-143308583", "first_published_date": "2024-01-02T18:01:59", "image": {"thumbnail": "https://dataapi.propertydealsinsight.com/r/L01/i/dir/crop/10:9-16:9/73k/72774/143308583/72774_94503_IMG_00_0000_max_476x317.jpeg", "image": "https://dataapi.propertydealsinsight.com/r/L01/ixl/dir/73k/72774/143308583/72774_94503_IMG_00_0000.jpeg"}, "address": "Flat 4, 7-11 Longmoore Street, London, SW1V 1JH", "postcode": "SW1V 1JH", "property_type": "Flat", "num_bedrooms": 3, "num_bathrooms": 3, "price": 1600000, "reduced_increased_by": "0.00", "agent": {"name": "BidX1", "address": "BidX1, London", "phone": "020 3910 6202"}, "distance": 1.31, "listing_url": "https://dataapi.propertydealsinsight.com/r/L01/d/properties/143308583"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/pdi-sourcing-lists/auction-deals' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"postcode\": \"E16 2QU\", \"location\": \"London\", \"radius\": 3, \"property_type\": \"HOUSES\", \"min_price\": 100000, \"max_price\": 1000000}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/pdi-sourcing-lists/auction-deals\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"postcode\": \"E16 2QU\",\n      \"location\": \"London\",\n      \"radius\": 3,\n      \"property_type\": \"HOUSES\",\n      \"min_price\": 100000,\n      \"max_price\": 1000000\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/pdi-sourcing-lists/auction-deals\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"postcode\": \"E16 2QU\",\n    \"location\": \"London\",\n    \"radius\": 3,\n    \"property_type\": \"HOUSES\",\n    \"min_price\": 100000,\n    \"max_price\": 1000000\n  }),\n});\nconsole.log(await r.json());"}]}}, "/direct-mail/submitcampaign": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Direct Mail"], "summary": "Submit a direct mail campaign", "description": "Accepts a direct mail campaign submission, transforms and sends to external API, returns campaignId and paymentLink.", "operationId": "submit_campaign_direct_mail_submitcampaign_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CampaignSubmissionModel"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Submit Campaign Direct Mail Submitcampaign Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/direct-mail/submitcampaign' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"campaignName\": \"...\", \"preferences\": {\"sender\": {\"name\": \"example\", \"companyName\": \"example\", \"companyAddress\": \"example\", \"email\": \"youremail@yourdomain.com\", \"phone\": \"example\"}, \"letter\": {\"letterType\": \"A4\", \"primaryColour\": \"example\", \"secondaryColour\": \"example\"}}, \"recipients\": [{\"name\": \"example\", \"address\": \"example\", \"town\": \"example\", \"postcode\": \"example\", \"country\": \"example\"}]}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/direct-mail/submitcampaign\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"campaignName\": \"...\",\n      \"preferences\": {\n        \"sender\": {\n          \"name\": \"example\",\n          \"companyName\": \"example\",\n          \"companyAddress\": \"example\",\n          \"email\": \"youremail@yourdomain.com\",\n          \"phone\": \"example\"\n        },\n        \"letter\": {\n          \"letterType\": \"A4\",\n          \"primaryColour\": \"example\",\n          \"secondaryColour\": \"example\"\n        }\n      },\n      \"recipients\": [\n        {\n          \"name\": \"example\",\n          \"address\": \"example\",\n          \"town\": \"example\",\n          \"postcode\": \"example\",\n          \"country\": \"example\"\n        }\n      ]\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/direct-mail/submitcampaign\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"campaignName\": \"...\",\n    \"preferences\": {\n      \"sender\": {\n        \"name\": \"example\",\n        \"companyName\": \"example\",\n        \"companyAddress\": \"example\",\n        \"email\": \"youremail@yourdomain.com\",\n        \"phone\": \"example\"\n      },\n      \"letter\": {\n        \"letterType\": \"A4\",\n        \"primaryColour\": \"example\",\n        \"secondaryColour\": \"example\"\n      }\n    },\n    \"recipients\": [\n      {\n        \"name\": \"example\",\n        \"address\": \"example\",\n        \"town\": \"example\",\n        \"postcode\": \"example\",\n        \"country\": \"example\"\n      }\n    ]\n  }),\n});\nconsole.log(await r.json());"}]}}, "/planning-application": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Planning Application"], "summary": "Get Planning Applications", "description": "Get planning applications for a given postcode or latitude and longitude with radius\n\nRequest Body\n| Parameter | Type       | Description                                      | Example                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| postcode    | string| A valid UK postcode (optional if lat/lon or location provided)             | \"E16 2QU\" |\n| latitude    | float| Latitude coordinate (optional if postcode or location provided)             | 51.5074 |\n| longitude    | float| Longitude coordinate (optional if postcode or location provided)             | -0.0796 |\n| location    | string| Location name (optional if postcode or lat/lon provided)             | \"London\" |\n| radius    | float| Search radius in meters (default: 1000, max: 5000)             | 500 |\n| limit    | int| Limit the number of results per page (default: 100, max: 10000)             | 20 |\n| pageNumber    | int| Page number (default: 1)             | 1 |\n\n\n### Response Body\n\n| Parameter | Type | Description | Example |\n|-----------|------|-------------|---------|\n| local_authority | string | Local authority handling the application | Birmingham |\n| application_reference | string | Unique reference number | 2025/04888/PA |\n| application_link | string | URL to view full application details | https://application.birmingham.gov.uk?ref=2025/04888/PA |\n| application_type | string | Type of application | Outline, Full, Conditions |\n| application_size_category | string | Categorizes planning applications by development scale and potential impact, derived from statutory processing requirements, development complexity, and dwelling count. This categorization helps supporting Material Information and impact-based proximity filtering. | Small, Medium, Large |\n| application_description | string | Description of proposed work | Application to determine if prior approval is required for a proposed change of use from Commercial, Business & Service (Use Class E) to 13 no. 1 bed residential dwellings (Use Class C3) |\n| address_location | string | Property address | 79 - 81 Chester Street Birmingham B6 4AE |\n| postcode | string | Postcode | B6 4AE |\n| date_received | string | Date application was submitted | 2025-08-29 |\n| date_validated | string | Date application was validated | 2025-09-01 |\n| decided_date | string | Date application was decided | 2025-09-15 |\n| target_decision_date | string | Target decision date | 2025-09-15 |\n| status | string | Current status | Awaiting decision, Registered |\n| latitude | float | Latitude of the application | 51.541340000000000 |\n| longitude | float | Longitude of the application | -0.303650000000000 |\n| distance | float | Distance from search point in km | 1.05 |\n\n> **💷 Credit Cost**  \n> 1 credit per result (minimum 1 credit will be deducted for each request)", "operationId": "Get_Planning_Applications_planning_application_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPlanningApplication"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 200, "pageNumber": 1, "size": 200, "totalElements": 833, "totalPages": 5, "data": [{"local_authority": "Brent", "application_identifier": "Brent/24/3694", "application_reference": "24/3694", "application_link": "https://pa.brent.gov.uk/online-applications/applicationDetails.do?keyVal=DCAPR_171497&activeTab=summary", "application_type": "Full", "application_size_category": "Small", "application_description": "Proposed dropped kerb and vehicular cross over, 1x car parking space, alteration to front boundary wall, alteration to hard and soft landscaping including new retaining wall in front garden and cycle and refuse storage to front garden of dwellinghouse", "address_location": "61 Bridgewater Road, Wembley, HA0 1AQ", "postcode": "HA0 1AQ", "date_received": "2024-12-27", "date_validated": "2025-01-09", "decided_date": "2025-03-05T00:00:00", "status": "Decided", "latitude": "51.541340000000000", "longitude": "-0.303650000000000", "distance": 0.05}, {"local_authority": "Old Oak Park Royal", "application_identifier": "OldOakParkRoyal/22/0112/TEST666", "application_reference": "22/0112/TEST666", "application_link": "https://planning.agileapplications.co.uk/opdc/application-details/9894", "application_type": "Conditions", "application_size_category": "Medium", "application_description": "Proposal. Search Applications. Typed something out wrong on purpose.", "address_location": "33, Jewson Ltd, Manor Farm Road, WEMBLEY, HA0 1AB", "postcode": "HA0 1AB", "date_received": "2024-10-20", "date_validated": "2024-10-22", "target_decision_date": "2025-06-04", "status": "Application Received", "latitude": "51.539777000000000", "longitude": "-0.303116000000000", "distance": 0.21}, {"local_authority": "Brent", "application_identifier": "Brent/24/3647", "application_reference": "24/3647", "application_link": "https://pa.brent.gov.uk/online-applications/applicationDetails.do?activeTab=summary&keyVal=DCAPR_171448", "application_type": "Amendment", "application_size_category": "Large", "application_description": "Non material amendment (Amendments to Condition 2 (approved drawing(s) and/or document(s)) and Condition 5 (Requirement of 684 residential units)) to allow: A second staircases in the larger blocks within the development Elevational Changes Change to unit numbers Change to private unit mix Change to Commercial/Affordable workspace Change to Amenity Space of Full Planning Permission application reference 20/3156 dated 21/01/2022 for Demolition of the existing buildings and the erection of a mixed use development of buildings ranging between 3 and 16 storeys in height, comprising residential units, flexible commercial floorspace, affordable workspaces and community use floorspace, associated car parking, landscaping and ancillary facilities (phased development), subject to a Deed of Agreement dated 11 January 2022 under Section 106 of the Town and Country Planning Act 1990.", "address_location": "1-26A, coachworks & storage areas, Abbey Manufacturing Estate, all units Edwards Yard, Mount Pleasant, Wembley, HA0 1UE", "postcode": "HA0 1UE", "date_received": "2024-12-20", "date_validated": "2025-01-13", "status": "Registered", "latitude": "51.541054000000000", "longitude": "-0.291668000000000", "distance": 0.81}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/planning-application' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"postcode\": \"E16 2QU\", \"latitude\": 52.4862, \"longitude\": -1.8904, \"location\": \"London\", \"radius\": 50}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/planning-application\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"postcode\": \"E16 2QU\",\n      \"latitude\": 52.4862,\n      \"longitude\": -1.8904,\n      \"location\": \"London\",\n      \"radius\": 50\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/planning-application\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"postcode\": \"E16 2QU\",\n    \"latitude\": 52.4862,\n    \"longitude\": -1.8904,\n    \"location\": \"London\",\n    \"radius\": 50\n  }),\n});\nconsole.log(await r.json());"}]}}, "/planning-application/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Planning Application"], "summary": "Get Planning Applications By Uprn", "description": "Get planning applications for a given UPRN and nearby applications.\n\nRequest Body\n| Parameter | Type       | Description                                      | Example                         |\n|-----------|------|------------------|-----------------------------------------------------------------|\n| uprn    | string| A valid UK UPRN             | \"10000000269\" |\n\n\n### Response Body\n\n| Parameter | Type | Description | Example |\n|-----------|------|-------------|---------|\n| local_authority | string | Local authority handling the application | Birmingham |\n| application_reference | string | Unique reference number | 2025/04888/PA |\n| application_link | string | URL to view full application details | https://application.birmingham.gov.uk?ref=2025/04888/PA |\n| application_type | string | Type of application | Outline, Full, Conditions |\n| application_size_category | string | Categorizes planning applications by development scale and potential impact, derived from statutory processing requirements, development complexity, and dwelling count. This categorization helps supporting Material Information and impact-based proximity filtering. | Small, Medium, Large |\n| application_description | string | Description of proposed work | Application to determine if prior approval is required for a proposed change of use from Commercial, Business & Service (Use Class E) to 13 no. 1 bed residential dwellings (Use Class C3) |\n| address_location | string | Property address | 79 - 81 Chester Street Birmingham B6 4AE |\n| postcode | string | Postcode | B6 4AE |\n| date_received | string | Date application was submitted | 2025-08-29 |\n| date_validated | string | Date application was validated | 2025-09-01 |\n| decided_date | string | Date application was decided | 2025-09-15 |\n| target_decision_date | string | Target decision date | 2025-09-15 |\n| status | string | Current status | Awaiting decision, Registered |\n| category | string | Category of application. If it is matching with the UPRN, then it will be 'source' otherwise it will be 'nearby' | source, nearby |\n| latitude | float | Latitude of the application | 51.138136000000000 |\n| longitude | float | Longitude of the application | -0.400334000000000 |\n| distance | float | Distance from search point in km | 1.05 |\n\n> **💷 Credit Cost**  \n> 1 credit per result (minimum 1 credit will be deducted for each request)", "operationId": "Get_Planning_Applications_By_UPRN_planning_application_uprn_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PPlanningApplicationUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 200, "pageNumber": 1, "size": 200, "totalElements": 833, "totalPages": 5, "data": [{"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2022/1401", "application_reference": "MO/2022/1401", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/121834", "application_type": "Full", "application_size_category": "Small", "application_description": "Erection of replacement dwelling following demolition of existing dwelling.", "address_location": "Stonehouse Wood, Walliswood Green Road, Wallis Wood, Dorking, Surrey, RH5 5PL", "postcode": "RH5 5PL", "date_received": "2022-08-09", "date_validated": "2022-08-09", "decided_date": "2022-10-04T00:00:00", "target_decision_date": "2022-10-04", "status": "Decision made", "latitude": "51.138136000000000", "longitude": "-0.400334000000000", "distance": 0, "category": "source"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2022/2038", "application_reference": "MO/2022/2038", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/122464", "application_type": "Full", "application_size_category": "Small", "application_description": "Demolition of agricultural building (A3) and erection of 1 No. dwelling.", "address_location": "Stonehouse Wood, Walliswood Green Road, Wallis Wood, Dorking, Surrey, RH5 5PL", "postcode": "RH5 5PL", "date_received": "2022-12-05", "date_validated": "2023-01-04", "decided_date": "2023-03-01T00:00:00", "target_decision_date": "2023-03-01", "status": "Appeal decided", "latitude": "51.138136000000000", "longitude": "-0.400334000000000", "distance": 0, "category": "source"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2023/1270", "application_reference": "MO/2023/1270", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/124235", "application_type": "Full", "application_size_category": "Small", "application_description": "Erection of replacement dwelling following demolition of existing dwelling.", "address_location": "Stonehouse Wood, Walliswood Green Road, Wallis Wood, Dorking, Surrey, RH5 5PL", "postcode": "RH5 5PL", "date_received": "2023-08-18", "date_validated": "2023-08-18", "decided_date": "2023-10-24T00:00:00", "target_decision_date": "2023-10-13", "status": "Decision made", "latitude": "51.138136000000000", "longitude": "-0.400334000000000", "distance": 0, "category": "source"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2025/1048", "application_reference": "MO/2025/1048", "application_link": "https://molevalley-publicportal.statmap.co.uk/horizoNext/publicportal/planningapplications/128495", "application_type": "Full", "application_size_category": "Small", "application_description": "Erection of single storey front extension following removal of outbuilding.", "address_location": "Parklands Cottage, Horsham Road, Forest Green, Dorking, Surrey, RH5 5PN", "postcode": "RH5 5PN", "date_received": "2025-06-17", "date_validated": "2025-06-17", "decided_date": "2025-08-12T00:00:00", "target_decision_date": "2025-08-12", "status": "Determined", "latitude": "51.140712000000000", "longitude": "-0.398686000000000", "distance": 0.31, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2021/0913/1", "application_reference": "MO/2021/0913/1", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/123452", "application_type": "Amendment", "application_size_category": "Small", "application_description": "Non-material amendment to allow change of pitched roofing material from timber shingle to concrete plain tile.", "address_location": "Parklands Cottage, Horsham Road, Forest Green, Dorking, Surrey, RH5 5PN", "postcode": "RH5 5PN", "date_received": "2023-04-04", "date_validated": "2023-04-04", "decided_date": "2023-05-04T00:00:00", "target_decision_date": "2023-05-02", "status": "Decision made", "latitude": "51.140712000000000", "longitude": "-0.398686000000000", "distance": 0.31, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2021/0913", "application_reference": "MO/2021/0913", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/118591", "application_type": "Full", "application_size_category": "Small", "application_description": "Erection of single storey front extension following removal of outbuilding.", "address_location": "Parklands Cottage, Horsham Road, Forest Green, Dorking, Surrey, RH5 5PN", "postcode": "RH5 5PN", "date_received": "2021-05-13", "date_validated": "2021-05-13", "decided_date": "2021-07-05T00:00:00", "target_decision_date": "2021-07-08", "status": "Decision made", "latitude": "51.140712000000000", "longitude": "-0.398686000000000", "distance": 0.31, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2021/0253", "application_reference": "MO/2021/0253", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/117865", "application_type": "Full", "application_size_category": "Medium", "application_description": "Erection of a sand school with timber fencing.", "address_location": "Wildwoods, Horsham Lane, Ewhurst, Surrey GU6 7SW.", "postcode": "GU6 7SW", "date_received": "2021-02-09", "date_validated": "2021-02-09", "decided_date": "2021-06-29T00:00:00", "target_decision_date": "2021-04-06", "status": "Decision made", "latitude": "51.140501000000000", "longitude": "-0.408243000000000", "distance": 0.61, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2024/1573", "application_reference": "MO/2024/1573", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/126674", "application_type": "Full", "application_size_category": "Medium", "application_description": "Demolition of existing buildings on site and erection of 1 No. dwelling with detached garage.", "address_location": "Standon House Stables, Standon Lane, Ockley, Dorking, Surrey, RH5 5QR", "postcode": "RH5 5QR", "date_received": "2024-09-20", "date_validated": "2024-09-20", "decided_date": "2024-11-22T00:00:00", "target_decision_date": "2024-11-15", "status": "Decision made", "latitude": "51.138540000000000", "longitude": "-0.380021000000000", "distance": 1.42, "category": "nearby"}, {"local_authority": "Waverley", "application_identifier": "Waverley/PRA/2022/01798", "application_reference": "PRA/2022/01798", "application_link": "http://planning360.waverley.gov.uk/planning/planning-application?RefType=GFPlanning&KeyNo=537373", "application_type": "Other", "application_size_category": "Medium", "application_description": "General permitted development order 2015 schedule 2 part 6 - application for the erection of a forestry building (as amended by plans received 31/10/2022)", "address_location": "Wildwood, Horsham Lane, Ewhurst, Cranleigh, Surrey, GU6 7SW", "postcode": "GU6 7SW", "date_received": "2022-07-18", "date_validated": "2022-07-18", "decided_date": "2022-11-04T00:00:00", "target_decision_date": "2022-11-04", "latitude": "51.134312000000000", "longitude": "-0.420780000000000", "distance": 1.49, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2025/1061", "application_reference": "MO/2025/1061", "application_link": "https://molevalley-publicportal.statmap.co.uk/horizoNext/publicportal/planningapplications/128511", "application_type": "Full", "application_size_category": "Large", "application_description": "Demolition of existing buildings and redevelopment to provide green and blue infrastructure including new hotel accommodation with lodges, health club and spa with indoor pool (Class C1) together with associated infrastructure (sub-stations, ancillary generator, foul drainage facility, access roads and parking), tennis and padel tennis courts, landscaping and refurbishment of existing swimming lake and provision of Biodiversity Net Gain.", "address_location": "Gatton Manor Hotel and Country Club, Standon Lane, Ockley, Dorking, Surrey, RH5 5PQ", "postcode": "RH5 5PQ", "date_received": "2025-06-18", "date_validated": "2025-06-26", "target_decision_date": "2025-09-25", "status": "Live", "latitude": "51.138900000000000", "longitude": "-0.388514000000000", "distance": 0.93, "category": "nearby"}, {"local_authority": "Mole Valley", "application_identifier": "MoleValley/MO/2024/1631", "application_reference": "MO/2024/1631", "application_link": "https://planning.agileapplications.co.uk/mole/application-details/126738", "application_type": "Full", "application_size_category": "Large", "application_description": "Retention of existing gate and proposed use to access land via Standon Lane, proposed single farm track.", "address_location": "Standon Homestead, Standon Lane, Ockley, Dorking, Surrey, RH5 5QR", "postcode": "RH5 5QR", "date_received": "2024-09-27", "date_validated": "2025-01-07", "decided_date": "2025-04-08T00:00:00", "target_decision_date": "2025-04-08", "status": "Decision made", "latitude": "51.137605000000000", "longitude": "-0.379411000000000", "distance": 1.46, "category": "nearby"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/planning-application/uprn' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"10000000269\", \"no_of_nearest_small_applications\": 10, \"no_of_nearest_medium_applications\": 3, \"no_of_nearest_large_applications\": 2}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/planning-application/uprn\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"uprn\": \"10000000269\",\n      \"no_of_nearest_small_applications\": 10,\n      \"no_of_nearest_medium_applications\": 3,\n      \"no_of_nearest_large_applications\": 2\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/planning-application/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"10000000269\",\n    \"no_of_nearest_small_applications\": 10,\n    \"no_of_nearest_medium_applications\": 3,\n    \"no_of_nearest_large_applications\": 2\n  }),\n});\nconsole.log(await r.json());"}]}}, "/council-tax": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Council Tax"], "summary": "Get Council Tax Information", "description": "Get council tax information for a given address and postcode\n\n## Request Body\n\n| Parameter  | Type   | Required | Description                    | Example            |\n|------------|--------|----------|--------------------------------|--------------------|\n| address    | string | Yes      | Property address               | \"10 Downing Street\"|\n| postcode   | string | Yes      | A valid UK postcode            | \"HA1 1SE\"          |\n| limit      | int    | No       | Results per page (default: 20) | 20                 |\n| pageNumber | int    | No       | Page number (default: 1)       | 1                  |\n\n## Response Body\n\n| Parameter      | Type   | Description                                          | Example                |\n|----------------|--------|------------------------------------------------------|------------------------|\n| address        | string | Full property address                                | 14, BETHECAR ROAD, HARROW |\n| band           | string | Council tax band (A-I or Deleted)                    | E                      |\n| localAuthority | string | Local authority name                                 | Harrow                 |\n| detailLink     | string | Link to check council tax band details               | https://www.tax.service.gov.uk/... |\n| taxAmount      | string | Annual council tax charge (not present for Deleted)  | 2928.27                |\n\n\n> **💷 Credit Cost**  \n> 1 credit per request", "operationId": "Get_Council_Tax_Information_council_tax_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PCouncilTax"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "limit": 20, "pageNumber": 1, "size": 3, "totalElements": 21, "totalPages": 2, "data": [{"address": "14, BETHECAR ROAD, HARROW, MIDDX, HA1 1SE", "band": "E", "localAuthority": "Harrow", "detailLink": "https://www.tax.service.gov.uk/check-council-tax-band/property/7b025511-c32b-7e4f-d863-72218f13dda2", "taxAmount": "2928.27"}, {"address": "16, BETHECAR ROAD, HARROW, MIDDX, HA1 1SE", "band": "E", "localAuthority": "Harrow", "detailLink": "https://www.tax.service.gov.uk/check-council-tax-band/property/74373cc3-fa77-6708-4f68-c08dee8a00bc", "taxAmount": "2928.27"}, {"address": "20, BETHECAR ROAD, HARROW, MIDDX, HA1 1SE", "band": "Deleted", "localAuthority": "Harrow", "detailLink": "https://www.tax.service.gov.uk/check-council-tax-band/property/34d8f994-7d4e-acdf-7eac-efd3ea196cc2"}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/council-tax' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"address\": \"10 Downing Street\", \"postcode\": \"SW1A 2AA\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/council-tax\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"address\": \"10 Downing Street\",\n      \"postcode\": \"SW1A 2AA\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/council-tax\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"address\": \"10 Downing Street\",\n    \"postcode\": \"SW1A 2AA\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/water-supplier/lookup": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["Water Supplier"], "summary": "Find water and sewerage supplier by postcode", "description": "Returns water and sewerage supplier information for the given UK postcode using PDI_PortalsData.pdi_postcode database and Ofwat boundary data.", "operationId": "Lookup_Water_and_Sewerage_Supplier_by_Postcode_water_supplier_lookup_post", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WaterSupplierLookupRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "size": 1, "data": [{"water": "Affinity Water", "sewerage": "Thames Water", "latitude": 51.58715489999999, "longitude": -0.3374974, "postcode": "HA1 1SE", "region": "London"}]}}}}, "400": {"description": "Bad Request - Invalid postcode format"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/water-supplier/lookup' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 20, \"pageNumber\": 1, \"postcode\": \"HA1 1SE\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/water-supplier/lookup\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n    json={\n      \"limit\": 20,\n      \"pageNumber\": 1,\n      \"postcode\": \"HA1 1SE\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/water-supplier/lookup\", {\n  method: \"POST\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"limit\": 20,\n    \"pageNumber\": 1,\n    \"postcode\": \"HA1 1SE\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/water-supplier/list-suppliers": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "get": {"tags": ["Water Supplier"], "summary": "Get complete list of water and sewerage companies", "description": "Returns a comprehensive list of all water supply and sewerage service companies operating in England and Wales.", "operationId": "List_All_Water_and_Sewerage_Suppliers_water_supplier_list_suppliers_get", "parameters": [{"name": "X-PDI-Authorization", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Authorization"}, "example": "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyX25hbWUiOiJt...", "description": "Required. Your PDI API token (see Get API Token)."}, {"name": "X-PDI-Channel-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Channel-Id"}, "example": "PDI Data API", "description": "Required. Send the value shown for this endpoint; it identifies the PDI channel."}, {"name": "X-PDI-End-To-End-Id", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-End-To-End-Id"}, "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139", "description": "Required. A unique id for this request (a UUID), used to trace it end to end."}, {"name": "X-PDI-Process-Name", "in": "header", "required": true, "schema": {"type": "string", "title": "X-Pdi-Process-Name"}, "example": "property insight", "description": "Required. Send the value shown for this endpoint; it identifies the PDI process."}, {"name": "role", "in": "header", "required": true, "schema": {"type": "string", "title": "Role"}, "example": "API Enterprise 30K"}, {"name": "userContext", "in": "header", "required": true, "schema": {"type": "string", "title": "Usercontext"}, "example": "youremail@yourdomain.com"}, {"name": "userPackage", "in": "header", "required": true, "schema": {"type": "string", "title": "Userpackage"}, "example": "API Enterprise 30K"}, {"name": "X-PDI-API-Name", "in": "header", "required": false, "schema": {"type": "string", "title": "X-Pdi-Api-Name"}, "example": "api name"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PDIStandardResponse"}, "example": {"code": 200, "isSuccess": true, "message": "", "size": 2, "data": [{"type": "water", "suppliers": ["Affinity Water", "Albion Eco Ltd", "Anglian Water", "Bristol Water", "Dwr Cymru Welsh Water", "Northumbrian Water", "Severn Trent Water", "South West Water", "Southern Water", "Thames Water", "United Utilities", "Wessex Water", "Yorkshire Water"]}, {"type": "sewerage", "suppliers": ["Anglian Water", "Dwr Cymru Welsh Water", "Northumbrian Water", "Severn Trent Water", "South West Water", "Southern Water", "Thames Water", "United Utilities", "Wessex Water", "Yorkshire Water"]}]}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}, "500": {"description": "Internal Server Error"}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://dataapi.propertydealsinsight.com/water-supplier/list-suppliers' \\\n  -H \"X-PDI-Authorization: $PDI_TOKEN\" \\\n  -H \"X-PDI-Channel-Id: PDI Data API\" \\\n  -H \"X-PDI-End-To-End-Id: 6e296dc9-4ea7-4483-b6bc-79758b6b5139\" \\\n  -H \"X-PDI-Process-Name: property insight\" \\\n  -H \"role: API Enterprise 30K\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"userPackage: API Enterprise 30K\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://dataapi.propertydealsinsight.com/water-supplier/list-suppliers\",\n    headers={\n        \"X-PDI-Authorization\": os.environ[\"PDI_TOKEN\"],\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"role\": \"API Enterprise 30K\",\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/water-supplier/list-suppliers\", {\n  method: \"GET\",\n  headers: {\n    \"X-PDI-Authorization\": `${process.env.PDI_TOKEN}`,\n    \"X-PDI-Channel-Id\": \"PDI Data API\",\n    \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n    \"X-PDI-Process-Name\": \"property insight\",\n    \"role\": \"API Enterprise 30K\",\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"userPackage\": \"API Enterprise 30K\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/opda/appraisal/v1/property-pack/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDTF / OPDA Sandbox"], "summary": "Retrieve a Property Pack by UPRN", "operationId": "get_property_pack_by_uprn_opda_appraisal_v1_property_pack_uprn_post", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RequestWithUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PdtfPropertyPack"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/uprn' \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"100022100237\", \"propertyType\": \"Detached\", \"internalAreaSqM\": 5, \"bedrooms\": 0, \"bathrooms\": 0, \"receptions\": 0, \"downloadPDF\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/uprn\",\n    headers={\n    },\n    json={\n      \"uprn\": \"100022100237\",\n      \"propertyType\": \"Detached\",\n      \"internalAreaSqM\": 5,\n      \"bedrooms\": 0,\n      \"bathrooms\": 0,\n      \"receptions\": 0,\n      \"downloadPDF\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"100022100237\",\n    \"propertyType\": \"Detached\",\n    \"internalAreaSqM\": 5,\n    \"bedrooms\": 0,\n    \"bathrooms\": 0,\n    \"receptions\": 0,\n    \"downloadPDF\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/opda/appraisal/v1/property-pack/interactive/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDTF / OPDA Sandbox"], "summary": "Retrieve a Property Pack by UPRN", "operationId": "get_property_pack_by_uprn_interactive_opda_appraisal_v1_property_pack_interactive_uprn_post", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RequestWithUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PdtfPropertyPack"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/interactive/uprn' \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"100022100237\", \"propertyType\": \"Detached\", \"internalAreaSqM\": 5, \"bedrooms\": 0, \"bathrooms\": 0, \"receptions\": 0, \"downloadPDF\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/interactive/uprn\",\n    headers={\n    },\n    json={\n      \"uprn\": \"100022100237\",\n      \"propertyType\": \"Detached\",\n      \"internalAreaSqM\": 5,\n      \"bedrooms\": 0,\n      \"bathrooms\": 0,\n      \"receptions\": 0,\n      \"downloadPDF\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda/appraisal/v1/property-pack/interactive/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"100022100237\",\n    \"propertyType\": \"Detached\",\n    \"internalAreaSqM\": 5,\n    \"bedrooms\": 0,\n    \"bathrooms\": 0,\n    \"receptions\": 0,\n    \"downloadPDF\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/opda-opaque/appraisal/v1/property-pack/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDTF / OPDA Sandbox (Opaque Token)"], "summary": "Retrieve a Property Pack by UPRN (Opaque Token)", "operationId": "get_property_pack_by_uprn_opda_opaque_appraisal_v1_property_pack_uprn_post", "parameters": [{"name": "Authorization", "in": "header", "required": false, "schema": {"type": "string", "default": "", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RequestWithUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PdtfPropertyPack"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/uprn' \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"100022100237\", \"propertyType\": \"Detached\", \"internalAreaSqM\": 5, \"bedrooms\": 0, \"bathrooms\": 0, \"receptions\": 0, \"downloadPDF\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/uprn\",\n    headers={\n    },\n    json={\n      \"uprn\": \"100022100237\",\n      \"propertyType\": \"Detached\",\n      \"internalAreaSqM\": 5,\n      \"bedrooms\": 0,\n      \"bathrooms\": 0,\n      \"receptions\": 0,\n      \"downloadPDF\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"100022100237\",\n    \"propertyType\": \"Detached\",\n    \"internalAreaSqM\": 5,\n    \"bedrooms\": 0,\n    \"bathrooms\": 0,\n    \"receptions\": 0,\n    \"downloadPDF\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/opda-opaque/appraisal/v1/property-pack/interactive/uprn": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "post": {"tags": ["PDTF / OPDA Sandbox (Opaque Token)"], "summary": "Retrieve a Property Pack by UPRN (Opaque Token)", "operationId": "get_property_pack_by_uprn_interactive_opda_opaque_appraisal_v1_property_pack_interactive_uprn_post", "parameters": [{"name": "Authorization", "in": "header", "required": false, "schema": {"type": "string", "default": "", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RequestWithUPRN"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PdtfPropertyPack"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/interactive/uprn' \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"100022100237\", \"propertyType\": \"Detached\", \"internalAreaSqM\": 5, \"bedrooms\": 0, \"bathrooms\": 0, \"receptions\": 0, \"downloadPDF\": false}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/interactive/uprn\",\n    headers={\n    },\n    json={\n      \"uprn\": \"100022100237\",\n      \"propertyType\": \"Detached\",\n      \"internalAreaSqM\": 5,\n      \"bedrooms\": 0,\n      \"bathrooms\": 0,\n      \"receptions\": 0,\n      \"downloadPDF\": false\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda-opaque/appraisal/v1/property-pack/interactive/uprn\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"100022100237\",\n    \"propertyType\": \"Detached\",\n    \"internalAreaSqM\": 5,\n    \"bedrooms\": 0,\n    \"bathrooms\": 0,\n    \"receptions\": 0,\n    \"downloadPDF\": false\n  }),\n});\nconsole.log(await r.json());"}]}}, "/opda-opaque/current-state/{uprn}": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "get": {"tags": ["PDTF / OPDA Sandbox (Reference Spec)"], "summary": "OPDA spec: current state (materialised property pack)", "description": "Returns the **materialised** Property Pack for a UPRN — i.e. the current-state body without the verified-claims envelope. This is the OPDA-spec equivalent of `/appraisal/v1/property-pack/uprn`. Body is signed via Detached JWS in `x-jws-signature`.", "operationId": "opda_get_current_state_opda_opaque_current_state__uprn__get", "parameters": [{"name": "uprn", "in": "path", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 24, "title": "Uprn"}}, {"name": "Authorization", "in": "header", "required": false, "schema": {"type": "string", "default": "", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://dataapi.propertydealsinsight.com/opda-opaque/current-state/{uprn}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://dataapi.propertydealsinsight.com/opda-opaque/current-state/{uprn}\",\n    headers={\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda-opaque/current-state/{uprn}\", {\n  method: \"GET\",\n  headers: {\n  },\n});\nconsole.log(await r.json());"}]}}, "/opda-opaque/claims/{uprn}": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "get": {"tags": ["PDTF / OPDA Sandbox (Reference Spec)"], "summary": "OPDA spec: verified claims for a UPRN", "description": "Returns the full array of OIDC-IDA verified-claim envelopes (`electronic_record` and `vouch`) that back the property pack.", "operationId": "opda_get_claims_opda_opaque_claims__uprn__get", "parameters": [{"name": "uprn", "in": "path", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 24, "title": "Uprn"}}, {"name": "Authorization", "in": "header", "required": false, "schema": {"type": "string", "default": "", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://dataapi.propertydealsinsight.com/opda-opaque/claims/{uprn}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://dataapi.propertydealsinsight.com/opda-opaque/claims/{uprn}\",\n    headers={\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda-opaque/claims/{uprn}\", {\n  method: \"GET\",\n  headers: {\n  },\n});\nconsole.log(await r.json());"}]}}, "/opda-opaque/provenance-map/{uprn}": {"servers": [{"url": "https://dataapi.propertydealsinsight.com"}], "get": {"tags": ["PDTF / OPDA Sandbox (Reference Spec)"], "summary": "OPDA spec: pointer-keyed provenance map", "description": "Returns a flat map of JSON Pointer → provenance descriptor so a consumer can answer 'who said this field and when' in a single lookup without walking the claims array.", "operationId": "opda_get_provenance_map_opda_opaque_provenance_map__uprn__get", "parameters": [{"name": "uprn", "in": "path", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 24, "title": "Uprn"}}, {"name": "Authorization", "in": "header", "required": false, "schema": {"type": "string", "default": "", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://dataapi.propertydealsinsight.com/opda-opaque/provenance-map/{uprn}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://dataapi.propertydealsinsight.com/opda-opaque/provenance-map/{uprn}\",\n    headers={\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://dataapi.propertydealsinsight.com/opda-opaque/provenance-map/{uprn}\", {\n  method: \"GET\",\n  headers: {\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/water-supplier/search": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Water Supplier"], "summary": "Get Water Supplier by Postcode", "description": "Get water supplier details by postcode.", "operationId": "getWaterSupplier", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/WaterSupplierRequest"}}}, "required": true}, "responses": {"200": {"description": "Operation success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WaterSupplierResponse"}}}}, "400": {"description": "Invalid data"}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/water-supplier/search' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"API Enterprise 30K\", \"role\": \"API Enterprise 30K\", \"X-PDI-Channel-Id\": \"PDI Data API\", \"X-PDI-Process-Name\": \"property insight\", \"X-PDI-API-Name\": \"api name\", \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\", \"X-PDI-RequestId\": \"43555\"}, \"postcode\": \"BT1 1GJ\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/water-supplier/search\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n        \"role\": \"API Enterprise 30K\",\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"X-PDI-API-Name\": \"api name\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n        \"X-PDI-RequestId\": \"43555\"\n      },\n      \"postcode\": \"BT1 1GJ\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/water-supplier/search\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"API Enterprise 30K\",\n      \"role\": \"API Enterprise 30K\",\n      \"X-PDI-Channel-Id\": \"PDI Data API\",\n      \"X-PDI-Process-Name\": \"property insight\",\n      \"X-PDI-API-Name\": \"api name\",\n      \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\",\n      \"X-PDI-RequestId\": \"43555\"\n    },\n    \"postcode\": \"BT1 1GJ\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/sold/price": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Property Evaluation"], "summary": "Get recent sold prices for a UK postcode area", "description": "Returns recent sold price records for properties in a UK postcode area. Use this to view Land Registry sale prices, sold dates, floor areas, and tenure for comparable homes near the property you are evaluating.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| postcode | string | Valid UK postcode to search recent sold prices for | L18 0HX | |", "operationId": "getSoldPrice", "requestBody": {"description": "UK postcode to search for recent sold property prices.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationRequestModel"}, "examples": {"Sold price lookup request": {"summary": "Example request for postcode L18 0HX", "description": "Request: POST /v1/sold/price", "value": {"postcode": "L18 0HX"}}}}}, "required": true}, "responses": {"200": {"description": "Recent sold prices returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SoldPriceResponse"}, "examples": {"Sold price response": {"summary": "Example sold prices for postcode area L18", "description": "Response: POST /v1/sold/price", "value": {"isSuccess": true, "soldPrices": [{"area": "LIVERPOOL, L18", "address": "29, MAYVILLE ROAD ", "postcode": "L18 0HG", "propertyTypeBuiltform": "Terraced", "noOfhabitablerooms": "5", "lastSoldPrice": "500000", "lastSoldDate": "14 Apr 2026", "totalfloorarea": "138", "pricePerSQM": "3623.19", "duration": "Freehold"}, {"area": "LIVERPOOL, L18", "address": "37, MAYVILLE ROAD ", "postcode": "L18 0HG", "propertyTypeBuiltform": "Terraced", "noOfhabitablerooms": "6", "lastSoldPrice": "424500", "lastSoldDate": "19 Mar 2026", "totalfloorarea": "152", "pricePerSQM": "2792.76", "duration": "Freehold"}, {"area": "LIVERPOOL, L18", "address": "3, FLAT 2 HALLVILLE ROAD ", "postcode": "L18 0HP", "propertyTypeBuiltform": "Flat", "noOfhabitablerooms": "", "lastSoldPrice": "165000", "lastSoldDate": "17 Dec 2025", "totalfloorarea": "", "pricePerSQM": "", "duration": "Leasehold"}]}}}}}}, "400": {"description": "Invalid postcode or request data"}, "401": {"description": "Missing Authorization header or insufficient API access", "content": {"application/json": {"examples": {"Unauthorized response": {"description": "Unauthorized response", "value": {"isSuccess": false, "message": "User doesn't have the required API access.", "code": 1201, "errorType": "ACCESS"}}}}}}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/sold/price' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"postcode\": \"L18 0HX\"}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/sold/price\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"postcode\": \"L18 0HX\"\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/sold/price\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"postcode\": \"L18 0HX\"\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/property_evaluation": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Property Evaluation"], "summary": "Get automated sales valuation for a UK property", "description": "Get an automated sales valuation for a UK property. Send the address, postcode, and property details, and our automated valuation model (AVM) analyses local sold prices, comparable properties, and EPC data to return an estimated market value, confidence level, and supporting property information.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| address | string | Full UK property address used to match sold prices and EPC records | 5 Trafalgar Cottages, Tackleway | |\n| postcode | string | Valid UK postcode | TN34 3DF | |\n| prop_type | string | Property type. Values: Detached, Terraced, Semi-Detached, Flat | Terraced | |\n| bedrooms | integer | Number of bedrooms (also used with receptions for comparable data count) | 2 | |\n| internalarea | string | Internal floor area (in SQM) as a number (used in valuation calculation) | 58 | |\n| numberOfBaths | integer | Number of bathrooms. Adjustments apply for 2, 3 | 2 | Y |\n| receptions | integer | Number of reception rooms | 0 | Y |\n| buildYear | string | Build era. Values: pre (Pre 1914), between (Between 1914-2000, no adjustment), new (After 2000). | pre | Y |\n| currentCondition | string | Property condition. Values: excellent, good, modernisation, rundown, newBuildBasic, newBuildAverage, newBuildPremium | good | Y |\n| typeOfGarden | string | Garden size. Values: small, large, huge | large | Y |\n| parking | string | Number of parking spaces as a number. Values: 1, 2, 3 | 1 | Y |\n| uprn | string | Unique Property Reference Number. Optional; improves last sold and EPC matching if known | 100062573471 | Y |", "operationId": "getValuationByPostCode", "requestBody": {"description": "Property address, postcode, characteristics, and standard PDI request header.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationRequestModel"}, "examples": {"Terraced house valuation request": {"summary": "Example request for a 2-bed terraced property in Hastings", "description": "Request: POST /v1/property_evaluation", "value": {"address": "5 Trafalgar Cottages, Tackleway", "postcode": "TN34 3DF", "prop_type": "Terraced", "bedrooms": 2, "buildYear": "new", "currentCondition": "good", "numberOfBaths": 2, "typeOfGarden": "large", "internalarea": "58", "parking": "1", "receptions": 0, "header": {"userContext": "youremail@yourdomain.com", "userPackage": "AGENT_PREMIUM_YEARLY", "role": "AGENT_PREMIUM_YEARLY", "X-PDI-Channel-Id": "PDI digital", "X-PDI-Process-Name": "property insight"}}}}}}, "required": true}, "responses": {"200": {"description": "Property valuation calculated successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationModel"}, "examples": {"Property valuation response": {"summary": "Example valuation for a 2-bed terraced property", "description": "Response: POST /v1/property_evaluation", "value": {"address": "5 Trafalgar Cottages, Tackleway", "postcode": "TN34 3DF", "propertyType": "T", "noOfhabitablerooms": 2, "totalfloorarea": 58, "lastSoldPrice": "220000", "lastSoldDate": "2013-08-07 00:00:00.0", "priceChange": "55777", "avgPricePerSqM": 4802.81, "propertyInsightScore": 275777, "dataPointAssessed": 3482, "valuationVariance": 7.5, "valuationPostcodematchLevel": "Exact Postcode", "confidenceLevel": "High", "duration": "Freehold", "uprn": "100062573471", "avgPricePerSqFt": 446.19, "areaUnit": "SQM", "isSuccess": true, "xPDIEndToEndId": "460a23a2-e38b-40e4-a10f-1571cbd4b5bb", "energyPerformance": {"certificateNumber": "221661461052009120215405202019151", "currentEnergyRating": "E", "potentialEnergyRating": "E", "currentEnergyEfficiency": "42", "potentialEnergyEfficiency": "47", "inspectionDate": "2009-12-01", "lodgementDate": "2009-12-02", "epcExpiryDate": "2019-12-02", "buildingReferenceNumber": "1126127568", "builtForm": "Mid-Terrace"}}}}}}}, "400": {"description": "Invalid postcode or request data"}, "401": {"description": "Missing Authorization header or insufficient API access", "content": {"application/json": {"examples": {"Unauthorized response": {"description": "Unauthorized response", "value": {"isSuccess": false, "message": "User doesn't have the required API access.", "code": 1201, "errorType": "ACCESS"}}}}}}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/property_evaluation' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"5 Trafalgar Cottages, Tackleway\", \"postcode\": \"TN34 3DF\", \"prop_type\": \"Terraced\", \"bedrooms\": 2, \"buildYear\": \"new\", \"currentCondition\": \"good\", \"numberOfBaths\": 2, \"typeOfGarden\": \"large\", \"internalarea\": \"58\", \"parking\": \"1\", \"receptions\": 0, \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"AGENT_PREMIUM_YEARLY\", \"role\": \"AGENT_PREMIUM_YEARLY\", \"X-PDI-Channel-Id\": \"PDI digital\", \"X-PDI-Process-Name\": \"property insight\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/property_evaluation\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"address\": \"5 Trafalgar Cottages, Tackleway\",\n      \"postcode\": \"TN34 3DF\",\n      \"prop_type\": \"Terraced\",\n      \"bedrooms\": 2,\n      \"buildYear\": \"new\",\n      \"currentCondition\": \"good\",\n      \"numberOfBaths\": 2,\n      \"typeOfGarden\": \"large\",\n      \"internalarea\": \"58\",\n      \"parking\": \"1\",\n      \"receptions\": 0,\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n        \"role\": \"AGENT_PREMIUM_YEARLY\",\n        \"X-PDI-Channel-Id\": \"PDI digital\",\n        \"X-PDI-Process-Name\": \"property insight\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/property_evaluation\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"address\": \"5 Trafalgar Cottages, Tackleway\",\n    \"postcode\": \"TN34 3DF\",\n    \"prop_type\": \"Terraced\",\n    \"bedrooms\": 2,\n    \"buildYear\": \"new\",\n    \"currentCondition\": \"good\",\n    \"numberOfBaths\": 2,\n    \"typeOfGarden\": \"large\",\n    \"internalarea\": \"58\",\n    \"parking\": \"1\",\n    \"receptions\": 0,\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n      \"role\": \"AGENT_PREMIUM_YEARLY\",\n      \"X-PDI-Channel-Id\": \"PDI digital\",\n      \"X-PDI-Process-Name\": \"property insight\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/property/rentalValuation": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Property Search"], "summary": "Get Rental Valuation for any property", "description": "This endpoint provides comprehensive rental valuation estimates for properties across the UK. Our algorithm analyzes local market data, property characteristics, and comparable rentals to deliver bank grade valuations.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Required |\n|-----------|------|-------------|---------|----------|\n| postcode | string | A valid UK postcode | HA1 1SE | Either postcode, location, or latitude/longitude |\n| location | string | A valid UK location name | London | Either postcode, location, or latitude/longitude |\n| latitude | string | Latitude of the location | 51.5074 | Either postcode, location, or latitude/longitude |\n| longitude | string | Longitude of the location | -0.1278 | Either postcode, location, or latitude/longitude |\n| property_type | string | Type of property | House | Yes |\n| number_of_beds | string | Number of bedrooms | 3 | Yes |\n## Response\n\n| Field | Description | Example |\n|-------|-------------|----------|\n| rentalvaluation | Monthly rental valuation estimate in GBP | 3517 |\n| isSuccess | Request success status | true |\n| message | Response message or error details | \"Success\" |", "operationId": "getRentalValuation", "requestBody": {"description": "Rental valuation request parameters", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RentalValuationRequest"}, "examples": {"Using Postcode": {"summary": "Request with UK postcode", "description": "Using Postcode", "value": {"postcode": "HA1 1SE", "property_type": "Detached", "number_of_beds": "3", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "API Enterprise 30K", "role": "API Enterprise 30K", "X-PDI-Channel-Id": "PDI Data API", "X-PDI-Process-Name": "rental valuation"}}}, "Using Location": {"summary": "Request with location name", "description": "Using Location", "value": {"location": "London", "property_type": "Flat", "number_of_beds": "2", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "API Enterprise 30K", "role": "API Enterprise 30K", "X-PDI-Channel-Id": "PDI Data API", "X-PDI-Process-Name": "rental valuation"}}}, "Using Coordinates": {"summary": "Request with latitude/longitude", "description": "Using Coordinates", "value": {"latitude": "51.5074", "longitude": "-0.1278", "property_type": "Apartment", "number_of_beds": "1", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "API Enterprise 30K", "role": "API Enterprise 30K", "X-PDI-Channel-Id": "PDI Data API", "X-PDI-Process-Name": "rental valuation"}}}}}}, "required": true}, "responses": {"200": {"description": "Operation completed successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RentalValuationResponse"}, "examples": {"Successful Response": {"summary": "Example of a successful response", "description": "Successful Response", "value": {"isSuccess": true, "rentalvaluation": 3368, "xPDIEndToEndId": "28374773-8da9-4cf1-82e3-18afa5d5db42"}}}}}}, "400": {"description": "Invalid request parameters or missing required fields"}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/property/rentalValuation' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"postcode\": \"HA1 1SE\", \"property_type\": \"Detached\", \"number_of_beds\": \"3\", \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"API Enterprise 30K\", \"role\": \"API Enterprise 30K\", \"X-PDI-Channel-Id\": \"PDI Data API\", \"X-PDI-Process-Name\": \"rental valuation\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/property/rentalValuation\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"postcode\": \"HA1 1SE\",\n      \"property_type\": \"Detached\",\n      \"number_of_beds\": \"3\",\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n        \"role\": \"API Enterprise 30K\",\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-Process-Name\": \"rental valuation\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/property/rentalValuation\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"postcode\": \"HA1 1SE\",\n    \"property_type\": \"Detached\",\n    \"number_of_beds\": \"3\",\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"API Enterprise 30K\",\n      \"role\": \"API Enterprise 30K\",\n      \"X-PDI-Channel-Id\": \"PDI Data API\",\n      \"X-PDI-Process-Name\": \"rental valuation\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/pdionmarket/comparables": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["On Market Comparable"], "summary": "Get on-market comparable listings", "description": "Returns paginated on-market comparable property listings near a UK postcode. Searches portal listings matching property type, bedroom count, and listing type. The search radius defaults to 1 mile and automatically widens (doubling each step) up to 4 miles only when radius is not provided. When radius is explicitly set, that value is used as-is (capped at 4 miles).\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| postcode | string | UK postcode or outcode to search around | BH23 3NN | |\n| listingType | string | Listing type. Values: SALE, RENT | SALE | |\n| propertyType | string | Property type. Values: APARTMENT, FLAT, DETACHED, SEMI_DETACHED, TERRACED | SEMI_DETACHED | |\n| numberOfBeds | integer | Target number of bedrooms | 3 | |\n| numberOfBedsVariance | integer | Bedroom range lower bound is numberOfBeds minus this value (inclusive up to numberOfBeds) | 1 | Y |\n| radius | number | Search radius in miles (max 4). Defaults to 1.0 when omitted or 0; auto-widens up to 4 only when radius is not specified | 1.0 | Y |\n| pageNumber | integer | Page index (0-based) | 0 | Y |\n| pageSize | integer | Number of results per page | 3 | |", "operationId": "getComparables", "requestBody": {"description": "Postcode, listing criteria, pagination, and standard PDI request header.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComparableSalesRequest"}, "examples": {"On-market comparables request": {"summary": "Example search for 3-bed semi-detached properties in BH23 3NN", "description": "Request: POST /v1/pdionmarket/comparables", "value": {"listingType": "SALE", "numberOfBeds": 3, "numberOfBedsVariance": 1, "propertyAddress": "", "postcode": "BH23 3NN", "propertyType": "SEMI_DETACHED", "pageNumber": 0, "pageSize": 3, "header": {"userContext": "youremail@yourdomain.com", "userPackage": "AGENT_PREMIUM_YEARLY", "role": "AGENT_PREMIUM_YEARLY", "X-PDI-Channel-Id": "PDI digital", "X-PDI-End-To-End-Id": "afe87694-0ce1-46bf-ad43-b79694acb97c", "X-PDI-Process-Name": "property insight"}}}}}}, "required": true}, "responses": {"200": {"description": "Comparable listings returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PropertyRS"}, "examples": {"On-market comparables response": {"summary": "Example paginated comparables for BH23 3NN", "description": "Response: POST /v1/pdionmarket/comparables", "value": {"isSuccess": true, "xPDIEndToEndId": "afe87694-0ce1-46bf-ad43-b79694acb97c", "pageNumber": 0, "totalPages": 4, "size": 3, "totalElements": 14, "property": [{"area": "BH23", "address": "Jellicoe Drive, Christchurch BH23", "propertyType": "semi_detached", "numberOfBaths": "2", "evaluationPropertyType": "semi_detached", "listedOn": "22 Sep 2023", "askingPrice": "415000", "detailsUrl": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/65666359/", "shortDesc": "3 bed semi-detached house for sale in Jellicoe Drive, Christchurch BH23, selling for £415,000 from Palmer Snell - Christchurch Sales. See property details on Zoopla or browse all our range of properties in Jellicoe Drive, Christchurch BH23.", "thumbnail": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/738f66121fd16e9e9364f8a36769e3a138faa649.jpg", "display_image": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/738f66121fd16e9e9364f8a36769e3a138faa649.jpg", "propertyImage": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/738f66121fd16e9e9364f8a36769e3a138faa649.jpg", "agentAddress": "1 Saxon Centre, Fountain Way, Christchurch", "agentName": "Palmer Snell - Christchurch Sales", "agentLogo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(640173).png", "numBedrooms": 3, "numRecepts": 1, "numFloors": 1, "postcode": "BH23 3SL", "latitude": 50.734282, "longitude": -1.748275, "distance": "0.3799808353254584", "propertyListingImages": [{"imageUrl": "https://dataapi.propertydealsinsight.com/r/L02/ixl/738f66121fd16e9e9364f8a36769e3a138faa649.jpg", "imageTitle": null, "coverImage": true}], "agentPhoneNo": "01202 060220", "pdiProperty": false, "D2V": false, "newRecordSinceLastSearchFlag": false}, {"area": "BH23", "address": "Amethyst Road, Christchurch BH23", "propertyType": "semi_detached", "numberOfBaths": "1", "evaluationPropertyType": "semi_detached", "listedOn": "20 Sep 2023", "askingPrice": "300000", "detailsUrl": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/65646315/", "shortDesc": "3 bed semi-detached house for sale in Amethyst Road, Christchurch BH23, selling for £300,000 from Connells - Southbourne. See property details on Zoopla or browse all our range of properties in Amethyst Road, Christchurch BH23.", "thumbnail": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/a1b07df392faf38e198b66901c235b7189257b00.jpg", "display_image": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/a1b07df392faf38e198b66901c235b7189257b00.jpg", "propertyImage": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/a1b07df392faf38e198b66901c235b7189257b00.jpg", "agentAddress": "73 Southbourne Grove, Bournemouth", "agentName": "Connells - Southbourne", "agentLogo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(561596).png", "numBedrooms": 3, "numRecepts": 2, "numFloors": 1, "postcode": "BH23 3ED", "latitude": 50.739486, "longitude": -1.751209, "distance": "0.7587235434460889", "propertyListingImages": [{"imageUrl": "https://dataapi.propertydealsinsight.com/r/L02/ixl/a1b07df392faf38e198b66901c235b7189257b00.jpg", "imageTitle": null, "coverImage": true}], "agentPhoneNo": "01202 332377", "pdiProperty": false, "D2V": false, "newRecordSinceLastSearchFlag": false}, {"area": "BH23", "address": "Edward Road, Christchurch BH23", "propertyType": "semi_detached", "numberOfBaths": "1", "evaluationPropertyType": "semi_detached", "listedOn": "08 Apr 2024", "askingPrice": "375000", "detailsUrl": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/67057812/", "shortDesc": "3 bed semi-detached house for sale in Edward Road, Christchurch BH23, selling for £375,000 from Hive & Partners. See property details on Zoopla or browse all our range of properties in Edward Road, Christchurch BH23.", "thumbnail": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/9d44c7db0b6bee092ec7549e88dc1d678503e84c.jpg", "display_image": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/9d44c7db0b6bee092ec7549e88dc1d678503e84c.jpg", "propertyImage": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/9d44c7db0b6bee092ec7549e88dc1d678503e84c.jpg", "agentAddress": "The Hive, Wilson House, No2 Lorne Park Road", "agentName": "Hive & Partners", "agentLogo": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(727753).png", "numBedrooms": 3, "numRecepts": 2, "numFloors": 1, "postcode": "BH23 3EW", "latitude": 50.742107, "longitude": -1.750913, "distance": "0.9325962358182863", "propertyListingImages": [{"imageUrl": "https://dataapi.propertydealsinsight.com/r/L02/ixl/9d44c7db0b6bee092ec7549e88dc1d678503e84c.jpg", "imageTitle": null, "coverImage": true}], "agentPhoneNo": "01202 058393", "pdiProperty": false, "D2V": false, "newRecordSinceLastSearchFlag": false}]}}}}}}, "400": {"description": "Invalid or missing postcode, listing type, or insufficient results"}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/pdionmarket/comparables' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"listingType\": \"SALE\", \"numberOfBeds\": 3, \"numberOfBedsVariance\": 1, \"propertyAddress\": \"\", \"postcode\": \"BH23 3NN\", \"propertyType\": \"SEMI_DETACHED\", \"pageNumber\": 0, \"pageSize\": 3, \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"AGENT_PREMIUM_YEARLY\", \"role\": \"AGENT_PREMIUM_YEARLY\", \"X-PDI-Channel-Id\": \"PDI digital\", \"X-PDI-End-To-End-Id\": \"afe87694-0ce1-46bf-ad43-b79694acb97c\", \"X-PDI-Process-Name\": \"property insight\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/pdionmarket/comparables\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"listingType\": \"SALE\",\n      \"numberOfBeds\": 3,\n      \"numberOfBedsVariance\": 1,\n      \"propertyAddress\": \"\",\n      \"postcode\": \"BH23 3NN\",\n      \"propertyType\": \"SEMI_DETACHED\",\n      \"pageNumber\": 0,\n      \"pageSize\": 3,\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n        \"role\": \"AGENT_PREMIUM_YEARLY\",\n        \"X-PDI-Channel-Id\": \"PDI digital\",\n        \"X-PDI-End-To-End-Id\": \"afe87694-0ce1-46bf-ad43-b79694acb97c\",\n        \"X-PDI-Process-Name\": \"property insight\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/pdionmarket/comparables\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"listingType\": \"SALE\",\n    \"numberOfBeds\": 3,\n    \"numberOfBedsVariance\": 1,\n    \"propertyAddress\": \"\",\n    \"postcode\": \"BH23 3NN\",\n    \"propertyType\": \"SEMI_DETACHED\",\n    \"pageNumber\": 0,\n    \"pageSize\": 3,\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n      \"role\": \"AGENT_PREMIUM_YEARLY\",\n      \"X-PDI-Channel-Id\": \"PDI digital\",\n      \"X-PDI-End-To-End-Id\": \"afe87694-0ce1-46bf-ad43-b79694acb97c\",\n      \"X-PDI-Process-Name\": \"property insight\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/networkcoverage": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Network Coverage"], "summary": "Get mobile and broadband coverage by postcode", "description": "Returns mobile and broadband network coverage for all properties at a UK postcode. Includes predicted broadband speeds (standard, superfast, ultrafast) and mobile signal quality from major UK networks.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| postcode | string | UK postcode to look up coverage for | L329SP | |", "operationId": "getNetworkCoverage", "requestBody": {"description": "UK postcode and standard PDI request header.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NetworkCoverageRequest"}, "examples": {"Network coverage request": {"summary": "Example request for postcode L32 9SP", "description": "Request: POST /v1/networkcoverage", "value": {"postcode": "L329SP", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "AGENT_PREMIUM_YEARLY", "role": "AGENT_PREMIUM_YEARLY", "X-PDI-Channel-Id": "PDI Data API", "X-PDI-Process-Name": "property insight", "X-PDI-End-To-End-Id": "6e296dc9-4ea7-4483-b6bc-79758b6b5139"}}}}}}, "required": true}, "responses": {"200": {"description": "Mobile and broadband coverage returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NetworkCoverageResponse"}, "examples": {"Combined network coverage response": {"summary": "Example mobile and broadband coverage for L32 9SP", "description": "Response: POST /v1/networkcoverage", "value": {"mobileCoverage": {"PostCode": "L329SP", "Availability": [{"UPRN": 40066960, "AddressShortDescription": "4, GORLESTON MEWS", "PostCode": "L329SP", "EEVoiceOutdoor": 4, "EEDataOutdoor": 4, "H3VoiceOutdoor": 4, "H3DataOutdoor": 4, "TFVoiceOutdoor": 4, "TFDataOutdoor": 4, "VOVoiceOutdoor": 4, "VODataOutdoor": 4}, {"UPRN": 40066958, "AddressShortDescription": "2, GORLESTON MEWS", "PostCode": "L329SP", "EEVoiceOutdoor": 4, "EEDataOutdoor": 4, "H3VoiceOutdoor": 4, "H3DataOutdoor": 4, "TFVoiceOutdoor": 4, "TFDataOutdoor": 4, "VOVoiceOutdoor": 4, "VODataOutdoor": 4}]}, "broadBandCoverage": {"PostCode": "L329SP", "Availability": [{"UPRN": 40066960, "AddressShortDescription": "4, GORLESTON MEWS", "PostCode": "L329SP", "MaxBbPredictedDown": 13, "MaxBbPredictedUp": 1, "MaxSfbbPredictedDown": 80, "MaxSfbbPredictedUp": 20, "MaxUfbbPredictedDown": 1800, "MaxUfbbPredictedUp": 220, "MaxPredictedDown": 1800, "MaxPredictedUp": 220}, {"UPRN": 40066958, "AddressShortDescription": "2, GORLESTON MEWS", "PostCode": "L329SP", "MaxBbPredictedDown": 13, "MaxBbPredictedUp": 1, "MaxSfbbPredictedDown": 80, "MaxSfbbPredictedUp": 20, "MaxUfbbPredictedDown": 1800, "MaxUfbbPredictedUp": 220, "MaxPredictedDown": 1800, "MaxPredictedUp": 220}]}, "isSuccess": true, "xPDIEndToEndId": "6e296dc9-4ea7-4483-b6bc-79758b6b5139123"}}}}}}, "400": {"description": "Invalid postcode or request data"}, "401": {"description": "Missing Authorization header or insufficient API access", "content": {"application/json": {"examples": {"Unauthorized response": {"description": "Unauthorized response", "value": {"isSuccess": false, "message": "API credits check failed, User doesn't have the required access", "code": 500}}}}}}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/networkcoverage' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"postcode\": \"L329SP\", \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"AGENT_PREMIUM_YEARLY\", \"role\": \"AGENT_PREMIUM_YEARLY\", \"X-PDI-Channel-Id\": \"PDI Data API\", \"X-PDI-Process-Name\": \"property insight\", \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/networkcoverage\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"postcode\": \"L329SP\",\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n        \"role\": \"AGENT_PREMIUM_YEARLY\",\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-Process-Name\": \"property insight\",\n        \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/networkcoverage\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"postcode\": \"L329SP\",\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n      \"role\": \"AGENT_PREMIUM_YEARLY\",\n      \"X-PDI-Channel-Id\": \"PDI Data API\",\n      \"X-PDI-Process-Name\": \"property insight\",\n      \"X-PDI-End-To-End-Id\": \"6e296dc9-4ea7-4483-b6bc-79758b6b5139\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/flood-risk/search": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Flood Risk"], "summary": "Get flood risk for a property or location", "description": "Checks the long term flood risk for a UK property or location. Returns how likely the area is to flood from rivers and the sea, and from surface water (for example heavy rain). Each risk is shown as a simple band such as Very low, Low, Medium, or High, along with the map coordinates used for the check.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| uprn | string | Unique Property Reference Number for a specific property | 100022527251 | Y* |\n| postcode | string | Valid UK postcode | HA1 1SE | Y* |\n| location | string | Property address or place name | 18 Bethecar Road, Harrow | Y* |\n| latitude | number | Latitude coordinate (must be sent with longitude) | 51.59703 | Y* |\n| longitude | number | Longitude coordinate (must be sent with latitude) | -0.034365 | Y* |\n\n\\* Provide exactly one of: uprn, postcode, location, or latitude and longitude together.", "operationId": "getFloodRisk", "requestBody": {"description": "Identify the place using exactly one of UPRN, postcode, location, or latitude and longitude, plus the standard PDI request header.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FloodRiskRequest"}, "examples": {"Flood risk request by UPRN": {"summary": "Example request using a property UPRN", "description": "Request: POST /v1/flood-risk/search", "value": {"uprn": "100022527251", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "AGENT_PREMIUM_YEARLY", "role": "AGENT_PREMIUM_YEARLY", "X-PDI-Channel-Id": "PDI digital", "X-PDI-End-To-End-Id": "0497274b-8c53-4ef8-954c-93828de38521", "X-PDI-Process-Name": "agent performance"}}}}}}, "required": true}, "responses": {"200": {"description": "Flood risk returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FloodRiskResponse"}, "examples": {"Flood risk response": {"summary": "Example flood risk result with Very low risk bands", "description": "Response: POST /v1/flood-risk/search", "value": {"code": 200, "isSuccess": true, "message": "", "data": [{"river_and_sea": {"success": true, "message": "Success", "risk_band": "Very low"}, "surface_water": {"success": true, "message": "Success", "risk_band": "Very low"}, "latitude": 51.59703, "longitude": -0.034365}], "xPDIEndToEndId": "0497274b-8c53-4ef8-954c-93828de38521"}}}}}}, "400": {"description": "Invalid or incomplete request data"}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/flood-risk/search' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"uprn\": \"100022527251\", \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"AGENT_PREMIUM_YEARLY\", \"role\": \"AGENT_PREMIUM_YEARLY\", \"X-PDI-Channel-Id\": \"PDI digital\", \"X-PDI-End-To-End-Id\": \"0497274b-8c53-4ef8-954c-93828de38521\", \"X-PDI-Process-Name\": \"agent performance\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/flood-risk/search\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"uprn\": \"100022527251\",\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n        \"role\": \"AGENT_PREMIUM_YEARLY\",\n        \"X-PDI-Channel-Id\": \"PDI digital\",\n        \"X-PDI-End-To-End-Id\": \"0497274b-8c53-4ef8-954c-93828de38521\",\n        \"X-PDI-Process-Name\": \"agent performance\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/flood-risk/search\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"uprn\": \"100022527251\",\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"AGENT_PREMIUM_YEARLY\",\n      \"role\": \"AGENT_PREMIUM_YEARLY\",\n      \"X-PDI-Channel-Id\": \"PDI digital\",\n      \"X-PDI-End-To-End-Id\": \"0497274b-8c53-4ef8-954c-93828de38521\",\n      \"X-PDI-Process-Name\": \"agent performance\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/flip/calculate": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Flip Analysis"], "summary": "Calculate property flip profit and return on investment", "description": "Estimates the potential profit and return on investment (ROI) for a UK property flip before you buy. Enter the purchase price (or estimated value), and the calculator works out acquisition costs, mortgage finance, renovation spend, selling costs, cash invested, gain or loss, and overall ROI. Optional cost sections can be left out, sensible defaults are applied automatically.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| propInsightValuation | number | Purchase price or estimated property value in GBP | 250000 | |\n| acquisitionCosts | object | Buy-side costs such as deposit, stamp duty, and legal fees | — | Y |\n| financeMortgage | object | Mortgage details such as loan amount, interest rate, and term | — | Y |\n| projectCosts | object | Renovation and other project costs | — | Y |\n| salesCosts | object | Expected sale price after refurbishment and selling fees | — | Y |", "operationId": "flipAnalysisCals", "requestBody": {"description": "Purchase price or estimated property value. Optional cost sections can be included to override defaults.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FlipAnalysisRequest"}, "examples": {"Flip analysis request": {"summary": "Example request using a £250,000 purchase price", "description": "Request: POST /v1/flip/calculate", "value": {"propInsightValuation": 250000}}}}}, "required": true}, "responses": {"200": {"description": "Flip analysis calculated successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FlipAnalysisResponse"}, "examples": {"Flip analysis response": {"summary": "Example flip result for a £250,000 purchase", "description": "Response: POST /v1/flip/calculate", "value": {"isSuccess": true, "propInsightValuation": 250000, "acquisitionCosts": {"legalFees": 1000, "downPayment": 62500, "stampDuty": 2500, "highStampDuty": 15000, "totalAcquisitionCosts": 66000}, "financeMortgage": {"loanAmount": 187500, "interestRate": 7, "loanTerm": 12, "closingCosts": 500, "totalFinanceCosts": 13625}, "projectCosts": {"renovation": 7500, "otherCosts": 0, "totalProjectCosts": 7500}, "salesCosts": {"postRefurbValuation": 300000, "agentComission": 2500, "miscelleneuous": 0, "earlyRepaymentCharges": 0, "salesProceeds": 297500}, "flipValuation": {"cashInvested": 87125, "gainOrLoss": 22875, "postRefurbValuation": 300000, "investPeriod": 12, "financeCost": 7, "returnOnInvest": 36.6}}}}}}}, "400": {"description": "Invalid or incomplete request data"}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/flip/calculate' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"propInsightValuation\": 250000}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/flip/calculate\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"propInsightValuation\": 250000\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/flip/calculate\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"propInsightValuation\": 250000\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/cashflow_yields": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "post": {"tags": ["Cash Flow"], "summary": "Calculate property cash flow and rental yield", "description": "Works out the cash flow and rental yield for a UK property investment based on the purchase price, deposit, stamp duty, mortgage, rent, and ongoing costs you provide. Returns monthly and annual figures, gross rental yield, a 10-year cash flow projection, and mortgage repayment schedules.\n\n## Request Body\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| propInsightValuation | string | Purchase price or property value in GBP | 450000 | |\n| rentalPayments | string | Expected monthly rent in GBP | 2063 | |\n| propRentalYields | string | Expected gross rental yield as a percentage | 5.5 | |\n| downPayment | string | Deposit amount in GBP (calculated from downPaymentPercentage if omitted) | 90000 | Y |\n| downPaymentPercentage | string | Deposit as a percentage of the purchase price | 20 | Y |\n| stampDuty | string | Stamp Duty Land Tax (SDLT) level or amount in GBP | Low | Y |\n| stampDutyLow | string | Lower SDLT estimate in GBP (returned by the service if omitted) | 12000 | Y |\n| stampDutyHigh | string | Higher SDLT estimate in GBP (returned by the service if omitted) | 13000 | Y |\n| renovationCost | string | One-off refurbishment or improvement cost in GBP | 15000 | Y |\n| mortgageAndValuationFees | string | Mortgage arrangement and valuation fees in GBP | 2000 | Y |\n| legalPack | string | Conveyancing and legal fees in GBP | 800 | Y |\n| mortgagePayments | string | Monthly mortgage payment in GBP (calculated if omitted) | 1200 | Y |\n| miscExpenses | string | Other monthly running costs in GBP | 200 | Y |\n| cleaningCost | string | Monthly cleaning or turnover cost in GBP | 150 | Y |\n| mortgageMonthlyRePayment | string | Monthly mortgage repayment in GBP (calculated if omitted) | 1200 | Y |\n| mortgageInterestRate | string | Annual mortgage interest rate as a percentage | 3.5 | Y |\n| mortgageType | string | Mortgage type, such as interest only or repayment | interest only | Y |\n| maintenanceCosts | string | Annual maintenance budget in GBP | 3000 | Y |\n| propertyManagement | string | Annual letting agent or management fees in GBP | 1200 | Y |\n| insurance | string | Annual landlord insurance in GBP | 800 | Y |\n| voidPeriod | string | Yearly allowance in GBP for times the property stands empty. If you leave it out, it is set to half of one month's rent. Real empty periods depend on the location, the property type and how well the property is let and managed, so send your own figure | 1032 | Y |", "operationId": "getCashFlowAndYield", "requestBody": {"description": "Property valuation, costs, rent, mortgage details, and standard PDI request header.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CashFlowRequestModel"}, "examples": {"Buy-to-let cash flow request": {"summary": "Example request for a £450,000 rental property", "description": "Request: POST /v1/cashflow_yields", "value": {"propInsightValuation": "450000", "propRentalYields": "5.5", "downPayment": "90000", "downPaymentPercentage": "20", "stampDuty": "12500", "stampDutyLow": "12000", "stampDutyHigh": "13000", "renovationCost": "15000", "mortgageAndValuationFees": "2000", "legalPack": "800", "rentalPayments": "2063", "mortgagePayments": "1200", "miscExpenses": "200", "cleaningCost": "150", "mortgageMonthlyRePayment": "1200", "mortgageInterestRate": "3.5", "mortgageType": "interest only", "maintenanceCosts": "3000", "propertyManagement": "1200", "insurance": "800", "voidPeriod": "1032", "header": {"userContext": "youremail@yourdomain.com", "userPackage": "API Enterprise 30K", "role": "API Enterprise 30K", "X-PDI-Channel-Id": "PDI Data API", "X-PDI-Process-Name": "cash flow"}}}}}}, "required": true}, "responses": {"200": {"description": "Cash flow and rental yield calculated successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CashFlowModel"}, "examples": {"Cash flow calculation response": {"summary": "Example response for a £450,000 buy-to-let property", "description": "Response: POST /v1/cashflow_yields", "value": {"isSuccess": true, "propInsightValuation": "450000", "oneOffCosts": "120300", "downPayment": "90000", "downPaymentPercentage": "20", "stampDuty": "12500", "stampDutyLow": "12000", "stampDutyHigh": "13000", "renovationCost": "15000", "mortgageAndValuationFees": "2000", "legalPack": "800", "netMonthInOut": "513", "rentalPayments": "2063", "mortgagePayments": "1200", "miscExpenses": "200", "cleaningCost": "150", "mortgageMonthlyRePayment": "1200", "mortgageInterestRate": "3.5", "mortgageType": "interest only", "maintenanceCosts": "3000", "propertyManagement": "1200", "insurance": "800", "voidPeriod": "1032", "annualCosts": "5000", "grossRentalYield": "5.5", "annualCashFlow": "1156", "cashFlowAnalysis": {"1": {"1156": "88844"}, "2": {"1189": "87655"}}, "mortageRS": {"mortgageMonthly": [{"payment": 1312.5, "principlePaid": 0, "interest": 1312.5, "outstandingLoanAmount": 360000, "numberOfPayment": 1}], "mortgageYearly": [{"payment": 15750, "principlePaid": 0, "interest": 15750, "outstandingLoanAmount": 360000, "numberOfPayment": 12}]}, "xPDIEndToEndId": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}}}}}}, "400": {"description": "Invalid or incomplete request data"}, "401": {"description": "Missing Authorization header or insufficient API credits", "content": {"application/json": {"examples": {"Unauthorized response": {"description": "Unauthorized response", "value": {"isSuccess": false, "message": "User doesn't have the required API access.", "code": 1201, "errorType": "ACCESS"}}}}}}}, "security": [{"Bearer Authentication": []}], "parameters": [{"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X POST 'https://api.propertydealsinsight.com/pdi/v1/cashflow_yields' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"propInsightValuation\": \"450000\", \"propRentalYields\": \"5.5\", \"downPayment\": \"90000\", \"downPaymentPercentage\": \"20\", \"stampDuty\": \"12500\", \"stampDutyLow\": \"12000\", \"stampDutyHigh\": \"13000\", \"renovationCost\": \"15000\", \"mortgageAndValuationFees\": \"2000\", \"legalPack\": \"800\", \"rentalPayments\": \"2063\", \"mortgagePayments\": \"1200\", \"miscExpenses\": \"200\", \"cleaningCost\": \"150\", \"mortgageMonthlyRePayment\": \"1200\", \"mortgageInterestRate\": \"3.5\", \"mortgageType\": \"interest only\", \"maintenanceCosts\": \"3000\", \"propertyManagement\": \"1200\", \"insurance\": \"800\", \"voidPeriod\": \"1032\", \"header\": {\"userContext\": \"youremail@yourdomain.com\", \"userPackage\": \"API Enterprise 30K\", \"role\": \"API Enterprise 30K\", \"X-PDI-Channel-Id\": \"PDI Data API\", \"X-PDI-Process-Name\": \"cash flow\"}}'"}, {"lang": "Python", "source": "import os, requests\n\nr = requests.post(\n    \"https://api.propertydealsinsight.com/pdi/v1/cashflow_yields\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n    json={\n      \"propInsightValuation\": \"450000\",\n      \"propRentalYields\": \"5.5\",\n      \"downPayment\": \"90000\",\n      \"downPaymentPercentage\": \"20\",\n      \"stampDuty\": \"12500\",\n      \"stampDutyLow\": \"12000\",\n      \"stampDutyHigh\": \"13000\",\n      \"renovationCost\": \"15000\",\n      \"mortgageAndValuationFees\": \"2000\",\n      \"legalPack\": \"800\",\n      \"rentalPayments\": \"2063\",\n      \"mortgagePayments\": \"1200\",\n      \"miscExpenses\": \"200\",\n      \"cleaningCost\": \"150\",\n      \"mortgageMonthlyRePayment\": \"1200\",\n      \"mortgageInterestRate\": \"3.5\",\n      \"mortgageType\": \"interest only\",\n      \"maintenanceCosts\": \"3000\",\n      \"propertyManagement\": \"1200\",\n      \"insurance\": \"800\",\n      \"voidPeriod\": \"1032\",\n      \"header\": {\n        \"userContext\": \"youremail@yourdomain.com\",\n        \"userPackage\": \"API Enterprise 30K\",\n        \"role\": \"API Enterprise 30K\",\n        \"X-PDI-Channel-Id\": \"PDI Data API\",\n        \"X-PDI-Process-Name\": \"cash flow\"\n      }\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/cashflow_yields\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    \"propInsightValuation\": \"450000\",\n    \"propRentalYields\": \"5.5\",\n    \"downPayment\": \"90000\",\n    \"downPaymentPercentage\": \"20\",\n    \"stampDuty\": \"12500\",\n    \"stampDutyLow\": \"12000\",\n    \"stampDutyHigh\": \"13000\",\n    \"renovationCost\": \"15000\",\n    \"mortgageAndValuationFees\": \"2000\",\n    \"legalPack\": \"800\",\n    \"rentalPayments\": \"2063\",\n    \"mortgagePayments\": \"1200\",\n    \"miscExpenses\": \"200\",\n    \"cleaningCost\": \"150\",\n    \"mortgageMonthlyRePayment\": \"1200\",\n    \"mortgageInterestRate\": \"3.5\",\n    \"mortgageType\": \"interest only\",\n    \"maintenanceCosts\": \"3000\",\n    \"propertyManagement\": \"1200\",\n    \"insurance\": \"800\",\n    \"voidPeriod\": \"1032\",\n    \"header\": {\n      \"userContext\": \"youremail@yourdomain.com\",\n      \"userPackage\": \"API Enterprise 30K\",\n      \"role\": \"API Enterprise 30K\",\n      \"X-PDI-Channel-Id\": \"PDI Data API\",\n      \"X-PDI-Process-Name\": \"cash flow\"\n    }\n  }),\n});\nconsole.log(await r.json());"}]}}, "/v1/pdiproperty/data/uprn": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["Property Data Object"], "summary": "Get property data by UPRN", "description": "Returns a consolidated property data object for a UK property identified by UPRN (Unique Property Reference Number). Resolves the address from UPRN, then returns Land Registry, EPC, council tax, and network coverage data where available.\n\n## Query parameters\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| uprn | string | Unique Property Reference Number | 100021300679 | |\n\n## Example request\n\n`GET /v1/pdiproperty/data/uprn?uprn=100021300679`\n\n## Response sections\n\nThe response combines property data from multiple sources where available.\n\n### 1. propertyObjectEpc\n\n| Field | Description |\n|-------|-------------|\n| buildingReferenceNumber | EPC building reference number |\n| currentEnergyRating | Current energy rating (A–G) |\n| potentialEnergyRating | Potential energy rating (A–G) |\n| currentEnergyEfficiency | Current energy efficiency score |\n| potentialEnergyEfficiency | Potential energy efficiency score |\n| propertyType | Property type from EPC register |\n| builtForm | Built form (e.g. detached, mid-terrace) |\n| inspectionDate | Date of the EPC inspection |\n| lodgementDatetime | Date and time the EPC was lodged |\n| totalFloorArea | Total floor area (sqm) |\n| numberHabitableRooms | Number of habitable rooms |\n| address | Property address |\n| postcode | Property postcode |\n| latitude | Latitude coordinate |\n| longitude | Longitude coordinate |\n| uprn | Unique Property Reference Number |\n\n### 2. propertyObjectPpd\n\n| Field | Description |\n|-------|-------------|\n| price | Land Registry sold price |\n| dateOfTrn | Date of transaction |\n| postcode | Property postcode |\n| duration | Tenure (Freehold/Leasehold) |\n| address | Property address |\n| ppdCtgType | Property category (e.g. terraced, flat) |\n\n### 3. propertyObjectUprn\n\n| Field | Description |\n|-------|-------------|\n| uprn | Unique Property Reference Number |\n| latitude | Latitude coordinate |\n| longitude | Longitude coordinate |\n\n### 4. broadbandCoverageResponse\n\nOfcom broadband availability including predicted download and upload speeds.\n\n### 5. mobileCoverageResponse\n\nOfcom mobile network coverage for voice and data (EE, Three, O2, Vodafone).\n\n### 6. councilTaxResponse\n\nCouncil tax band and local authority information for the property.\n\n**Permissions required:** `CLIENT` or `PDI_Valuation_access`", "operationId": "getPropertyDataByUprn", "parameters": [{"name": "userContext", "in": "header", "description": "Email address of the API user", "required": true, "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}, {"name": "uprn", "in": "query", "description": "Unique Property Reference Number", "required": true, "schema": {"type": "string"}, "example": 100021300679}], "responses": {"200": {"description": "Property data returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PropertyObject"}}}}, "400": {"description": "UPRN not found or insufficient API credits"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/uprn?uprn=100021300679' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/uprn?uprn=100021300679\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/uprn?uprn=100021300679\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/pdiproperty/data/address": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["Property Data Object"], "summary": "Get property data by address", "description": "Returns a consolidated property data object for a specific UK property address. Includes Land Registry sold prices, EPC records, UPRN and coordinates, council tax band, and broadband and mobile coverage where available.\n\n## Query parameters\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| address | string | Full or partial UK property address | 78, Durley Avenue | |\n| postcode | string | Valid UK postcode for the address | HA5 1JH | |\n\n## Example request\n\n`GET /v1/pdiproperty/data/address?postcode=HA5 1JH&address=78, Durley Avenue`\n\n## Response sections\n\nThe response combines property data from multiple sources where available.\n\n### 1. propertyObjectEpc\n\n| Field | Description |\n|-------|-------------|\n| buildingReferenceNumber | EPC building reference number |\n| currentEnergyRating | Current energy rating (A–G) |\n| potentialEnergyRating | Potential energy rating (A–G) |\n| currentEnergyEfficiency | Current energy efficiency score |\n| potentialEnergyEfficiency | Potential energy efficiency score |\n| propertyType | Property type from EPC register |\n| builtForm | Built form (e.g. detached, mid-terrace) |\n| inspectionDate | Date of the EPC inspection |\n| lodgementDatetime | Date and time the EPC was lodged |\n| totalFloorArea | Total floor area (sqm) |\n| numberHabitableRooms | Number of habitable rooms |\n| address | Property address |\n| postcode | Property postcode |\n| latitude | Latitude coordinate |\n| longitude | Longitude coordinate |\n| uprn | Unique Property Reference Number |\n\n### 2. propertyObjectPpd\n\n| Field | Description |\n|-------|-------------|\n| price | Land Registry sold price |\n| dateOfTrn | Date of transaction |\n| postcode | Property postcode |\n| duration | Tenure (Freehold/Leasehold) |\n| address | Property address |\n| ppdCtgType | Property category (e.g. terraced, flat) |\n\n### 3. propertyObjectUprn\n\n| Field | Description |\n|-------|-------------|\n| uprn | Unique Property Reference Number |\n| latitude | Latitude coordinate |\n| longitude | Longitude coordinate |\n\n### 4. broadbandCoverageResponse\n\nOfcom broadband availability including predicted download and upload speeds.\n\n### 5. mobileCoverageResponse\n\nOfcom mobile network coverage for voice and data (EE, Three, O2, Vodafone).\n\n### 6. councilTaxResponse\n\nCouncil tax band and local authority information for the property.\n\n**Permissions required:** `CLIENT` or `PDI_Valuation_access`", "operationId": "getPropertyDataByAddress", "parameters": [{"name": "userContext", "in": "header", "description": "Email address of the API user", "required": true, "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}, {"name": "postcode", "in": "query", "description": "Valid UK postcode for the address", "required": true, "schema": {"type": "string"}, "example": "HA5 1JH"}, {"name": "address", "in": "query", "description": "Full or partial UK property address", "required": true, "schema": {"type": "string"}, "example": "78, Durley Avenue"}], "responses": {"200": {"description": "Property data returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PropertyObject"}}}}, "400": {"description": "Invalid postcode or insufficient API credits"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/address?postcode=HA5 1JH&address=78, Durley Avenue' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/address?postcode=HA5 1JH&address=78, Durley Avenue\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/pdiproperty/data/address?postcode=HA5 1JH&address=78, Durley Avenue\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/onmarket/getFullAddress": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["On Market"], "summary": "Get full address for an on-market listing", "description": "Resolves the full UK address and last sold details for an on-market property listing. Pass a portal listing URL. Returns matched address candidates with confidence scoring against sold price, sold year, and property type.\n\n## Query Parameters\n\n| Parameter | Type | Description | Example | Optional |\n|-----------|------|-------------|---------|----------|\n| URL | string | Portal listing URL (Rightmove or Zoopla, for sale or to rent) | https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY | |\n\n## Example URLs\n\n- https://www.rightmove.co.uk/properties/147196397\n- https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY\n- https://www.rightmove.co.uk/properties/167393804#/?channel=RES_LET\n- https://www.zoopla.co.uk/for-sale/details/73891645/\n- https://www.zoopla.co.uk/to-rent/details/73891718/", "operationId": "getFullAddress", "parameters": [{"name": "URL", "in": "query", "description": "Portal listing URL (Rightmove or Zoopla). Used when provided; otherwise propertyIdentifier is used.", "required": false, "schema": {"type": "string"}, "example": "https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY"}, {"name": "propertyIdentifier", "in": "query", "description": "Alternative lookup key when URL is omitted. Supports PDI-prefixed identifiers.", "required": false, "schema": {"type": "string"}}, {"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "responses": {"200": {"description": "Full address and sold details returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OnMarketPhpWrapperFullAddress"}, "examples": {"Full address response": {"summary": "Example address match for a Rightmove listing", "description": "Response: GET /v1/onmarket/getFullAddress?URL=https://www.rightmove.co.uk/properties/90268878", "value": {"isSuccess": true, "userPackage": {}, "data": [{"confidence": {"level": "MEDIUM", "matching": {"propertyType": false, "soldYear": true, "soldPrice": true}}, "address": "12, Grosvenor Park Road, London E17 9PG", "propertyType": "House", "soldYear": "2016", "soldPrice": "725000"}], "listing_for": "for-sale"}}}}}}, "400": {"description": "Invalid or missing URL / property identifier"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/onmarket/getFullAddress?URL=https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY&propertyIdentifier=...' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/onmarket/getFullAddress?URL=https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY&propertyIdentifier=...\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/onmarket/getFullAddress?URL=https://www.rightmove.co.uk/properties/90268878#/?channel=RES_BUY&propertyIdentifier=...\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/autocomplete/postcode/{postcode}": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["Auto Complete"], "summary": "Suggest full UK postcodes as you type", "description": "Returns matching UK postcodes that start with text you enter (for example, typing \"SW1\" may suggest \"SW1A 1AA\"). Use this to provide autocomplete suggestions for postcodes as the user types.", "operationId": "autoCompletePostCode", "parameters": [{"name": "postcode", "in": "path", "description": "Partial UK postcode prefix to search. Matches postcodes that start with this text Do not include spaces unless you are searching from that point onward.", "required": true, "schema": {"type": "string"}, "example": "HA1"}, {"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "responses": {"200": {"description": "Matching postcodes returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PostcodeAutoCompleteResponse"}, "examples": {"Postcode suggestions": {"summary": "Example response for partial postcode \"E17\"", "description": "Request: GET /v1/autocomplete/postcode/E17", "value": {"postCode": ["E17 0AA", "E17 0AG", "E17 0AR", "E17 0BR", "E17 0EG"]}}}}}}, "400": {"description": "Invalid or missing postcode search text"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/autocomplete/postcode/{postcode}' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/autocomplete/postcode/{postcode}\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/autocomplete/postcode/{postcode}\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/autocomplete/outcode/{outcode}": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["Auto Complete"], "summary": "Suggest UK outcodes as you type", "description": "Returns matching outcodes (the first part of a UK postcode, such as \"M1\" or \"SW12\"). Use this to provide autocomplete suggestions for outcodes as the user types.", "operationId": "autoCompleteOutCode", "parameters": [{"name": "outcode", "in": "path", "description": "Partial UK outcode prefix to search. Matches areas that start with this text (for example, \"SW1\", \"M1\", or \"HA1\").", "required": true, "schema": {"type": "string"}, "example": "SW1"}, {"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "responses": {"200": {"description": "Matching postcode areas returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PostcodeAutoCompleteResponse"}, "examples": {"Outcode suggestions": {"summary": "Example response for partial outcode \"SW1\"", "description": "Request: GET /v1/autocomplete/outcode/SW1", "value": {"postCode": ["SW10", "SW11", "SW12", "SW13", "SW1V", "SW1Y"]}}}}}}, "400": {"description": "Invalid or missing outcode search text"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/autocomplete/outcode/{outcode}' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/autocomplete/outcode/{outcode}\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/autocomplete/outcode/{outcode}\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}, "/v1/autocomplete/agentname/{agentname}": {"servers": [{"url": "https://api.propertydealsinsight.com/pdi"}], "get": {"tags": ["Auto Complete"], "summary": "Suggest estate agent names as you type", "description": "Returns estate agent names that match what you enter. Use this to provide autocomplete suggestions for agent names as the user types.", "operationId": "autoCompleteAgentName", "parameters": [{"name": "agentname", "in": "path", "description": "Partial estate agent name to search. Matches agent names that starts with this text in the name (case-insensitive in practice for most searches).", "required": true, "schema": {"type": "string"}, "example": "Fox"}, {"name": "userContext", "in": "header", "required": true, "description": "Your PDI account email address. Required with the Bearer token on every request.", "schema": {"type": "string"}, "example": "youremail@yourdomain.com"}], "responses": {"200": {"description": "Matching estate agent names returned successfully", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AgentNameAutoCompleteResponse"}, "examples": {"Agent name suggestions": {"summary": "Example response for partial agent name \"Foxtons\"", "description": "Request: GET /v1/autocomplete/agentname/Foxtons", "value": {"agentNames": ["Foxtons", "Foxtons - Harrow", "Foxtons - Pinner", "Foxtons - Southgate", "Foxtons Estate Agents"]}}}}}}, "400": {"description": "Invalid or missing agent name search text"}}, "security": [{"Bearer Authentication": []}], "x-codeSamples": [{"lang": "cURL", "label": "cURL", "source": "curl -X GET 'https://api.propertydealsinsight.com/pdi/v1/autocomplete/agentname/{agentname}' \\\n  -H \"Authorization: Bearer $PDI_TOKEN\" \\\n  -H \"userContext: youremail@yourdomain.com\""}, {"lang": "Python", "source": "import os, requests\n\nr = requests.get(\n    \"https://api.propertydealsinsight.com/pdi/v1/autocomplete/agentname/{agentname}\",\n    headers={\n        \"Authorization\": \"Bearer \" + os.environ[\"PDI_TOKEN\"],\n        \"userContext\": \"youremail@yourdomain.com\",\n    },\n)\nprint(r.json())"}, {"lang": "JavaScript", "source": "const r = await fetch(\"https://api.propertydealsinsight.com/pdi/v1/autocomplete/agentname/{agentname}\", {\n  method: \"GET\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.PDI_TOKEN}`,\n    \"userContext\": \"youremail@yourdomain.com\",\n  },\n});\nconsole.log(await r.json());"}]}}}, "components": {"schemas": {"CampaignSubmissionModel": {"properties": {"campaignName": {"type": "string", "title": "Campaignname"}, "preferences": {"$ref": "#/components/schemas/PreferencesModel"}, "recipients": {"items": {"$ref": "#/components/schemas/RecipientModel"}, "type": "array", "title": "Recipients"}}, "type": "object", "required": ["campaignName", "preferences", "recipients"], "title": "CampaignSubmissionModel"}, "E_LetterType": {"type": "string", "enum": ["A4", "A5"], "title": "E_LetterType"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "LetterModel": {"properties": {"letterType": {"$ref": "#/components/schemas/E_LetterType", "description": "The type of letter to be sent", "examples": ["A4", "A5"]}, "primaryColour": {"type": "string", "title": "Primarycolour"}, "secondaryColour": {"type": "string", "title": "Secondarycolour"}, "qrCode": {"anyOf": [{"$ref": "#/components/schemas/QRCodeModel"}, {"type": "null"}]}, "designTemplate": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Designtemplate"}, "descriptionTemplate": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Descriptiontemplate"}, "heading": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Heading"}, "body": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Body"}, "closingSalutation": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Closingsalutation"}}, "type": "object", "required": ["letterType", "primaryColour", "secondaryColour"], "title": "LetterModel"}, "ListingTypeEnum": {"type": "string", "enum": ["SALE", "RENT"], "title": "ListingTypeEnum"}, "MapType": {"type": "string", "enum": ["Street", "Satellite", "Roadmap"], "title": "MapType"}, "MarketProspectsStatusEnum": {"type": "string", "enum": ["NEW_INSTRUCTIONS", "FALL_THROUGHS", "UNDER_OFFER", "PRICE_REDUCTIONS", "WITHDRAWALS", "SUSPECTED_SOLD"], "title": "MarketProspectsStatusEnum", "description": "Enum representing different market prospect statuses for properties."}, "PAddressSelector": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "FY1 2EG"}}, "type": "object", "required": ["postcode"], "title": "PAddressSelector", "examples": [{"postcode": "FY1 2EG"}]}, "PAgentListings": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "agentName": {"type": "string", "title": "Agentname", "example": "Barrows & Forrester"}, "agentBranch": {"type": "string", "title": "Agentbranch", "example": "19 Kenyon Forge, Kenyon Street, Birmingham"}}, "type": "object", "required": ["agentName", "agentBranch"], "title": "PAgentListings"}, "PAgentPerformance": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "B1"}}, "type": "object", "required": ["outcode"], "title": "PAgentPerformance"}, "PAgentWiseStock": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "B1"}, "forDays": {"type": "integer", "maximum": 365, "minimum": 7, "title": "for days", "description": "get no. of stocks for provided days.", "default": 182, "example": 182}}, "type": "object", "required": ["outcode"], "title": "PAgentWiseStock"}, "PAppraisalReport": {"properties": {"address": {"type": "string", "maxLength": 100, "minLength": 5, "title": "A valid UK Address format which our system supports", "example": "Flat 2, 71 Knutsford Road"}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "WA4 1AB"}, "propertyType": {"anyOf": [{"$ref": "#/components/schemas/routers__PdiAppraisal__settings__PropertyType"}, {"type": "null"}], "example": "Flat"}, "internalArea": {"anyOf": [{"type": "integer", "maximum": 5000, "minimum": 5}, {"type": "null"}], "title": "Internal Area", "description": "internal property area", "example": 70}, "bedrooms": {"anyOf": [{"type": "integer", "maximum": 15, "minimum": 0}, {"type": "null"}], "title": "number of bedrooms", "description": "number of bedrooms", "example": 2}, "bathrooms": {"type": "integer", "maximum": 10, "minimum": 0, "title": "number of bathrooms", "description": "number of bathrooms", "default": 0, "example": 1}, "receptions": {"type": "integer", "maximum": 4, "minimum": 0, "title": "number of receptions", "description": "number of receptions", "default": 0, "example": 0}, "reportType": {"anyOf": [{"$ref": "#/components/schemas/ReportType"}, {"type": "null"}]}, "downloadPDF": {"type": "boolean", "title": "Download PDF", "description": "make this True if you want PDF link", "default": false, "example": false}, "mapType": {"$ref": "#/components/schemas/MapType", "title": "Map Type", "description": "Type of map to show on the front page of the report", "default": "Roadmap", "example": "Roadmap"}, "pdiDataEnrichment": {"type": "boolean", "title": "PDI Data Enrichment", "description": "make this True if you want to enrich the data with PDI data", "default": false, "example": false}}, "type": "object", "required": ["address", "postcode"], "title": "PAppraisalReport"}, "PAppraisalReportUPRN": {"properties": {"uprn": {"type": "string", "title": "Unique Property Reference Number", "example": "10090372040"}, "propertyType": {"anyOf": [{"$ref": "#/components/schemas/routers__PdiAppraisal__settings__PropertyType"}, {"type": "null"}], "example": "Flat"}, "internalArea": {"anyOf": [{"type": "integer", "maximum": 5000, "minimum": 5}, {"type": "null"}], "title": "Internal Area", "description": "internal property area", "example": 70}, "bedrooms": {"anyOf": [{"type": "integer", "maximum": 15, "minimum": 0}, {"type": "null"}], "title": "number of bedrooms", "description": "number of bedrooms", "example": 2}, "bathrooms": {"type": "integer", "maximum": 10, "minimum": 0, "title": "number of bathrooms", "description": "number of bathrooms", "default": 0, "example": 1}, "receptions": {"type": "integer", "maximum": 4, "minimum": 0, "title": "number of receptions", "description": "number of receptions", "default": 0, "example": 0}, "reportType": {"anyOf": [{"$ref": "#/components/schemas/ReportType"}, {"type": "null"}]}, "downloadPDF": {"type": "boolean", "title": "Download PDF", "description": "make this True if you want PDF link", "default": false, "example": false}, "mapType": {"$ref": "#/components/schemas/MapType", "title": "Map Type", "description": "Type of map to show on the front page of the report", "default": "Roadmap"}, "pdiDataEnrichment": {"type": "boolean", "title": "PDI Data Enrichment", "description": "make this True if you want to enrich the data with PDI data", "default": false, "example": false}}, "type": "object", "required": ["uprn"], "title": "PAppraisalReportUPRN"}, "PAuctionDeals": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "postcode": {"anyOf": [{"type": "string"}, {"type": "null"}], "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "default": "", "example": "E16 2QU"}, "location": {"anyOf": [{"type": "string", "maxLength": 100, "minLength": 2}, {"type": "null"}], "title": "Location", "description": "A valid UK location name", "example": "London"}, "radius": {"type": "number", "maximum": 10, "minimum": 0.25, "title": "radius in miles", "description": "radius in miles", "default": 3, "example": 3}, "property_type": {"$ref": "#/components/schemas/PropertyTypeEnum", "default": "ALL", "example": "HOUSES"}, "min_price": {"anyOf": [{"type": "integer", "maximum": 50000000, "minimum": 0}, {"type": "null"}], "title": "Minimum Price", "description": "Minimum property price in GBP", "example": 100000}, "max_price": {"anyOf": [{"type": "integer", "maximum": 50000000, "minimum": 0}, {"type": "null"}], "title": "Maximum Price", "description": "Maximum property price in GBP", "example": 1000000}}, "type": "object", "title": "PAuctionDeals"}, "PCouncilTax": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "address": {"anyOf": [{"type": "string", "maxLength": 500, "minLength": 3}, {"type": "null"}], "title": "Address", "description": "Property address", "example": "10 Downing Street"}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "SW1A 2AA"}}, "type": "object", "required": ["postcode"], "title": "PCouncilTax", "description": "Request model for Council Tax lookup"}, "PDIStandardResponse": {"properties": {"code": {"type": "integer", "title": "Code"}, "isSuccess": {"type": "boolean", "title": "Issuccess"}, "message": {"type": "string", "title": "Message"}, "limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Limit"}, "pageNumber": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Pagenumber"}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Size"}, "totalElements": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Totalelements"}, "totalPages": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Totalpages"}, "data": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Data"}, "metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Metadata"}}, "type": "object", "required": ["code", "isSuccess", "message"], "title": "PDIStandardResponse"}, "PListOfAgents": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 10, "example": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "B1"}}, "type": "object", "required": ["outcode"], "title": "PListOfAgents"}, "PLookupAddressByAddressAndPostcode": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "address": {"type": "string", "title": "Address", "example": "8 Wall Street, Blackpool"}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "FY1 2EG"}, "debug": {"type": "boolean", "title": "Debug", "description": "When true, include internal matching details and alternative candidates in metadata. Ignored unless config DEBUG is true.", "default": false, "example": false, "include_in_schema": false}, "include": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Include", "description": "Optional response blocks: 'two_field_address', 'match_code'. Omit for the standard response. Unknown names are ignored.", "include_in_schema": false}}, "type": "object", "required": ["address", "postcode"], "title": "PLookupAddressByAddressAndPostcode", "examples": [{"address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG"}]}, "PMarketingTimeByAgent": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "region": {"type": "string", "maxLength": 2, "minLength": 1, "title": "provide UK region", "example": "HA"}}, "type": "object", "required": ["region"], "title": "PMarketingTimeByAgent"}, "PPlanningApplication": {"properties": {"limit": {"type": "integer", "maximum": 10000, "minimum": 1, "title": "Limit the number of results per page", "default": 100, "example": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "postcode": {"anyOf": [{"type": "string"}, {"type": "null"}], "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "E16 2QU"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude", "example": 52.4862}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude", "example": -1.8904}, "location": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Location", "example": "London"}, "radius": {"anyOf": [{"type": "number", "maximum": 5000, "minimum": 0.01}, {"type": "null"}], "title": "Radius in meter", "default": 1000, "example": 50}}, "type": "object", "title": "PPlanningApplication"}, "PPlanningApplicationUPRN": {"properties": {"uprn": {"type": "string", "title": "Uprn", "example": "10000000269"}, "no_of_nearest_small_applications": {"type": "integer", "title": "No Of Nearest Small Applications", "default": 20, "example": 10}, "no_of_nearest_medium_applications": {"type": "integer", "title": "No Of Nearest Medium Applications", "default": 3, "example": 3}, "no_of_nearest_large_applications": {"type": "integer", "title": "No Of Nearest Large Applications", "default": 2, "example": 2}}, "type": "object", "required": ["uprn"], "title": "PPlanningApplicationUPRN"}, "PPropertyEnrichment": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "uprn": {"type": "string", "maxLength": 20, "minLength": 1, "pattern": "^\\d+$", "title": "Uprn", "description": "Unique Property Reference Number", "example": "100010837358"}}, "type": "object", "required": ["uprn"], "title": "PPropertyEnrichment", "examples": [{"uprn": "100010837358"}]}, "PPropertyEnrichmentByAddress": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "address": {"type": "string", "title": "Address", "example": "8 Wall Street, Blackpool"}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "FY1 2EG"}, "include": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Include", "description": "Optional response blocks: 'two_field_address', 'match_code'. Omit for the standard response. Unknown names are ignored.", "include_in_schema": false}}, "type": "object", "required": ["address", "postcode"], "title": "PPropertyEnrichmentByAddress", "examples": [{"address": "8 Wall Street, Blackpool", "postcode": "FY1 2EG"}]}, "PPropertyOwnershipCompany": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "BN14"}}, "type": "object", "required": ["outcode"], "title": "PPropertyOwnershipCompany"}, "PPropertyTypeAgentWise": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "region": {"type": "string", "maxLength": 2, "minLength": 1, "title": "provide UK region", "example": "EC"}}, "type": "object", "required": ["region"], "title": "PPropertyTypeAgentWise"}, "PdtfPropertyPack": {"properties": {"transactionId": {"type": "string", "title": "Transactionid"}, "schemaVersion": {"type": "string", "title": "Schemaversion", "default": "3.5.0"}, "propertyPack": {"additionalProperties": true, "type": "object", "title": "Propertypack", "description": "PDTF v3 propertyPack object.  Constructed from PDI Appraisal data and shaped to be valid against `pdtf-transaction.json` with the `baspiV5` and `pdi-valuation` overlays applied.", "examples": [{"address": {"line1": "Flat 2, 71 Knutsford Road", "postcode": "WA4 1AB", "town": "Warrington"}, "dimensions": {"internalAreaSqM": 70}, "energyEfficiency": {"epcRating": "C"}, "priceInformation": {"price": 175000, "priceQualifier": "Guide Price"}, "propertyType": "Flat", "rooms": {"bathrooms": 1, "bedrooms": 2, "receptions": 1}, "uprn": "100022100237", "valuation": {"avm": 178000, "avmConfidence": 0.86, "avmRangeHigh": 186000, "avmRangeLow": 170000, "modelVersion": "pdi-avm-2026.04", "rentalPcm": 875, "yieldGross": 0.059}}]}, "verifiedClaims": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Verifiedclaims", "description": "Per-field PDTF verified claims providing provenance."}}, "type": "object", "required": ["transactionId", "propertyPack"], "title": "PdtfPropertyPack", "description": "A *minimal* PDTF v3 transaction document covering the data we attest to."}, "PreferencesModel": {"properties": {"sender": {"$ref": "#/components/schemas/SenderModel"}, "letter": {"$ref": "#/components/schemas/LetterModel"}}, "type": "object", "required": ["sender", "letter"], "title": "PreferencesModel"}, "PropertyTypeEnum": {"type": "string", "enum": ["ALL", "FLATS", "HOUSES", "LAND"], "title": "PropertyTypeEnum"}, "QRCodeModel": {"properties": {"url": {"type": "string", "title": "Url"}, "image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Image"}, "action": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Action"}}, "type": "object", "required": ["url"], "title": "QRCodeModel"}, "RecipientModel": {"properties": {"name": {"type": "string", "title": "Name"}, "address": {"type": "string", "title": "Address"}, "town": {"type": "string", "title": "Town"}, "postcode": {"type": "string", "title": "Postcode"}, "country": {"type": "string", "title": "Country"}, "variables": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Variables"}}, "type": "object", "required": ["name", "address", "town", "postcode", "country"], "title": "RecipientModel"}, "ReportType": {"type": "string", "enum": ["Default", "Sale", "Rent", "Buy"], "title": "ReportType"}, "RequestWithUPRN": {"properties": {"uprn": {"type": "string", "title": "Uprn", "description": "Unique Property Reference Number from Ordnance Survey AddressBase.", "examples": ["100022100237"]}, "propertyType": {"anyOf": [{"$ref": "#/components/schemas/routers__PDTF__pdtf_schemas__PropertyType"}, {"type": "null"}]}, "internalAreaSqM": {"anyOf": [{"type": "integer", "maximum": 5000, "minimum": 5}, {"type": "null"}], "title": "Internalareasqm"}, "bedrooms": {"anyOf": [{"type": "integer", "maximum": 15, "minimum": 0}, {"type": "null"}], "title": "Bedrooms"}, "bathrooms": {"anyOf": [{"type": "integer", "maximum": 10, "minimum": 0}, {"type": "null"}], "title": "Bathrooms"}, "receptions": {"anyOf": [{"type": "integer", "maximum": 10, "minimum": 0}, {"type": "null"}], "title": "Receptions"}, "downloadPDF": {"type": "boolean", "title": "Downloadpdf", "default": false}}, "type": "object", "required": ["uprn"], "title": "RequestWithUPRN"}, "SenderModel": {"properties": {"name": {"type": "string", "title": "Name"}, "companyName": {"type": "string", "title": "Companyname"}, "companyAddress": {"type": "string", "title": "Companyaddress"}, "email": {"type": "string", "format": "email", "title": "Email"}, "phone": {"type": "string", "title": "Phone"}, "logo": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Logo"}}, "type": "object", "required": ["name", "companyName", "companyAddress", "email", "phone"], "title": "SenderModel"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "WaterSupplierLookupRequest": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "postcode": {"type": "string", "maxLength": 9, "minLength": 6, "title": "a valid UK postcode", "example": "HA1 1SE"}}, "type": "object", "required": ["postcode"], "title": "WaterSupplierLookupRequest", "description": "Request model for water supplier lookup by postcode."}, "routers__PDIMarketIntelligence__get_single_listing__PInfo": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "identifier": {"type": "string", "title": "Listing Identifier", "description": "Listing identifier", "example": "PDI-RM01-159269036"}}, "type": "object", "required": ["identifier"], "title": "PInfo"}, "routers__PDIMarketIntelligence__market_prospects__PInfo": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "E16"}, "type": {"$ref": "#/components/schemas/ListingTypeEnum", "title": "Listing Type", "description": "Type of the listing"}, "withFullAddressOnly": {"type": "boolean", "title": "With Full Address Only", "description": "Filter listings to include only those with a complete property address", "default": false}}, "type": "object", "required": ["outcode"], "title": "PInfo"}, "routers__PDIMarketIntelligence__market_prospects_status__PInfo": {"properties": {"limit": {"type": "integer", "maximum": 100, "minimum": 1, "title": "Limit", "description": "The maximum number of results to return.", "default": 20}, "pageNumber": {"type": "integer", "minimum": 1, "title": "Pagenumber", "description": "Page number", "default": 1}, "outcode": {"type": "string", "maxLength": 4, "minLength": 2, "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?", "title": "Outcode", "description": "provide UK outcode", "example": "E16"}, "type": {"$ref": "#/components/schemas/ListingTypeEnum", "title": "Listing Type", "description": "Type of the listing"}, "withFullAddressOnly": {"type": "boolean", "title": "With Full Address Only", "description": "Filter listings to include only those with a complete property address", "default": false}, "status": {"$ref": "#/components/schemas/MarketProspectsStatusEnum", "title": "Status", "description": "Status of the listing"}}, "type": "object", "required": ["outcode", "status"], "title": "PInfo"}, "routers__PDTF__pdtf_schemas__PropertyType": {"type": "string", "enum": ["Detached", "Semi-Detached", "Terraced", "Flat", "Bungalow", "Other"], "title": "PropertyType"}, "routers__PdiAppraisal__settings__PropertyType": {"type": "string", "enum": ["Detached", "Semi-Detached", "Terraced", "Flat"], "title": "PropertyType"}, "Header": {"required": ["X-PDI-Channel-Id", "X-PDI-Process-Name", "role", "userContext", "userPackage"], "type": "object", "properties": {"userContext": {"type": "string", "description": "logged in user email address", "example": "youremail@yourdomain.com"}, "userPackage": {"type": "string", "description": "userPackage", "example": "API Enterprise 30K"}, "role": {"type": "string", "description": "role", "example": "API Enterprise 30K"}, "X-PDI-Channel-Id": {"type": "string", "description": "X-Pdi-Channel-Id", "example": "PDI Data API"}, "X-PDI-Process-Name": {"type": "string", "description": "X_PDI_Process_Name", "example": "property insight"}, "X-PDI-API-Name": {"type": "string", "description": "X_PDI_API_Name", "example": "api name"}, "X-PDI-End-To-End-Id": {"type": "string", "description": "Optional. Generate a new UUID for every request; it traces the call and lets you fetch that request's stored result again. Never reuse an id for a different request: a repeated id returns the result already stored under it, not a new one. Omit it if you need neither.", "example": "6e296dc9-4ea7-4483-b6bc-79758b6b5139"}, "X-PDI-RequestId": {"type": "string", "description": "random RequestId", "example": "43555"}}, "description": "Header parameters"}, "WaterSupplierRequest": {"required": ["postcode"], "type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "postcode": {"type": "string", "description": "Postcode", "example": "BT1 1GJ"}}}, "Datum": {"type": "object", "properties": {"address": {"type": "string", "description": "address", "example": "78 DURLEY AVENUE, Pinner, Middx, HA5 1JH"}, "band": {"type": "string", "description": "band", "example": "E"}, "localAuthority": {"type": "string", "description": "localAuthority", "example": "Harrow"}, "detailLink": {"type": "string", "description": "detailLink", "example": "https://www.tax.service.gov.uk/check-council-tax-band/property/96262065"}, "taxAmount": {"type": "string", "description": "taxAmount", "example": "2131"}, "localAuthorityReferenceNumber": {"type": "string", "description": "localAuthorityReferenceNumber", "example": "1114100780000"}, "improvementIndicator": {"type": "string", "description": "improvementIndicator", "example": "No"}, "WithEffectFrom": {"type": "string", "description": "WithEffectFrom", "example": "01/04/2023"}, "mixedUseProperty": {"type": "string", "description": "mixedUseProperty", "example": "No"}, "courtCode": {"type": "string", "description": "courtCode", "example": "None"}}, "description": "An array of council tax data objects, including the council tax band, local authority information, and additional details for the property."}, "WaterSupplierResponse": {"type": "object", "properties": {"code": {"type": "integer", "format": "int32", "example": 200}, "isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "limit": {"type": "integer", "description": "Number of items per page", "format": "int32", "example": 20}, "pageNumber": {"type": "integer", "description": "Current page number", "format": "int32", "example": 1}, "size": {"type": "integer", "description": "Number of items in current page", "format": "int32", "example": 1}, "totalElements": {"type": "integer", "description": "Total number of elements", "format": "int32", "example": 1}, "totalPages": {"type": "integer", "description": "Total number of pages", "format": "int32", "example": 1}, "data": {"type": "array", "description": "An array of water supplier data objects", "items": {"$ref": "#/components/schemas/Datum"}}, "metadata": {"type": "object", "description": "Additional metadata"}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "PDI - Water Supplier Response"}, "EvaluationRequestModel": {"required": ["postcode", "town_city"], "type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "postcode": {"type": "string", "description": "Postcode", "example": "HA1 1NS"}, "town_city": {"type": "string", "description": "Town", "example": "Harrow"}, "address": {"type": "string", "description": "Address of the property", "example": "123 Main St"}, "district": {"type": "string", "description": "District", "example": "Central"}, "bedrooms": {"type": "integer", "description": "Number of bedrooms", "format": "int32", "example": 3}, "receptions": {"type": "integer", "description": "Number of reception rooms", "format": "int32", "example": 2}, "prop_type": {"type": "string", "description": "Type of property", "example": "House"}, "build_type": {"type": "string", "description": "Type of building", "example": "Detached"}, "internalarea": {"type": "string", "description": "Internal area of the property", "example": "1500 sqft"}, "internalAreaFeet": {"type": "string", "description": "Internal area of the property in feet", "example": "1500"}, "numberOfGarage": {"type": "integer", "description": "Number of garage spaces", "format": "int32", "example": 2}, "numberOfBaths": {"type": "integer", "description": "Number of bathrooms", "format": "int32", "example": 2}, "typeOfGarden": {"type": "string", "description": "Type of garden", "example": "Backyard"}, "buildYear": {"type": "string", "description": "Build era. Values: pre (Pre 1914), between (Between 1914-2000), new (After 2000). Only pre and new adjust valuation", "example": "new"}, "currentCondition": {"type": "string", "description": "Current condition of the property", "example": "Good"}, "parking": {"type": "string", "description": "Parking availability", "example": "Garage"}, "priceOrValuation": {"type": "string", "description": "Price or valuation of the property", "example": "£350,000"}, "areaUnit": {"type": "string", "description": "Area unit", "example": "sqft"}, "finishQuality": {"type": "string", "description": "Quality of finish", "example": "High"}, "minPrice": {"type": "number", "description": "Minimum price", "format": "float", "example": 300000}, "maxPrice": {"type": "number", "description": "Maximum price", "format": "float", "example": 400000}, "uprn": {"type": "string", "description": "UPRN", "example": "100021253440"}}, "description": "EvaluationRequestModel model"}, "SoldPrice": {"type": "object", "properties": {"area": {"type": "string", "description": "Area", "example": "Central London"}, "address": {"type": "string", "description": "Address", "example": "123 Main St"}, "postcode": {"type": "string", "description": "Postcode", "example": "AB12 3CD"}, "propertyTypeBuiltform": {"type": "string", "description": "Property type or built form"}, "noOfhabitablerooms": {"type": "string", "description": "Number of habitable rooms"}, "lastSoldPrice": {"type": "string", "description": "Last sold price", "example": "500000"}, "lastSoldDate": {"type": "string", "description": "Date when the property was last sold", "example": "2024-05-08"}, "totalfloorarea": {"type": "string", "description": "Total floor area", "example": "150 sqm"}, "pricePerSQM": {"type": "string", "description": "Price per square meter", "example": "3333.33"}, "duration": {"type": "string", "description": "Duration", "example": "60 minutes"}}}, "SoldPriceResponse": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "soldPrices": {"type": "array", "items": {"$ref": "#/components/schemas/SoldPrice"}}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "SoldPriceResponse model"}, "EnergyPerformance": {"type": "object", "properties": {"certificateNumber": {"type": "string", "description": "Certificate number of the property", "example": "142065249242010020920181950000618"}, "currentEnergyRating": {"type": "string", "description": "Current energy rating of the property", "example": "C"}, "potentialEnergyRating": {"type": "string", "description": "Potential energy rating of the property", "example": "B"}, "currentEnergyEfficiency": {"type": "string", "description": "Current energy efficiency of the property", "example": "70"}, "potentialEnergyEfficiency": {"type": "string", "description": "Potential energy efficiency of the property", "example": "85"}, "inspectionDate": {"type": "string", "description": "Inspection date of the property", "example": "2020-01-01"}, "lodgementDate": {"type": "string", "description": "Lodgement date of the property", "example": "2020-01-01"}, "epcExpiryDate": {"type": "string", "description": "EPC expiry date of the property", "example": "2030-01-01"}, "buildingReferenceNumber": {"type": "string", "description": "Building reference number of the property", "example": "1324796178"}, "builtForm": {"type": "string", "description": "Built form of the property", "example": "Mid-Terrace"}}, "description": "Energy performance of the property"}, "EvaluationModel": {"type": "object", "properties": {"address": {"type": "string", "description": "Address of the property", "example": "123 Main St"}, "postcode": {"type": "string", "description": "Postcode of the property", "example": "HA1 1NS"}, "propertyType": {"type": "string", "description": "Type of property", "example": "House"}, "builtform": {"type": "string", "description": "Type of building", "example": "Detached"}, "noOfhabitablerooms": {"type": "integer", "description": "Number of habitable rooms", "format": "int32", "example": 3}, "totalfloorarea": {"type": "number", "description": "Total floor area of the property", "format": "float"}, "lastSoldPrice": {"type": "string", "description": "Price at which the property was last sold", "example": "£350,000"}, "lastSoldDate": {"type": "string", "description": "Date when the property was last sold", "example": "2023-05-01"}, "priceChange": {"type": "string", "description": "Change in price of the property", "example": "Decreased by £10,000"}, "avgPricePerSqM": {"type": "number", "description": "Average price per square meter", "format": "float"}, "propertyInsightScore": {"type": "number", "description": "Property insight score", "format": "double", "example": 0.85}, "dataPointAssessed": {"type": "integer", "description": "Number of data points assessed", "format": "int32", "example": 50}, "valuationVariance": {"type": "number", "description": "Variance in valuation", "format": "float"}, "valuationPostcodematchLevel": {"type": "string", "description": "Level of postcode match in valuation", "example": "High"}, "confidenceLevel": {"type": "string", "description": "Confidence level of the valuation", "example": "High"}, "duration": {"type": "string", "description": "Duration of the property", "example": "Freehold"}, "uprn": {"type": "string", "description": "Unique property reference number", "example": "12345678"}, "avgPricePerSqFt": {"type": "number", "description": "Average price per square foot", "format": "float"}, "areaUnit": {"type": "string", "description": "Unit of area measurement", "example": "sqft"}, "success": {"type": "boolean", "writeOnly": true}, "isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "energyPerformance": {"$ref": "#/components/schemas/EnergyPerformance"}, "xpdirequestId": {"type": "string"}}}, "RentalValuationRequest": {"required": ["number_of_beds", "property_type"], "type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "location": {"type": "string", "description": "A valid UK location (i.e. HA1 1SE, London, etc.)"}, "postcode": {"type": "string", "description": "A valid UK postcode", "example": "HA1 1SE"}, "latitude": {"type": "string", "description": "Latitude of the location", "example": "51.5074"}, "longitude": {"type": "string", "description": "Longitude of the location", "example": "-0.1278"}, "property_type": {"type": "string", "description": "Type of the property (e.g., house, apartment)", "example": "House"}, "number_of_beds": {"type": "string", "description": "Number of bedrooms in the property", "example": "2"}}}, "RentalValuationResponse": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "rentalvaluation": {"type": "integer", "description": "Rental valuation", "format": "int32", "example": 3517}, "listings_considered": {"type": "integer", "format": "int32"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}}, "ComparableSalesRequest": {"required": ["listingType", "postcode"], "type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "postcode": {"type": "string", "description": "UK postcode or outcode to search around", "example": "BH23 3NN"}, "propertyType": {"type": "string", "description": "Property type. Values: APARTMENT, FLAT, DETACHED, SEMI_DETACHED, TERRACED", "example": "SEMI_DETACHED", "enum": ["APARTMENT", "FLAT", "DETACHED", "SEMI_DETACHED", "TERRACED"]}, "numberOfBeds": {"type": "integer", "description": "Target number of bedrooms", "format": "int32", "example": 3}, "numberOfBedsVariance": {"type": "integer", "description": "Bedroom range lower bound is numberOfBeds minus this value (inclusive up to numberOfBeds)", "format": "int32", "example": 1}, "radius": {"type": "number", "description": "Search radius in miles (max 4). Defaults to 1.0 when omitted or 0", "format": "float", "example": 1}, "propertyAddress": {"type": "string", "description": "Optional property address for context"}, "listingType": {"type": "string", "description": "Listing type. Values: SALE, RENT", "example": "SALE", "enum": ["SALE", "RENT"]}, "pageNumber": {"type": "integer", "description": "Page index (0-based)", "format": "int32", "example": 0}, "pageSize": {"type": "integer", "description": "Number of results per page", "format": "int32", "example": 3}}, "description": "ComparableSalesRequest model"}, "AcquisitionCosts": {"type": "object", "properties": {"legalFees": {"type": "integer", "format": "int32", "example": 200}, "downPayment": {"type": "integer", "format": "int32", "example": 200}, "stampDuty": {"type": "integer", "format": "int32", "example": 200}, "highStampDuty": {"type": "integer", "format": "int32", "example": 200}, "buyingPrice": {"type": "integer", "format": "int32", "example": 200}, "buyingCost": {"type": "integer", "format": "int32", "example": 200}, "buildingInsurance": {"type": "integer", "format": "int32", "example": 200}, "sourcingFees": {"type": "integer", "format": "int32", "example": 200}, "totalAcquisitionCosts": {"type": "integer", "format": "int32", "example": 200}}, "description": "AcquisitionCosts model"}, "AppraisalDefaultValueResponse": {"type": "object", "properties": {"acquisitionBuyingCostPercentage": {"type": "number", "format": "float", "example": 34}, "acquisitionBuildingInsurancePercentage": {"type": "number", "format": "float", "example": 50}, "acquisitionSourcingFeePercentage": {"type": "number", "format": "float", "example": 46}, "buildExtraArea": {"type": "number", "format": "float", "example": 35}, "buildCostFlat": {"type": "integer", "format": "int32", "example": 346}, "buildCostCommerial": {"type": "integer", "format": "int32", "example": 67}, "buildContamination": {"type": "integer", "format": "int32", "example": 344656}, "buildLandscaping": {"type": "integer", "format": "int32", "example": 344656}, "buildContingencyPercentage": {"type": "number", "format": "float", "example": 23}, "buildLift": {"type": "integer", "format": "int32", "example": 12}, "professionalUtilityServices": {"type": "integer", "format": "int32", "example": 344656}, "professionalS106": {"type": "integer", "format": "int32", "example": 344656}, "professionalCIL": {"type": "integer", "format": "int32", "example": 344656}, "professionalBuildWarrantyInsurance": {"type": "integer", "format": "int32", "example": 344656}, "professionalProjectManagementPercentage": {"type": "number", "format": "float", "example": 24}, "professionalArchitect": {"type": "integer", "format": "int32", "example": 344656}, "professionalSurveys": {"type": "integer", "format": "int32", "example": 344656}, "saleReduction": {"type": "number", "format": "float", "example": 56}, "saleAgentPercentage": {"type": "number", "format": "float", "example": 20}, "saleSolicitorFee": {"type": "integer", "format": "int32", "example": 344656}, "financeCostBuildmonths": {"type": "number", "format": "float", "example": 35}, "financeCostLandmonths": {"type": "number", "format": "float", "example": 34}, "financeCostBuildPercent": {"type": "number", "format": "float", "example": 45}, "financeCostLandPercent": {"type": "number", "format": "float", "example": 45}, "liftUnit": {"type": "boolean", "example": true}, "noOfLifts": {"type": "integer", "format": "int32", "example": 3}}, "description": "Api default value response model"}, "BuildCosts": {"type": "object", "properties": {"flatsCost": {"type": "integer", "format": "int32", "example": 34}, "commerialCost": {"type": "integer", "format": "int32", "example": 245}, "contaminationAndTreeRemedyCost": {"type": "integer", "format": "int32", "example": 356}, "landscapingCost": {"type": "integer", "format": "int32", "example": 245}, "contingencyPercentage": {"type": "number", "format": "float", "example": 3667}, "contingencyCost": {"type": "integer", "format": "int32", "example": 36}, "liftCost": {"type": "integer", "format": "int32", "example": 23456}, "totalBuildCosts": {"type": "integer", "format": "int32", "example": 2345677}}}, "DevelopmentAppraisalListing": {"type": "object", "properties": {"gdv": {"type": "integer", "description": "Gross Development Value", "format": "int32", "example": 5000000}, "finishQuality": {"type": "string", "description": "Finish Quality", "example": "High"}, "unitCustomValue": {"type": "boolean", "description": "Indicates if the unit has custom value", "example": true}, "freeholdUnit": {"type": "boolean", "description": "Indicates if the unit is freehold", "example": true}, "other": {"type": "boolean", "description": "Indicates if the unit has other characteristics", "example": false}, "affordableHousing": {"type": "boolean", "description": "Indicates if the unit is affordable housing", "example": false}, "commercialUnit": {"type": "boolean", "description": "Indicates if the unit is commercial", "example": true}, "commercialArea": {"type": "integer", "description": "Area of the commercial unit", "format": "int32", "example": 1000}, "commercialSellingPrice": {"type": "integer", "description": "Selling price of the commercial unit", "format": "int32", "example": 200000}, "commercialUnitNumber": {"type": "integer", "description": "Number of commercial units", "format": "int32", "example": 5}, "freeholdSellingPrice": {"type": "integer", "description": "Selling price of the freehold unit", "format": "int32", "example": 300000}, "otherSellingPrice": {"type": "integer", "description": "Selling price of other units", "format": "int32", "example": 250000}, "affordableHousingSellingPrice": {"type": "integer", "description": "Selling price of affordable housing units", "format": "int32", "example": 150000}, "propertyUnits": {"type": "array", "description": "List of property units", "items": {"$ref": "#/components/schemas/PropertyUnit"}}, "developmentAppraisal": {"$ref": "#/components/schemas/DevelopmentAppraisalResponse"}, "appraisalDefault": {"$ref": "#/components/schemas/AppraisalDefaultValueResponse"}}, "description": "Development appraisal details"}, "DevelopmentAppraisalResponse": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "totalDevelopmentCostValue": {"type": "integer", "description": "The total development cost value", "format": "int32", "example": 500000}, "totalProjectCost": {"type": "integer", "description": "The total project cost", "format": "int32", "example": 550000}, "grossProfit": {"type": "integer", "description": "The gross profit", "format": "int32", "example": 25000}, "returnOnInvest": {"type": "number", "description": "The return on investment", "format": "double", "example": 0.05}, "grossDevelopment": {"$ref": "#/components/schemas/GrossDevelopment"}, "acquisitionCosts": {"$ref": "#/components/schemas/AcquisitionCosts"}, "buildCosts": {"$ref": "#/components/schemas/BuildCosts"}, "professionalCost": {"$ref": "#/components/schemas/ProfessionalCost"}, "salesCosts": {"$ref": "#/components/schemas/SalesCosts"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "DevelopmentAppraisalResponse model"}, "FloorArea": {"type": "object", "properties": {"max_floor_area": {"$ref": "#/components/schemas/MaxFloorArea"}, "min_floor_area": {"$ref": "#/components/schemas/MinFloorArea"}}, "description": "Floor area", "example": 800}, "GrossDevelopment": {"type": "object", "properties": {"grossDevelopmentValue": {"type": "integer", "description": "Gross development value", "format": "int32", "example": 5000000}, "totalNoOfUnits": {"type": "integer", "description": "Total number of units", "format": "int32", "example": 30}, "totalInternalArea": {"type": "integer", "description": "Total internal area", "format": "int32", "example": 10000}, "commercialArea": {"type": "integer", "description": "Commercial area", "format": "int32", "example": 5000}, "liftUnit": {"type": "boolean", "description": "Whether lift unit is present", "example": true}, "noOfLifts": {"type": "integer", "description": "Number of lifts", "format": "int32", "example": 2}}}, "Image": {"type": "object", "properties": {"Bucket": {"type": "string", "description": "Bucket name", "example": "my-bucket"}, "ETag": {"type": "string", "description": "ETag", "example": "d41d8cd98f00b204e9800998ecf8427e"}, "Key": {"type": "string", "description": "Key", "example": "example.txt"}, "Location": {"type": "string", "description": "Location", "example": "https://s3.amazonaws.com/my-bucket/example.txt"}}, "description": "Image information"}, "MaxFloorArea": {"type": "object", "properties": {"value": {"type": "string", "description": "Value", "example": "100"}, "units": {"type": "string", "description": "Units", "example": "sqft"}}, "description": "Maximum floor area"}, "MinFloorArea": {"type": "object", "properties": {"value": {"type": "string", "description": "Value", "example": "100"}, "units": {"type": "string", "description": "Units", "example": "sqft"}}, "description": "Minimum floor area"}, "ProfessionalCost": {"type": "object", "properties": {"utilityServices": {"type": "integer", "format": "int32", "example": 378}, "s106": {"type": "integer", "format": "int32", "example": 5877}, "cil": {"type": "integer", "format": "int32", "example": 356}, "buildWarrantyInsurance": {"type": "integer", "format": "int32", "example": 367}, "projectManagementPercentage": {"type": "integer", "format": "int32", "example": 23}, "projectManagementCost": {"type": "integer", "format": "int32", "example": 24678}, "architect": {"type": "integer", "format": "int32", "example": 13}, "surveys": {"type": "integer", "format": "int32", "example": 2}, "totalProfessionalCost": {"type": "integer", "format": "int32", "example": 35678}}}, "Property": {"type": "object", "properties": {"area": {"type": "string", "description": "Area in the format: $listing.post_town+$.listing.outcode, like: London,HA1", "example": "Derby,DE3"}, "street": {"type": "string", "description": "Street name, implementationNotes = $.listing.street_name", "example": "Park Road"}, "address": {"type": "string", "description": "Displayable address implementationNotes = $.listing.displayable_address", "example": "Park Road, Mickleover, Derby DE3"}, "propertyType": {"type": "string", "description": "Property type, implementationNotes = $.listing.property_type", "example": "Flat"}, "numberOfBeds": {"type": "string", "description": "Number of bedrooms, implementationNotes = $.listing.num_bedrooms", "example": "3"}, "numberOfBaths": {"type": "string", "description": "Number of bathrooms, implementationNotes = $.listing.num_bathrooms", "example": "2"}, "numberOfFloors": {"type": "string", "description": "Number of floors", "example": "6"}, "numberOfRecepts": {"type": "string", "description": "Number of receptions", "example": "3"}, "evaluationPropertyType": {"type": "string", "description": "Evaluation property type", "example": "Flat"}, "listedOn": {"type": "string", "description": "First published date, implementationNotes = $.listing.first_published_date", "example": "17 Mar 2023"}, "askingPrice": {"type": "string", "description": "Asking price, implementationNotes = $.listing.price", "example": "340000"}, "detailsUrl": {"type": "string", "description": "Details URL", "example": "https://dataapi.propertydealsinsight.com/r/L02/d/for-sale/details/65701208/"}, "shortDesc": {"type": "string", "description": "Short description", "example": "property short description"}, "thumbnail": {"type": "string", "description": "Thumbnail URL", "example": "https://dataapi.propertydealsinsight.com/r/L02/i/354/255/026ad78fbd8d8c398c91e8451503764227eabe15.jpg"}, "display_image": {"type": "string", "description": "Display image", "example": "https://dataapi.propertydealsinsight.com/r/L02/ixl/026ad78fbd8d8c398c91e8451503764227eabe15.jpg"}, "propertyImage": {"type": "string", "description": "Property image", "example": "https://dataapi.propertydealsinsight.com/r/L02/ixl/026ad78fbd8d8c398c91e8451503764227eabe15.jpg"}, "agentAddress": {"type": "string", "description": "Agent address", "example": "15 St. James Street, Derby"}, "agentName": {"type": "string", "description": "Agent name", "example": "Martin & Co Derby"}, "agentLogo": {"type": "string", "description": "Agent logo", "example": "https://dataapi.propertydealsinsight.com/r/L02/ia/zoopla_static_agent_logo_(592287).png"}, "outCode": {"type": "string", "description": "Outcode", "example": "DE3"}, "propertySid": {"type": "string", "description": "Property SID", "example": "1000034682223"}, "numBedrooms": {"type": "integer", "description": "Number of bedrooms", "format": "int32", "example": 3}, "numBathrooms": {"type": "integer", "description": "Number of bathrooms", "format": "int32", "example": 2}, "numRecepts": {"type": "integer", "description": "Number of receptions", "format": "int32", "example": 1}, "numFloors": {"type": "integer", "description": "Number of floors", "format": "int32", "example": 5}, "postcode": {"type": "string", "description": "Postcode", "example": "HA1 1SY"}, "rateDetail": {"$ref": "#/components/schemas/RateDetail"}, "roomsDailyRate": {"type": "array", "description": "List of room detail objects", "items": {"$ref": "#/components/schemas/RoomDetail"}}, "floorPlan": {"type": "array", "description": "List of floor plans", "items": {"type": "string", "description": "List of floor plans"}}, "floorArea": {"$ref": "#/components/schemas/FloorArea"}, "latitude": {"type": "number", "description": "Latitude", "format": "double", "example": 52.923762}, "longitude": {"type": "number", "description": "Longitude", "format": "double", "example": -1.489281}, "internalArea": {"type": "number", "description": "Internal area", "format": "float", "example": 750}, "areaUnit": {"type": "string", "description": "Area unit", "example": "feet"}, "distance": {"type": "string", "description": "Distance", "example": "1.5"}, "distanceUnit": {"type": "string", "description": "Distance unit", "example": "miles"}, "propertyListingImages": {"type": "array", "description": "List of property listing images", "items": {"$ref": "#/components/schemas/PropertyImage"}}, "image360": {"type": "string", "description": "Image 360 URL", "example": "https://yourdomain.com/image"}, "videoUrl": {"type": "string", "description": "Video URL", "example": "https://yourdomain.com/video"}, "rentalvaluation": {"type": "integer", "description": "Rental valuation", "format": "int32", "example": 8}, "developmentDetails": {"$ref": "#/components/schemas/DevelopmentAppraisalListing"}, "agentPhoneNo": {"type": "string"}, "pdiProperty": {"type": "boolean"}, "D2V": {"type": "boolean", "description": "Additional property to denote if full address is available or not", "example": true}, "newRecordSinceLastSearchFlag": {"type": "boolean", "description": "New record since last search flag", "example": true}}, "description": "List of total properties"}, "PropertyImage": {"type": "object", "properties": {"imageUrl": {"type": "string", "description": "Image URL", "example": "https://yourdomain.com/image.jpg"}, "imageTitle": {"type": "string", "description": "Image title", "example": "Beautiful Landscape"}, "coverImage": {"type": "boolean", "description": "Cover image flag", "example": true}}, "description": "List of property listing images"}, "PropertyRS": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "pageNumber": {"type": "integer", "format": "int32", "example": 1}, "totalPages": {"type": "integer", "format": "int32", "example": 25}, "size": {"type": "integer", "format": "int32", "example": 20}, "totalElements": {"type": "integer", "format": "int64", "example": 245}, "rentalvaluation": {"type": "integer", "description": "Rental valuation", "format": "int32", "example": 1500}, "property": {"type": "array", "description": "List of properties", "items": {"$ref": "#/components/schemas/Property"}}, "totalProperty": {"type": "array", "description": "List of total properties", "items": {"$ref": "#/components/schemas/Property"}}, "numberOfDeals": {"type": "integer", "description": "Number of deals", "format": "int32", "example": 10}, "inputRadius": {"type": "string", "description": "Input radius", "example": "10 miles"}, "totalRadius": {"type": "string", "description": "Total radius", "example": "20 miles"}, "resultsCountForInput": {"type": "string", "description": "Results count for input", "example": "100"}, "resultsCountForTotalRadius": {"type": "string", "description": "Results count for total radius", "example": "200"}, "defaultRentalValuation": {"type": "boolean", "description": "Default rental valuation", "example": true}, "additionalData": {"type": "boolean", "description": "Additional data", "example": false}, "numberOfMoreData": {"type": "integer", "description": "Number of additional data", "format": "int32", "example": 5}, "serviceUp": {"type": "boolean", "description": "Service status", "example": true}, "disambiguation": {"type": "array", "description": "List of disambiguation", "example": "['Freehold','Leasehold']", "items": {"type": "string", "description": "List of disambiguation", "example": "['Freehold','Leasehold']"}}, "tokenDeducted": {"type": "boolean", "description": "Token deduction status", "example": true}, "totalMatchDeals": {"type": "integer", "description": "Total matched deals", "format": "int32", "example": 7}, "totalDeals": {"type": "integer", "description": "Total deals", "format": "int32", "example": 15}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "PropertyRS model"}, "PropertyUnit": {"type": "object", "properties": {"propertyType": {"type": "string", "description": "Property type", "example": "Apartment"}, "internalArea": {"type": "integer", "description": "Internal area", "format": "int32", "example": 100}, "areaUnit": {"type": "string", "description": "Area unit", "example": "sqft"}, "noOfBeds": {"type": "integer", "description": "Number of bedrooms", "format": "int32", "example": 2}, "noOfUnits": {"type": "integer", "description": "Number of units", "format": "int32", "example": 5}, "costPerProperty": {"type": "integer", "description": "Cost per property", "format": "int32", "example": 500000}, "totalCostPerProperty": {"type": "integer", "description": "Total cost per property", "format": "int32", "example": 2500000}, "isSuccess": {"type": "boolean", "description": "Success flag"}}, "description": "List of property units"}, "RateDetail": {"type": "object", "properties": {"rentalFrequency": {"type": "string", "description": "Rental frequency", "example": "Monthly"}, "toatlRate": {"type": "number", "description": "Total rate", "format": "float", "example": 1500}}, "description": "Rate detail"}, "RoomDetail": {"type": "object", "properties": {"roomNum": {"type": "integer", "description": "Number of rooms", "format": "int32", "example": 3}, "dailyRent": {"type": "number", "description": "Daily rent amount", "format": "float", "example": 100}, "roomSize": {"type": "string", "description": "Room size", "example": "Large"}, "roomType": {"type": "string", "description": "Room type", "example": "Bedroom"}, "image": {"$ref": "#/components/schemas/Image"}}, "description": "List of room detail objects"}, "SalesCosts": {"type": "object", "properties": {"postRefurbValuation": {"type": "integer", "description": "Post-refurbishment valuation", "format": "int32", "example": 50000}, "agentComission": {"type": "integer", "description": "Agent commission", "format": "int32", "example": 500}, "miscelleneuous": {"type": "integer", "description": "Miscellaneous expenses", "format": "int32", "example": 75}, "earlyRepaymentCharges": {"type": "integer", "description": "Early repayment charges", "format": "int32", "example": 50}, "discount": {"type": "integer", "description": "Discount", "format": "int32", "example": 5000}, "salesProceeds": {"type": "integer", "description": "Sales proceeds", "format": "int32", "example": 51000}, "solicitorFee": {"type": "integer", "format": "int32"}}, "description": "Sales costs"}, "NetworkCoverageRequest": {"required": ["postcode"], "type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "postcode": {"type": "string", "description": "UK postcode to look up coverage for", "example": "L329SP"}, "address": {"type": "string", "description": "Optional address to filter results to a single property", "example": "4, GORLESTON MEWS"}, "uprn": {"type": "integer", "description": "Optional UPRN to filter results to a single property", "format": "int64", "example": 40066960}}}, "NetworkCoverageResponse": {"type": "object", "properties": {"mobileCoverage": {"$ref": "#/components/schemas/OfcomMobileResponse"}, "broadBandCoverage": {"$ref": "#/components/schemas/OfcomBroadbandResponse"}, "isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}}, "OfcomBroadbandAvailabilityResponse": {"type": "object", "properties": {"UPRN": {"type": "integer", "description": "Unique Property Reference Number", "format": "int64", "example": 100021300679}, "AddressShortDescription": {"type": "string", "description": "A compiled address description based on use of the Ordnance Survey AddressBase fields of the form - Building Name, Building Number, Dependent_ThoroughFare", "example": "78, DURLEY AVENUE"}, "PostCode": {"type": "string", "description": "Postcode of address, spaces removed", "example": "HA51JH"}, "MaxBbPredictedDown": {"type": "number", "description": "maxBbPredictedDown", "format": "double", "example": 17}, "MaxBbPredictedUp": {"type": "number", "description": "maxBbPredictedUp", "format": "double", "example": 1}, "MaxSfbbPredictedDown": {"type": "number", "description": "maxSfbbPredictedDown", "format": "double", "example": 80}, "MaxSfbbPredictedUp": {"type": "number", "description": "maxSfbbPredictedUp", "format": "double", "example": 20}, "MaxUfbbPredictedDown": {"type": "number", "description": "maxUfbbPredictedDown", "format": "double", "example": 1000}, "MaxUfbbPredictedUp": {"type": "number", "description": "maxUfbbPredictedUp", "format": "double", "example": 50}, "MaxPredictedDown": {"type": "number", "description": "maxPredictedDown", "format": "double", "example": 1000}, "MaxPredictedUp": {"type": "number", "description": "maxPredictedUp", "format": "double", "example": 50}}, "description": "PDI - OfcomBroadbandAvailability Response"}, "OfcomBroadbandResponse": {"type": "object", "properties": {"PostCode": {"type": "string", "description": "The postcode of the property.", "example": "HA51JH"}, "Availability": {"type": "array", "description": "An array of broadband availability data for the property, including predicted download and upload speeds for different broadband types.", "items": {"$ref": "#/components/schemas/OfcomBroadbandAvailabilityResponse"}}, "ErrorMessage": {"type": "string", "description": "A human readable error message.", "example": "Not found"}}, "description": "PDI - OfcomBroadband Response"}, "OfcomMobileAvailabilityResponse": {"type": "object", "properties": {"UPRN": {"type": "integer", "description": "Unique Property Reference Number", "format": "int64", "example": 100021300679}, "AddressShortDescription": {"type": "string", "description": "A compiled address description based on use of the Ordnance Survey AddressBase fields of the form - Building Name, Building Number, Dependent_ThoroughFare", "example": "78, DURLEY AVENUE"}, "PostCode": {"type": "string", "description": "Postcode of address, spaces removed", "example": "HA51JH"}, "EEVoiceOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "EEVoiceOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "EEVoiceIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "EEVoiceIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "EEDataOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "EEDataOutdoorNo4g": {"type": "integer", "format": "int64", "example": 3}, "EEDataIndoor": {"type": "integer", "format": "int64", "example": 4}, "EEDataIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3VoiceOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3VoiceOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3VoiceIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3VoiceIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3DataOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "H3DataOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3DataIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "H3DataIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "TFVoiceOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "TFVoiceOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "TFVoiceIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "TFVoiceIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "TFDataOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "TFDataOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "TFDataIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "TFDataIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "VOVoiceOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "VOVoiceOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "VOVoiceIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "VOVoiceIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "VODataOutdoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "VODataOutdoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 3}, "VODataIndoor": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}, "VODataIndoorNo4g": {"type": "integer", "description": "States:\n * `0` - Clear\n * `1` - Red\n * `2` - Amber\n * `3` - Green * `4` - Enhanced", "format": "int64", "example": 4}}, "description": "PDI - OfcomMobileAvailabilityResponse"}, "OfcomMobileResponse": {"type": "object", "properties": {"PostCode": {"type": "string", "description": "The postcode of the property.", "example": "HA51JH"}, "Availability": {"type": "array", "description": "An array of mobile network coverage data for the property, including voice and data coverage metrics for different mobile network providers.", "items": {"$ref": "#/components/schemas/OfcomMobileAvailabilityResponse"}}, "ErrorMessage": {"type": "string", "description": "A human readable error message.", "example": "Not found"}}, "description": "PDI - OfcomMobileResponse"}, "FloodRiskRequest": {"type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "uprn": {"type": "string", "description": "UPRN", "example": "1234567890"}, "postcode": {"type": "string", "description": "Postcode", "example": "HA1 1SE"}, "location": {"type": "string", "description": "Location / address", "example": "18 Bethecar Road, Harrow, HA1 1SE"}, "latitude": {"type": "number", "description": "Latitude", "format": "double", "example": 51.587154}, "longitude": {"type": "number", "description": "Longitude", "format": "double", "example": -0.337497}}}, "FloodRiskResponse": {"type": "object", "properties": {"code": {"type": "integer", "format": "int32", "example": 200}, "isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "data": {"type": "object", "description": "Flood risk payload returned by dataapi"}, "metadata": {"type": "object", "description": "Additional metadata returned by dataapi"}, "result": {"type": "object"}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "PDI - Flood Risk Response"}, "FinanceMortgage": {"type": "object", "properties": {"loanAmount": {"type": "integer", "description": "Loan amount", "format": "int32", "example": 200000}, "interestRate": {"type": "number", "description": "Interest rate", "format": "double", "example": 3.5}, "loanTerm": {"type": "integer", "description": "Loan term", "format": "int32", "example": 30}, "closingCosts": {"type": "integer", "description": "Closing costs", "format": "int32", "example": 5000}, "totalFinanceCosts": {"type": "integer", "description": "Total finance costs", "format": "int32", "example": 5500}}, "description": "Finance mortgage"}, "FlipAnalysisRequest": {"type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "propInsightValuation": {"type": "integer", "description": "Property insight valuation", "format": "int32", "example": 250000}, "acquisitionCosts": {"$ref": "#/components/schemas/AcquisitionCosts"}, "financeMortgage": {"$ref": "#/components/schemas/FinanceMortgage"}, "projectCosts": {"$ref": "#/components/schemas/ProjectCosts"}, "salesCosts": {"$ref": "#/components/schemas/SalesCosts"}}, "description": "FlipAnalysisRequest model"}, "ProjectCosts": {"type": "object", "properties": {"renovation": {"type": "integer", "description": "Renovation cost", "format": "int32", "example": 5000}, "otherCosts": {"type": "integer", "description": "Other costs", "format": "int32", "example": 1000}, "totalProjectCosts": {"type": "integer", "description": "Total project costs", "format": "int32", "example": 6000}}, "description": "Project costs"}, "FlipAnalysisResponse": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "propInsightValuation": {"type": "integer", "description": "Property insight valuation", "format": "int32", "example": 250000}, "acquisitionCosts": {"$ref": "#/components/schemas/AcquisitionCosts"}, "financeMortgage": {"$ref": "#/components/schemas/FinanceMortgage"}, "projectCosts": {"$ref": "#/components/schemas/ProjectCosts"}, "salesCosts": {"$ref": "#/components/schemas/SalesCosts"}, "flipValuation": {"$ref": "#/components/schemas/FlipValuation"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "FlipAnalysisResponse model"}, "FlipValuation": {"type": "object", "properties": {"cashInvested": {"type": "integer", "description": "Cash invested", "format": "int32", "example": 50000}, "gainOrLoss": {"type": "integer", "description": "Gain or loss", "format": "int32", "example": 20000}, "postRefurbValuation": {"type": "integer", "description": "Post-refurbishment valuation", "format": "int32", "example": 150000}, "investPeriod": {"type": "integer", "description": "Investment period", "format": "int32", "example": 5}, "financeCost": {"type": "number", "description": "Finance cost", "format": "double", "example": 2500.5}, "returnOnInvest": {"type": "number", "description": "Return on investment", "format": "double", "example": 0.15}}, "description": "Flip valuation"}, "CashFlowRequestModel": {"type": "object", "properties": {"header": {"$ref": "#/components/schemas/Header"}, "propInsightValuation": {"type": "string", "description": "Property insight valuation", "example": "450000"}, "propRentalYields": {"type": "string", "description": "Property rental yields", "example": "5.5"}, "downPayment": {"type": "string", "description": "Initial down payment for the property", "example": "8749"}, "downPaymentPercentage": {"type": "string", "description": "Down payment percentage", "example": "30"}, "stampDuty": {"type": "string", "description": "Stamp duty costs", "example": "5000"}, "stampDutyLow": {"type": "string", "description": "Lower estimate of stamp duty costs", "example": "4500"}, "stampDutyHigh": {"type": "string", "description": "Higher estimate of stamp duty costs", "example": "5500"}, "renovationCost": {"type": "string", "description": "Cost of renovation", "example": "32424"}, "mortgageAndValuationFees": {"type": "string", "description": "Mortgage and valuation fees", "example": "8790"}, "legalPack": {"type": "string", "description": "Conveyancing and legal fees in GBP", "example": "800"}, "rentalPayments": {"type": "string", "description": "Monthly rental payments", "example": "1500"}, "mortgagePayments": {"type": "string", "description": "Monthly mortgage payments", "example": "1000"}, "miscExpenses": {"type": "string", "description": "Miscellaneous expenses", "example": "200"}, "cleaningCost": {"type": "string", "description": "Cleaning costs", "example": "150"}, "mortgageMonthlyRePayment": {"type": "string", "description": "Monthly mortgage repayment amount", "example": "1200"}, "mortgageInterestRate": {"type": "string", "description": "Mortgage interest rate", "example": "3.5"}, "mortgageType": {"type": "string", "description": "Type of mortgage", "example": "Fixed-rate"}, "maintenanceCosts": {"type": "string", "description": "Annual maintenance costs", "example": "3000"}, "propertyManagement": {"type": "string", "description": "Property management fees", "example": "1200"}, "insurance": {"type": "string", "description": "Insurance costs", "example": "800"}, "voidPeriod": {"type": "string", "description": "Void period (months)", "example": "1"}}, "description": "CashFlow Request model"}, "CashFlowModel": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "propInsightValuation": {"type": "string", "description": "Property insight valuation", "example": "450000"}, "oneOffCosts": {"type": "string", "description": "One-off costs associated with the property", "example": "12000"}, "downPayment": {"type": "string", "description": "Initial down payment for the property", "example": "90000"}, "downPaymentPercentage": {"type": "string", "description": "Down payment percentage", "example": "20"}, "stampDuty": {"type": "string", "description": "Stamp duty costs", "example": "5000"}, "stampDutyLow": {"type": "string", "description": "Lower estimate of stamp duty costs", "example": "4500"}, "stampDutyHigh": {"type": "string", "description": "Higher estimate of stamp duty costs", "example": "5500"}, "highStampDuty": {"type": "string", "description": "High stamp duty costs", "example": "6000"}, "renovationCost": {"type": "string", "description": "Cost of renovation", "example": "15000"}, "mortgageAndValuationFees": {"type": "string", "description": "Mortgage and valuation fees", "example": "2000"}, "legalPack": {"type": "string", "description": "Legal pack costs", "example": "800"}, "netMonthInOut": {"type": "string", "description": "Net monthly income or outgoings", "example": "2500"}, "rentalPayments": {"type": "string", "description": "Monthly rental payments", "example": "1500"}, "mortgagePayments": {"type": "string", "description": "Monthly mortgage payments", "example": "1000"}, "miscExpenses": {"type": "string", "description": "Miscellaneous expenses", "example": "3678"}, "cleaningCost": {"type": "string", "description": "Cleaning costs", "example": "3678"}, "mortgageMonthlyRePayment": {"type": "string", "description": "Monthly mortgage repayment amount", "example": "1200"}, "mortgageInterestRate": {"type": "string", "description": "Mortgage interest rate", "example": "3.5"}, "mortgageType": {"type": "string", "description": "Type of mortgage", "example": "Fixed-rate"}, "annualCosts": {"type": "string", "description": "Total annual costs", "example": "24000"}, "maintenanceCosts": {"type": "string", "description": "Annual maintenance costs", "example": "3000"}, "propertyManagement": {"type": "string", "description": "Property management fees", "example": "1200"}, "insurance": {"type": "string", "description": "Insurance costs", "example": "800"}, "voidPeriod": {"type": "string", "description": "Void period (months)", "example": "1"}, "grossRentalYield": {"type": "string", "description": "Gross rental yield percentage", "example": "5.5"}, "annualCashFlow": {"type": "string", "description": "Annual cash flow", "example": "10000"}, "cashFlowAnalysis": {"type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string", "example": "'1':{'3937':92420}"}, "example": "'1':{'3937':92420}"}, "example": "'1':{'3937':92420}"}, "mortageRS": {"$ref": "#/components/schemas/MortgageRS"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}}, "MortgageRS": {"type": "object", "properties": {"mortgageMonthly": {"type": "array", "description": "List of monthly mortgage values", "items": {"$ref": "#/components/schemas/MortgageValue"}}, "mortgageYearly": {"type": "array", "description": "List of yearly mortgage values", "items": {"$ref": "#/components/schemas/MortgageValue"}}}, "description": "MortgageRS model"}, "MortgageValue": {"type": "object", "properties": {"payment": {"type": "number", "description": "Payment amount", "format": "double", "example": 1000}, "principlePaid": {"type": "number", "description": "Amount paid towards principle", "format": "double", "example": 700}, "interest": {"type": "number", "description": "Interest amount", "format": "double", "example": 300}, "outstandingLoanAmount": {"type": "number", "description": "Outstanding loan amount", "format": "double", "example": 50000}, "numberOfPayment": {"type": "integer", "description": "Number of payments made", "format": "int32", "example": 12}}, "description": "List of yearly mortgage values"}, "CouncilTaxResponse": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "totalCount": {"type": "integer", "description": "The total count of council tax data returned.", "format": "int32", "example": 1}, "data": {"type": "array", "description": "An array of council tax data objects, including the council tax band, local authority information, and additional details for the property.", "items": {"$ref": "#/components/schemas/Datum"}}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}, "description": "PDI - CouncilTax Response"}, "PropertyObject": {"type": "object", "properties": {"propertyObjectEpc": {"type": "array", "description": "EPC register records for the property", "items": {"$ref": "#/components/schemas/PropertyObjectEpc"}}, "propertyObjectPpd": {"type": "array", "description": "Land Registry price paid (sold price) records", "items": {"$ref": "#/components/schemas/PropertyObjectPpd"}}, "propertyObjectUprn": {"type": "array", "description": "UPRN and geographic coordinates", "items": {"$ref": "#/components/schemas/PropertyUprn"}}, "broadbandCoverageResponse": {"$ref": "#/components/schemas/OfcomBroadbandResponse"}, "mobileCoverageResponse": {"$ref": "#/components/schemas/OfcomMobileResponse"}, "councilTaxResponse": {"$ref": "#/components/schemas/CouncilTaxResponse"}}, "description": "Consolidated UK property data object combining EPC, Land Registry, UPRN, council tax, and network coverage"}, "PropertyObjectEpc": {"type": "object", "properties": {"buildingReferenceNumber": {"type": "string", "description": "The reference number of the building.", "example": "1324796178"}, "currentEnergyRating": {"type": "string", "description": "\tThe current energy rating of the property.", "example": "D"}, "potentialEnergyRating": {"type": "string", "description": "The potential energy rating of the property.", "example": "C"}, "currentEnergyEfficiency": {"type": "string", "description": "The current energy efficiency value.", "example": "57"}, "potentialEnergyEfficiency": {"type": "string", "description": "The potential energy efficiency value.", "example": "77"}, "propertyType": {"type": "string", "description": "The type of the property.", "example": "House"}, "builtForm": {"type": "string", "description": "The built form of the property.", "example": "Mid-Terrace"}, "inspectionDate": {"type": "string", "description": "\tThe date of the EPC inspection.", "example": "2018-01-12"}, "constituency": {"type": "string", "description": "The constituency code.", "example": "E14000906"}, "lodgementDatetime": {"type": "string", "description": "\tThe date and time when the EPC was lodged.", "example": "2018-01-12 14:22:50.0"}, "transactionType": {"type": "string", "description": "\tThe transaction type of the property.", "example": "marketed sale"}, "totalFloorArea": {"type": "string", "description": "The total floor area of the property.", "example": "92.0"}, "floorLevel": {"type": "string", "description": "The floor level of the property.", "example": "NODATA!"}, "flatTopStorey": {"type": "string", "description": "\tThe top storey of the flat.", "example": "4"}, "flatStoreyCount": {"type": "string", "description": "The number of storeys in the flat.", "example": "5"}, "extensionCount": {"type": "string", "description": "The number of extensions in the property.", "example": "0"}, "numberHabitableRooms": {"type": "string", "description": "The number of habitable rooms in the property.", "example": "6"}, "floorHeight": {"type": "string", "description": "The height of the floor.", "example": "10 feet"}, "address": {"type": "string", "description": "The address of the property.", "example": "78, Durley Avenue"}, "localAuthorityLabel": {"type": "string", "description": "\tThe label of the local authority.", "example": "Harrow"}, "constituencyLabel": {"type": "string", "description": "The label of the constituency.", "example": "Ruislip, Northwood and Pinner"}, "postTown": {"type": "string", "description": "The post town of the property.", "example": "PINNER"}, "tenure": {"type": "string", "description": "The tenure status of the property.", "example": "owner-occupied"}, "postcode": {"type": "string", "description": "The postcode of the property.", "example": "HA5 1JH"}, "latitude": {"type": "string", "description": "The latitude coordinate of the property.", "example": "55.3781"}, "longitude": {"type": "string", "description": "The longitude coordinate of the property.", "example": "3.436"}, "uprn": {"type": "string", "description": "The UPRN of the property.", "example": "100021300679"}}, "description": "PDI - Property Object EPC"}, "PropertyObjectPpd": {"type": "object", "properties": {"price": {"type": "string", "description": "The price at which the property was sold.", "example": "472000"}, "dateOfTrn": {"type": "string", "description": "The date of the property transaction.", "example": "2018-12-14 00:00:00.0"}, "postcode": {"type": "string", "description": "The postcode of the property.", "example": "HA5 1JH"}, "oldNew": {"type": "string", "description": "Indicates whether the property is old or new.", "example": "N"}, "duration": {"type": "string", "description": "The duration of the property ownership.", "example": "F"}, "address": {"type": "string", "description": "The address of the property.", "example": "78, DURLEY AVENUE"}, "locality": {"type": "string", "description": "The locality of the property.", "example": "Near DURLEY ELECTRICAL LIMITED"}, "district": {"type": "string", "description": "The district of the property.", "example": "HARROW"}, "ppdCounty": {"type": "string", "description": "The county of the property.", "example": "GREATER LONDON"}, "ppdCtgType": {"type": "string", "description": "The category type of the property transaction.", "example": "B"}, "recStat": {"type": "string", "description": "The record status of the property.", "example": "A"}}, "description": "PDI - Property Object Ppd"}, "PropertyUprn": {"type": "object", "properties": {"uprn": {"type": "string", "description": "The UPRN of the property.", "example": "100021300679"}, "getxCoordinate": {"type": "string", "description": "The x-coordinate of the property.", "example": "512347.0"}, "getyCoordinate": {"type": "string", "description": "The y-coordinate of the property.", "example": "188164.0"}, "latitude": {"type": "string", "description": "The latitude coordinate of the property.", "example": "51.5811507"}, "longitude": {"type": "string", "description": "The longitude coordinate of the property.", "example": "-0.3799553"}}, "description": "PDI - Property Uprn"}, "Confidence": {"type": "object", "properties": {"level": {"type": "string"}, "matching": {"$ref": "#/components/schemas/Matching"}}}, "Matching": {"type": "object", "properties": {"propertyType": {"type": "boolean"}, "soldYear": {"type": "boolean"}, "soldPrice": {"type": "boolean"}}}, "OnMarketPhpWrapperFullAddress": {"type": "object", "properties": {"isSuccess": {"type": "boolean", "example": true}, "message": {"type": "string", "example": "success"}, "code": {"type": "integer", "format": "int32", "example": 200}, "errorType": {"type": "string", "example": "TECHINCAL", "enum": ["TECHNICAL", "BUSSINESS", "VALIDATION", "ACCESS"]}, "getxPDIEndToEndId": {"type": "string", "example": "40c40930-ce7d-4989-b4b7-a696f9d8967f"}, "result": {"type": "object"}, "lastSearchedDate": {"type": "string", "format": "date-time"}, "data": {"type": "object", "properties": {"confidence": {"$ref": "#/components/schemas/Confidence"}, "address": {"type": "string"}, "propertyType": {"type": "string"}, "soldYear": {"type": "string"}, "soldPrice": {"type": "string"}}, "description": "List of data"}, "listing_for": {"type": "string", "description": "Type of listing", "example": "sale"}, "success": {"type": "boolean", "writeOnly": true}, "xpdirequestId": {"type": "string"}}}, "PostcodeAutoCompleteResponse": {"type": "object", "properties": {"postCode": {"type": "array", "description": "List of matching UK postcodes", "example": ["HA1 1AA", "HA1 1AB", "HA1 1AD"], "items": {"type": "string", "description": "List of matching UK postcodes", "example": "[\"HA1 1AA\",\"HA1 1AB\",\"HA1 1AD\"]"}}}, "description": "PostcodeAutoCompleteResponse model"}, "AgentNameAutoCompleteResponse": {"type": "object", "properties": {"agentNames": {"type": "array", "description": "List of matching estate agent names", "example": ["Foxtons", "Foxtons - Harrow"], "items": {"type": "string", "description": "List of matching estate agent names", "example": "[\"Foxtons\",\"Foxtons - Harrow\"]"}}}, "description": "Agent Name Auto complete response model"}}, "securitySchemes": {"Bearer Authentication": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Java API endpoints (api.propertydealsinsight.com): send `Authorization: Bearer <token>` and the `userContext` header (your account email). Data API endpoints (dataapi.propertydealsinsight.com) take the PDI standard headers listed on each endpoint instead."}}}, "x-tagGroups": [{"name": "Start here", "tags": ["Property Data Object", "PDI Property Enrichment", "Auto Complete"]}, {"name": "Valuation and reports", "tags": ["Property Evaluation", "PDI Appraisal Report", "Cash Flow", "Flip Analysis"]}, {"name": "Property facts", "tags": ["Energy Performance", "Council Tax", "Planning Application", "Property Ownership", "Flood Risk", "Network Coverage", "Water Supplier"]}, {"name": "Market and agents", "tags": ["PDI Market Intelligence", "Agent", "On Market", "On Market Comparable", "Property Search", "PDI Sourcing Lists", "Direct Mail"]}, {"name": "Standards: PDTF / OPDA", "tags": ["PDTF / OPDA Sandbox", "PDTF / OPDA Sandbox (Opaque Token)", "PDTF / OPDA Sandbox (Reference Spec)"]}]}