Location intelligence
Planning Constraints API
Find known listed building, conservation area, Article 4 direction, and tree preservation constraints near a postcode or coordinate.
Endpoint
/api/v1/planning/constraintsProvide postcode, or both latitude and longitude.
Billing details in the response
Successful chargeable JSON responses include a top-level billing object. The endpoint examples on this page focus on the endpoint-specific data, so this repeated block may not be shown in every example.
"billing": {
"mode": "prepaid",
"creditsCharged": 1,
"creditsRemaining": 1999,
"creditsRefreshAt": "2026-08-14T09:30:00.000Z"
}| Field or header | Meaning |
|---|---|
| billing.creditsCharged X-Credits-Charged | Credits charged by this call. Failed and non-chargeable calls return 0 in the header. |
| billing.creditsRemaining X-Credits-Remaining | The credit balance after the call. |
| billing.creditsRefreshAt X-Credits-Refresh-At | The next monthly credit refresh as an ISO 8601 timestamp. Trial and non-renewing balances return null and omit the header. |
All authenticated API-key calls expose the billing headers, including validation errors and zero-credit status or management requests. Only successful chargeable JSON responses add the billing object to the response body.
Parameters
| Name | Required | Type | Description |
|---|---|---|---|
| postcode | No | string | Full UK postcode. Alternatively provide coordinates. |
| latitude | No | number | Latitude when postcode is omitted. |
| longitude | No | number | Longitude when postcode is omitted. |
| radiusMetres | No | integer | Search radius from 0 to 2,000 metres. Defaults to 100. |
| datasets | No | string | Comma-separated dataset names to include. |
| includeGeometry | No | boolean | Include GeoJSON geometry. Defaults to false. |
| limit | No | integer | Maximum results, up to 100 or 25 with geometry. |
Source and coverage
- Source
- planning.data.gov.uk under the Open Government Licence v3.0
- Coverage
- England where participating national and local sources provide records
A returned result confirms a known constraint. An empty result does not prove that no constraint applies because source authority coverage is incomplete.
Example request
curl "https://propertyinsights.co.uk/api/v1/planning/constraints?postcode=ZZ1%201ZZ&radiusMetres=250" \
-H "x-api-key: YOUR_API_KEY"Example response
{
"success": true,
"data": {
"input": {
"postcode": "ZZ1 1ZZ",
"radiusMetres": 250
},
"count": 1,
"constraints": [
{
"dataset": "conservation-area",
"reference": "CA-001",
"intersects": true,
"distanceMetres": 0
}
]
}
}OpenAPI specification
Authentication, parameters, billing headers and response schemas are also published in the machine-readable OpenAPI document.