← All updates · 11 September 2026 · Updated 6 October 2026

Site constraints in the planning API

APIPro
Read the site constraints API docs

Planning data tells you what somebody has applied to do, but does not tell you what the land is. Joining the two means 94 published datasets and a spatial problem most teams would rather not own.

Every application record on the Pro plan and above now arrives with that done. constraints lists what the national open datasets put at the record's coordinates: the areas the site sits inside, and the listed buildings, scheduled monuments and rights of way near it, each with its distance and a link to the record it came from.

"constraints": [
  { "layer": "listed", "label": "Listed buildings", "relation": "near", "metres": 27,
    "name": "SALISBURY HOUSE AND RAILINGS", "reference": "1157347", "grade": "II",
    "url": "https://historicengland.org.uk/listing/the-list/list-entry/1157347" },
  { "layer": "park", "label": "National parks", "relation": "within", "name": "Yorkshire Dales" },
  { "layer": "conservation", "label": "Conservation areas", "relation": "within",
    "name": "Askrigg", "reference": "307" },
  { "layer": "agri", "label": "Agricultural land", "relation": "within",
    "grade": "3b", "dataset": "predicted" }
]

Checking any point

The sites you are appraising are not applications yet, so the same answer is available for any coordinate or postcode.

GET /v1/constraints?lat=51.00361&lng=-1.99444
GET /v1/constraints?postcode=SP5%205BW

One point costs one record, whatever comes back, and reading it again is free. A town centre site costs what an empty field costs.

The fields

  • relation is within for an area the point sits inside, or near with metres for something close to it. Listed buildings count within 150 m, scheduled monuments within 250 m, rights of way within 30 m.
  • grade carries the listing grade, the flood zone, or the farmland grade including 3a and 3b.
  • name, reference and url point back at the published record, so anything you put in front of a customer is traceable to Historic England, the Environment Agency, Natural England, Cadw, NatureScot or the council that published it.

Entries come back most significant first, so the first one is the headline.

When records are checked

Constraints are worked out overnight and stored against each record, so a search returning 100 applications returns 100 constraint sets in the same query. A record we have not reached yet comes back as null rather than an empty array, so you can tell nothing here from not read yet.

Parameters, the response schema and a worked example are in the developer docs and the OpenAPI schema.

Updated 6 October 2026

constraints on every Pro record and GET /v1/constraints now carry the layers added to the map in October. The shape of each entry is unchanged; the new layers say what they found through grade and dataset.

  • radon: grade is the radon class, 2 to 6, the highest in the 1 km square.
  • coal: dataset is development-high-risk-area, coalfield, or mine-entry for a recorded shaft or adit within 50 m, with its distance and the Mining Remediation Authority's reference.
  • nsip: national infrastructure projects within 2 km. grade is the stage (pre-application to decided, or withdrawn), dataset the project type and reference the Planning Inspectorate's.
  • tpo with dataset tree: a single protected tree within 15 m. Only for a record pinned to the building, or your own coordinates or an address, never a postcode.
  • listed with dataset listed-building-outline: the council's outline of the building decided the hit, and relation within means the point is inside the listed building.
  • views: London protected views. dataset is corridor or wider, reference the view number.
  • floodcc: inside the Environment Agency's flood zones plus climate change, with the flood source as name.
  • flooddef: a flood defence within 50 m. name is its type, grade the flood it was designed for (100 for 1 in 100 years) and dataset what it protects against.
  • ptal: in London, TfL's public transport access level for the 100 m square. grade is the band, 0 to 6b, and dataset ptal-2023.
"constraints": [
  { "layer": "coal", "label": "Coal mining", "relation": "within",
    "dataset": "development-high-risk-area" },
  { "layer": "coal", "label": "Coal mining", "relation": "near", "metres": 18,
    "name": "Shaft", "reference": "360406-009", "dataset": "mine-entry" },
  { "layer": "radon", "label": "Radon", "relation": "within", "grade": "3" },
  { "layer": "flooddef", "label": "Flood defences", "relation": "near", "metres": 12,
    "name": "Embankment", "grade": "100", "dataset": "Fluvial" }
]

meta.sources on /v1/constraints names the new publishers, and the developer docs, the OpenAPI schema, llms.txt and the MCP tools describe every layer. Records already stamped are read again against the new layers overnight; until then a record keeps the constraints it had.