API Documentation

BILTD Pro API

Integrate UK planning intelligence into your platform. Design envelopes, permitted development checks, and site opportunity search — all via a single REST API.

Base URL: https://pro.getbiltd.com/api/v1·Format: application/json·Generate API key →

Authentication

All API requests require a Bearer token in the Authorization header. Generate API keys from your BILTD Pro settings.

Request header
Authorization: Bearer biltd_live_xxxxxxxxxxxxxxxxxxxxxxxx
Keep your API keys secure. Do not expose them in client-side code. Rotate keys immediately if compromised.

Rate Limits

Rate limits are enforced per API key on a rolling hourly window.

Plan tierLookups/hourBatch queries/hour
Starter1005
Practice50020
Office1,00050
Enterprise1,000+100+

Rate limit status is returned in every response:

Response headers
X-RateLimit-Reset: 2026-04-11T15:00:00.000Z

When a rate limit is exceeded, the API returns HTTP 429 Too Many Requests.

GET/api/v1/design-envelope

Returns the permitted development zones for a residential property: the PD rear extension zone (up to 3m/4m), Prior Approval zone (up to 6m/8m), and curtilage area (outbuilding limit). Derived from HMLR INSPIRE plot boundaries + OS/OSM building footprints + GPDO 2015 rules.

Query parameters

ParameterTypeRequiredDescription
uprnstringOne of uprn, lat+lng, or addressUnique Property Reference Number. Preferred over lat/lng for accuracy.
lat + lngnumberOne ofWGS84 decimal coordinates. Both required if using lat/lng.
addressstringOne ofFull UK address string. Used to geocode if UPRN/coordinates unavailable.
houseTypestringNoOS Places house type hint: detached, semi-detached, terraced. Improves property type inference.
includeConstraintsbooleanNoSet true to include designated land overlay (conservation area, AONB, listed building, Article 4). Adds ~1s latency.
includeFeasibilitybooleanNoSet true to include financial feasibility estimates (build cost range, value uplift). Requires postcode in address string.

Example request

cURL
curl -H "Authorization: Bearer biltd_live_xxx" \
  "https://pro.getbiltd.com/api/v1/design-envelope?uprn=10002004456&includeConstraints=true"
JavaScript
const res = await fetch(
  'https://pro.getbiltd.com/api/v1/design-envelope?uprn=10002004456&includeConstraints=true',
  { headers: { Authorization: 'Bearer biltd_live_xxx' } }
);
const data = await res.json();
console.log(data.zones?.rearExtPdDepthM); // e.g. 4 (metres)
Python
import httpx

r = httpx.get(
    'https://pro.getbiltd.com/api/v1/design-envelope',
    params={'uprn': '10002004456', 'includeConstraints': 'true'},
    headers={'Authorization': 'Bearer biltd_live_xxx'}
)
data = r.json()
print(data['propertyType'])  # 'detached'

Response schema

JSON response
{
  "uprn": "10002004456",
  "lat": 51.5123,
  "lng": -0.1234,
  "address": "1 EXAMPLE STREET, LONDON, SW1A 1AA",
  "plotAreaM2": 320,
  "curtilageM2": 210,
  "propertyType": "semi_detached",
  "titleNumber": "AGL123456",
  "dataSources": {
    "plot": "hmlr_inspire",
    "building": "os_features"
  },
  "constraintsSummary": {      // null if includeConstraints not set
    "hasConstraints": false,
    "allRightsBlocked": false,
    "reducedRights": false,
    "conservationArea": false,
    "aonb": false,
    "nationalPark": false,
    "listedBuilding": false,
    "article4": false,
    "appliedPdDepthM": 3,
    "appliedPaDepthM": 6
  },
  "feasibility": null,         // null if includeFeasibility not set
  "zones": {
    "rearExtPdDepthM": 3,
    "rearExtPaDepthM": 6,
    "pdOutbuildingM2": 105,
    "curtilageM2": 210,
    "propertyType": "semi_detached",
    "rearExtPd": { "type": "Feature", "geometry": { ... } },
    "rearExtPa": { "type": "Feature", "geometry": { ... } },
    "outbuildingArea": { "type": "Feature", "geometry": { ... } },
    "sideExt": null
  },
  "plotPolygon": { "type": "Polygon", "coordinates": [ ... ] },
  "buildingPolygon": { "type": "Polygon", "coordinates": [ ... ] }
}

Error codes

HTTP statusMeaning
400Missing required parameters
401Invalid or missing API key
404No INSPIRE plot polygon for this property (leasehold, unregistered, or new development)
422Could not resolve coordinates from provided address
429Rate limit exceeded
500Internal error — contact support

Use cases

Estate agents & portals

Enrich property listings with “development potential” attributes. Show buyers the maximum rear extension available at a glance.

Mortgage lenders & AVMs

Factor permitted development potential into automated valuations. Properties with significant PD headroom consistently command a premium.

Planning consultants

Automate pre-application feasibility screening across client portfolios. Identify the strongest development opportunities before site visits.

PropTech platforms

Embed plot boundaries and PD zones directly into your map layers. GeoJSON output is compatible with Mapbox, Leaflet, and QGIS.

Get started

Generate an API key from your BILTD Pro account settings. Free trial: 100 lookups on sign-up.