England and Wales

Land Registry & Title API

Three calls take you from an address to an official HM Land Registry PDF: find the title number, confirm what's available, then order it.

7 Land Registry endpointsOS NGD property contextHMLR official copiesOptional register extraction

How it works

Every official copy follows the same three-step chain. Each call's response carries what you need into the next one.

Real Land Registry requests require an active paid API plan. During your trial, use the free synthetic register extraction test. Other Land Registry requests return 403 with code PAID_API_SUBSCRIPTION_REQUIRED until your paid plan is active.

Skipping step 2 is fine

Step 2 is there so you can check status, availability and price before committing. If you already trust the title number and know what you want, you can call step 3 directly.

Step 1

Find the title number

POST /land-registry/title-matches

Send a UPRN where you have one, or a property address and full postcode and we'll resolve the UPRN for you. The response lists candidate titles — take the titleNumber for whichever one matches and use it in step 2.

Request

curl -X POST "https://propertyinsights.co.uk/api/v1/land-registry/title-matches" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  --data '{
  "address": "14 Example Avenue, Exampleton",
  "postcode": "ZZ1 1ZZ"
}'

To search with a known UPRN instead, replace address and postcode with "uprn": "YOUR_UPRN".

Response

{
  "success": true,
  "data": {
    "status": "matched",
    "count": 1,
    "titles": [
      {
        "titleNumber": "GR514442",
        "tenure": "Freehold",
        "matchedAddress": "14 Example Avenue, Exampleton, AB1 2CD"
      }
    ]
  }
}

status is matched, multiple or no_match. On multiple, show the candidates and let the caller confirm which title to use.

Lookups can be delayed by HMLR

If HM Land Registry queues the lookup, this call returns 503 with a Retry-After header instead of a match. Delayed and failed lookups are never charged.

Orders are accepted around the clock

HMLR Information Services operates from 06:30 to 23:00 every day in Europe/London. Orders placed outside those hours reserve Purchase Balance and credits once, return waiting_for_hmlr with retryAfter, and are submitted after the next opening. Cash is captured only after HMLR acknowledges the order.

Step 2 · optional

Confirm the available documents

GET /land-registry/titles/{titleNumber}

Pass the titleNumber from step 1 to check the title's status, which documents HMLR currently holds, and the exact price for every document combination. Use these prices to set maximumChargePence in step 3.

Request

curl -X GET "https://propertyinsights.co.uk/api/v1/land-registry/titles/GR514442" \
  -H "x-api-key: YOUR_API_KEY"

Response

{
  "success": true,
  "data": {
    "title": { "titleNumber": "GR514442", "status": "VALID", "applicationsPending": false },
    "documents": {
      "register": { "status": "available", "backdated": false },
      "plan": { "status": "available", "backdated": false },
      "referred": []
    },
    "pricing": {
      "currency": "GBP",
      "register": { "totalPence": 700, "totalCredits": 50 },
      "plan": { "totalPence": 700, "totalCredits": 50 },
      "both": { "totalPence": 1400, "totalCredits": 100 },
      "registerWithExtraction": { "totalPence": 700, "totalCredits": 150 },
      "bothWithExtraction": { "totalPence": 1400, "totalCredits": 200 }
    }
  }
}

See pricing for the full breakdown of each figure. documents.register.status and documents.plan.status tell you what step 3 can actually order.

This step is skippable

If you already know the title is orderable and its price, go straight to step 3 — it re-checks availability for you before charging anything.

Step 3

Order the documents

Official-copy purchasing is available automatically with an active paid API plan, sufficient Purchase Balance and API credits. No manual approval is needed. Authorise the exact amount you expect to pay and use a unique Idempotency-Key per order attempt.

Place the order

POST /land-registry/title-orders
curl -X POST "https://propertyinsights.co.uk/api/v1/land-registry/title-orders" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: matter-example-001" \
  -H "content-type: application/json" \
  --data '{
  "titleNumber": "GR514442",
  "documentType": "both",
  "extractRegisterText": true,
  "purchaseAuthorisation": {
    "maximumChargePence": 1400
  }
}'

202 response

{
  "success": true,
  "data": {
    "id": "ORDER_UUID",
    "titleNumber": "GR514442",
    "documentType": "both",
    "status": "queued",
    "cost": {
      "totalPence": 1400,
      "paymentStatus": "balance_reserved",
      "totalCredits": 200
    },
    "documents": [],
    "created": true
  }
}

After ordering

The order processes asynchronously. Poll it for status, then download the PDF and, if you asked for extraction, its structured text.

GET/land-registry/title-orders/{orderId}check status
GET/land-registry/title-orders/{orderId}/documents/{kind}/originaldownload PDF
GET/land-registry/title-orders/{orderId}/documents/register/textextracted text

kind is register, plan or referred_document. Polling and text retrieval are free; they were already charged at order time.

{
  "type": "register",
  "status": "available",
  "downloadUrl": "/api/v1/land-registry/title-orders/ORDER_UUID/documents/register/original",
  "extraction": {
    "status": "ready",
    "text": "A. Property Register ...",
    "data": {
      "title": { "titleNumber": "GR514442", "tenure": "Freehold" },
      "parties": [],
      "rightsAndBurdens": [],
      "referredDocuments": [],
      "enquiries": [],
      "warnings": []
    }
  }
}

extraction.data carries title facts, parties, rights and burdens, referred documents, plain-language enquiries and warnings. It omits provider metadata and per-field evidence — the PDF at downloadUrl stays the source document, and the extracted output needs professional review before it's relied on.

Order fieldRequiredDescription
titleNumberYesConfirmed HMLR title number from step 1 or 2.
documentTypeYesregister, plan or both.
extractRegisterTextNoAdds transcription and structured JSON. Defaults to false; cannot be used on a plan-only order.
purchaseAuthorisation.maximumChargePenceYesExact Purchase Balance amount for the PDFs, in pence — see pricing.
backdatedCopyConfirmedNoExplicitly permits a backdated copy when HMLR reports pending applications. Defaults to false.

Reservations are atomic

Purchase Balance and API credits are reserved together when the order is placed. A pre-submission failure refunds everything; if extraction alone fails after the PDF is ready, only the extraction credits are refunded. Reuse the same Idempotency-Key when retrying the same request — a reused key on a different request returns 409.

Try before you order

Test extraction without buying a document

POST /land-registry/test-register-extraction

Generates a clearly marked synthetic register for fixed test title GR514442 and returns it in the same structured JSON format as a real order's extraction. It always uses 99 Flake Avenue, Torquay, TQ56 4HY and accepts no parameters.

No HMLR orderNo official-copy fee.
Free testNo API credits or Purchase Balance funds are used.
Test outputNot an official copy or legal evidence.
curl -X POST "https://propertyinsights.co.uk/api/v1/land-registry/test-register-extraction" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  --data '{}'

Signed-in customers can also run it from the API Playground using their production API key.

Geographic availability

Coverage by UK nation

Green: supported Amber: partial Red: not supported

The colour is a geographic coverage indicator, not a risk score. Always inspect source status and completeness in the API response.

England

Supported

HMLR title matching, document availability and Official Copy ordering are configured.

Wales

Supported

HMLR title matching, document availability and Official Copy ordering are configured.

Scotland

Not supported

Registers of Scotland title services are not integrated.

Northern Ireland

Not supported

Land Registry Northern Ireland title services are not integrated.

Authentication

All requests to the Land Registry & Title 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.

Pricing

Title lookups and availability checks use API credits. Official copies use Purchase Balance for the HMLR fee plus API credits for the document and any extraction.

OperationCharged fromCost
1. Title lookup from address or UPRNAPI credits25 credits
2. Document availability checkAPI credits25 credits
3. Official register or planPurchase Balance + API credits£7 HMLR cost + 50 credits
3. Register and planPurchase Balance + API credits£14 HMLR cost + 100 credits
3. Register extraction (optional add-on)API credits100 credits
Property ProfileAPI credits100 credits
Test extractionNot chargedFree

Add funds from the Billing page before placing a live order. A delayed or failed title lookup or availability check is never charged; a delayed lookup returns 503 with retryAfter instead.

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.

All endpoints

MethodEndpointUse
POST/api/v1/land-registry/title-matchesFind title numbers from a UPRN, or an address and postcode.
GET/api/v1/land-registry/titles/{titleNumber}Check title status, document availability and pricing.
POST/api/v1/land-registry/test-register-extractionExtract the fixed synthetic GR514442 register without ordering from HMLR.
POST/api/v1/land-registry/title-ordersPlace an authorised official-copy order.
GET/api/v1/land-registry/title-orders/{orderId}Read fulfilment and extraction status.
GET/api/v1/land-registry/title-orders/{orderId}/documents/{kind}/originalDownload the account-owned official PDF.
GET/api/v1/land-registry/title-orders/{orderId}/documents/register/textRetrieve register text and structured enquiry signals.

Common responses

HTTPMeaning
400A request field, title number, order ID or purchase authorisation is invalid.
401The API key is missing or invalid.
402Purchase Balance or API credits are insufficient, the balance has debt, or the purchase amount is outside the account limit.
403An active paid API plan is required. Trials can use the free synthetic register extraction test.
404The property, title, order or document was not found for this account.
409The title is closed, continued, unavailable, requires manual review, needs backdated confirmation, or an idempotency key was reused.
423The Purchase Balance account is held pending operator reconciliation.
425The official document exists but its extracted text is not ready yet.
503A title lookup was delayed by HM Land Registry, or register extraction is temporarily unavailable. Delayed and failed informational calls do not deduct API credits.
502 / 504An upstream property-data or HMLR service failed or timed out.

Important limitations

HMLR INSPIRE polygons show general boundaries. OS NGD attributes describe mapped features and may not reflect current site conditions. Automated enquiry signals are review prompts, not legal conclusions. None of these outputs replaces the official copy, a survey or professional legal judgement.