Property Boundary API
Resolve a property UPRN, HM Land Registry title number, and INSPIRE boundary geometry in one request.
Overview
The Property Boundary API identifies an address from AddressBase, confirms its UPRN, searches HM Land Registry for the title number, and returns the matching HMLR INSPIRE polygon.
- UPRN: the canonical Unique Property Reference Number and address point.
- Title: the matched HM Land Registry title number, tenure, and match status.
- Boundary: GeoJSON geometry, GPS points, area, bounding box, and dataset version.
General boundary data
HM Land Registry title plans usually show general boundaries. The returned coordinates are suitable for property research and mapping, but they are not surveyed legal boundary coordinates.
Authentication
All requests to the Property Boundary API require authentication using an API key. You can obtain your API key from your PropertyInsights dashboard after subscribing to an API plan.
Include your API key in the request header as follows:
X-API-Key: your_api_key_here
Security Warning
Endpoint
https://propertyinsights.co.uk/api/v1/property/boundary
Request parameters
| Parameter | Required | Description |
|---|---|---|
| uprn | Preferred | A 1 to 12 digit UPRN. Provide this, or provide both address and postcode. |
| address | Conditional | The property address. Required with postcode when a UPRN is not supplied. |
| postcode | Conditional | The England or Wales postcode for the address. |
| titleNumber | Optional | Selects a title when the first request returns MULTIPLE_TITLES. |
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.
Response
{
"success": true,
"data": {
"address": {
"uprn": "100120944825",
"fullAddress": "12 EXAMPLE STREET, EXAMPLETON, EX1 2AB",
"postcode": "EX1 2AB",
"coordinates": {
"latitude": 53.3637,
"longitude": -1.4988
}
},
"title": {
"titleNumber": "SYK123456",
"tenure": "Freehold",
"matchedAddress": "12 Example Street, Exampleton",
"matchStatus": "matched"
},
"boundary": {
"type": "Feature",
"id": "SYK123456",
"geometry": {
"type": "Polygon",
"coordinates": [[
[-1.499, 53.363],
[-1.498, 53.363],
[-1.498, 53.364],
[-1.499, 53.363]
]]
},
"gpsPoints": [
{ "index": 1, "latitude": 53.363, "longitude": -1.499 }
],
"areaSqM": 412.5,
"titleReference": "SYK123456",
"matchMethod": "title_and_point",
"containsAddressPoint": true
}
}
}GeoJSON coordinates
The GeoJSON geometry uses [longitude, latitude] order.
GPS points
The gpsPoints array uses named latitude and longitude fields for easier display.
Examples
Lookup by UPRN
curl "https://propertyinsights.co.uk/api/v1/property/boundary?uprn=100120944825" \ -H "x-api-key: YOUR_API_KEY"
Lookup by address
curl "https://propertyinsights.co.uk/api/v1/property/boundary?address=12%20Example%20Street&postcode=EX1%202AB" \ -H "x-api-key: YOUR_API_KEY"
Resolve multiple titles
curl "https://propertyinsights.co.uk/api/v1/property/boundary?uprn=100120944825&titleNumber=SYK123456" \ -H "x-api-key: YOUR_API_KEY"
Error handling
| HTTP | Code | Meaning |
|---|---|---|
| 400 | MISSING_PROPERTY | Neither a UPRN nor an address and postcode pair was supplied. |
| 404 | UPRN_NOT_FOUND | The supplied UPRN is not present in AddressBase. |
| 404 | BOUNDARY_NOT_FOUND | No HMLR INSPIRE polygon was found near the address point. |
| 409 | ADDRESS_AMBIGUOUS | Several AddressBase records match. Candidate UPRNs are returned. |
| 409 | MULTIPLE_TITLES | Several title numbers match. Retry with one returned titleNumber. |
| 402 | INSUFFICIENT_CREDITS | The API account has fewer than the 35 credits required for this lookup. |
| 502/504 | BOUNDARY_SERVICE_UNAVAILABLE | A source service failed or timed out. No credit is deducted. |
Ambiguous title response
{
"success": false,
"error": {
"code": "MULTIPLE_TITLES",
"message": "More than one title number matches this address. Retry with titleNumber.",
"candidates": [
{ "titleNumber": "SYK123456", "tenure": "Freehold" },
{ "titleNumber": "SYK654321", "tenure": "Leasehold" }
]
}
}