Property Boundary API

Resolve a property UPRN, HM Land Registry title number, and INSPIRE boundary geometry in one request.

England and WalesGeoJSONAPI key authentication35 credits per completed lookup

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

Never expose your API key in client-side code. Always make API calls from your server-side application to protect your credentials.

Endpoint

GET
https://propertyinsights.co.uk/api/v1/property/boundary

Request parameters

ParameterRequiredDescription
uprnPreferredA 1 to 12 digit UPRN. Provide this, or provide both address and postcode.
addressConditionalThe property address. Required with postcode when a UPRN is not supplied.
postcodeConditionalThe England or Wales postcode for the address.
titleNumberOptionalSelects 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 headerMeaning
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

HTTPCodeMeaning
400MISSING_PROPERTYNeither a UPRN nor an address and postcode pair was supplied.
404UPRN_NOT_FOUNDThe supplied UPRN is not present in AddressBase.
404BOUNDARY_NOT_FOUNDNo HMLR INSPIRE polygon was found near the address point.
409ADDRESS_AMBIGUOUSSeveral AddressBase records match. Candidate UPRNs are returned.
409MULTIPLE_TITLESSeveral title numbers match. Retry with one returned titleNumber.
402INSUFFICIENT_CREDITSThe API account has fewer than the 35 credits required for this lookup.
502/504BOUNDARY_SERVICE_UNAVAILABLEA 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" }
    ]
  }
}