UK Planning Constraints Lookup
Pricing
from $0.01 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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:
- Filters signal from noise. Every designation is tiered
blocking/material/advisory/administrative, so a 16-row response becomes "5 significant". - Accepts postcodes. The API only takes coordinates; postcodes are resolved automatically.
- Stays fast enough to be usable. The API returns full boundary geometry by default — megabytes of
MULTIPOLYGONper 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}
| Field | Type | Notes |
|---|---|---|
locations | array | Required. UK postcodes or "latitude,longitude" pairs (WGS84). |
datasets | array | Restrict to named datasets, e.g. conservation-area, flood-risk-zone. Empty returns everything. |
includeGeometry | boolean | Adds WKT boundaries. Large and slow — only for mapping. |
includeExpired | boolean | Include designations whose end-date has passed. |
maxConstraintsPerLocation | integer | Safety 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
| Tier | Meaning | Examples |
|---|---|---|
blocking | Expect refusal or fundamental redesign | Green belt, SSSI, scheduled monument, ancient woodland |
material | Achievable, but consents and conditions apply | Conservation area, listed building, flood risk zone, Article 4 direction, TPO |
advisory | Worth knowing, rarely decisive alone | Air quality management area, agricultural land classification |
administrative | Pure geography, excluded from the headline count | Ward, 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
adminDistrictbefore 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
includeGeometrywith a polygon query if you need proximity.