Added
- New property transactions product. Search standardised completed sales and lease grants with POST /v1/transactions/query, fetch a single record by its opaque composite id with GET /v1/transactions/{id}, or list a property's transactions with GET /v1/transactions/by-uprn/{uprn}. Results are cursor-paginated; all monetary values are in minor currency units (e.g. pence for GBP).
- The query endpoint accepts a structured
queryfilter (operatorseq,ne,gt,gte,lt,lte,in,ninover fields such askind,tenure,propertyType,price.amountanddate), geographicareafilters (postcode,outcode,point,polygon),sort, sparse fieldsets viaattributes, andlimit/cursorpagination. - Each transaction reports
kind(saleorlease_grant),price,date,tenure,propertyType, a structuredaddress, aleasesub-object on lease grants, and alocationblock with the matcheduprnand point where resolved. - Air-quality responses now include a nearestStation field — the nearest active Defra UK-AIR monitoring station (
siteCode,siteName,environmentType, distance and bearing) as reference/provenance context, not the source of reported concentrations. Returned on both GET /v1/air-quality/point and POST /v1/air-quality/query. - Air-quality
regulatoryZonescan now carry achargesschedule for charging schemes — ayear, amodelofdailyorpenalty, and per-vehicle-classrateswithvehicleClass,chargeGbpandcomplianceStandard. Absent for non-charging designations. - Added
scoringContractVersionto the air-qualityprovenanceenvelope so consumers can detect a scoring-table mismatch between the/pointand/querysurfaces.
Changed
- Planning applications can now return structured, citation-backed extractions on request. Pass ?include=extractions on GET /v1/planning/{applicationIds} and GET /v1/planning/sources/{sourceIds}, or
include:["extractions"]in the body of POST /v1/planning/query, to attach anextractionsobject to each application. - The
extractionsobject covers thedecisionoutcome and refusal reasons,developmentspecifics,s106obligations, theofficerAssessmentandconsulteeResponses, with acoveragereport and per-extraction verification status. It is omitted entirely unless requested, so existing responses are unchanged.