UK Planning Constraints Lookup avatar

UK Planning Constraints Lookup

Pricing

from $0.01 / 1,000 results

Go to Apify Store
UK Planning Constraints Lookup

UK Planning Constraints Lookup

Screen any UK postcode or coordinate against official planning designations — conservation areas, listed buildings, flood risk, green belt, tree preservation orders and more. Data from planning.data.gov.uk under Open Government Licence v3.0.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Angus Fong

Angus Fong

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Screen any UK postcode or coordinate against official planning designations, and get back a short answer to the only question that matters: what actually constrains what can be built here?

Give it BA1 1LZ and it tells you the site sits on a scheduled monument (the Roman Baths) inside the City of Bath World Heritage Site. Give it SW1A 1AA and it flags an Article 4 direction removing permitted development rights for basements — the sort of thing that derails a scheme after money has been spent.

Why not just query the government API directly?

You can — it is free and open. But a single central-London point returns 16 designations, and eleven of them are noise: border: England, a ward name, a built-up-area polygon, a local resilience forum boundary. True of everywhere, useful to nobody.

This Actor does three things the raw API does not:

  1. Filters signal from noise. Every designation is tiered blocking / material / advisory / administrative, so a 16-row response becomes "5 significant".
  2. Accepts postcodes. The API only takes coordinates; postcodes are resolved automatically.
  3. Stays fast enough to be usable. The API returns full boundary geometry by default — megabytes of MULTIPOLYGON per point, which times out on dense urban locations. Geometry is excluded unless you ask for it, taking a query from >90 seconds to under 10.

Input

{
"locations": ["SW1A 1AA", "BA1 1LZ", "51.5074,-0.1276"],
"datasets": [],
"includeGeometry": false,
"includeExpired": false,
"maxConstraintsPerLocation": 100
}
FieldTypeNotes
locationsarrayRequired. UK postcodes or "latitude,longitude" pairs (WGS84).
datasetsarrayRestrict to named datasets, e.g. conservation-area, flood-risk-zone. Empty returns everything.
includeGeometrybooleanAdds WKT boundaries. Large and slow — only for mapping.
includeExpiredbooleanInclude designations whose end-date has passed.
maxConstraintsPerLocationintegerSafety cap, default 100.

Output

One row per location:

{
"query": "BA1 1LZ",
"postcode": "BA1 1LZ",
"adminDistrict": "Bath and North East Somerset",
"latitude": 51.38131,
"longitude": -2.35931,
"headline": "Significant constraints",
"significantCount": 3,
"totalDesignations": 13,
"blocking": ["The Roman Baths and site of Roman town, Bath"],
"material": ["City of Bath", "Bath"],
"advisory": [],
"constraints": [
{
"dataset": "scheduled-monument",
"name": "The Roman Baths and site of Roman town, Bath",
"description": null,
"reference": "1006424",
"materiality": "blocking",
"startDate": "1950-06-13",
"endDate": null,
"documentationUrl": "https://historicengland.org.uk/listing/the-list/list-entry/1006424",
"entityId": 1234567,
"entityUrl": "https://www.planning.data.gov.uk/entity/1234567"
}
],
"truncated": false,
"source": "planning.data.gov.uk (Open Government Licence v3.0)",
"retrievedAt": "2026-07-26T18:42:00.000Z"
}

Failed locations return a row with an error field rather than aborting the run, so one bad postcode never costs you the batch.

Materiality tiers

TierMeaningExamples
blockingExpect refusal or fundamental redesignGreen belt, SSSI, scheduled monument, ancient woodland
materialAchievable, but consents and conditions applyConservation area, listed building, flood risk zone, Article 4 direction, TPO
advisoryWorth knowing, rarely decisive aloneAir quality management area, agricultural land classification
administrativePure geography, excluded from the headline countWard, parish, built-up area, region

Tiering is a coarse mapping by dataset and cannot see case-specific detail — flood risk in particular depends on the zone and the sequential test. Treat this as a screening tool that tells you where to look, not as planning advice.

Use as an MCP tool

Every Apify Actor is exposed automatically through Apify's MCP server, so an AI agent can call this without any additional setup:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

The agent finds it with search-actors and runs it with call-actor. Typical prompts it handles well:

  • "Is 12 High Street, Bath in a conservation area?"
  • "Screen these 40 postcodes and tell me which are in green belt."
  • "What planning constraints apply at 51.5074,-0.1276?"

Data source and licence

All planning data comes from planning.data.gov.uk, published under the Open Government Licence v3.0, which permits commercial reuse. Postcode resolution uses postcodes.io, built on ONS Postcode Directory data under the same licence.

Requests are rate-limited politely, as the source asks. If you are screening hundreds of sites regularly, download the bulk datasets instead — that is what the publisher recommends, and it will be cheaper than paying per call.

Limitations

  • England only. planning.data.gov.uk does not cover Scotland, Wales or Northern Ireland. A Scottish postcode resolves but returns no designations, which reads misleadingly as "clear" — check adminDistrict before trusting an empty result.
  • Not planning applications. This returns designations and constraints, not application histories or decisions.
  • Coverage varies by authority. Datasets are contributed by local planning authorities at differing rates; an absent designation is not proof of absence.
  • Point-in-polygon only. A site adjacent to a constraint — a listed building next door — will not be flagged. Use includeGeometry with a polygon query if you need proximity.