Access official copies of title registers, title plans, leases, charges and other available property documents using our API.
Search for properties, check which documents are available and request official copies directly from HM Land Registry. Documents are delivered instantly as downloadable PDFs, making it easy to automate document ordering within your existing applications.
Designed for businesses and developers that regularly need access to official property documents.
Pay as you go - No subscription or minimum top-up.
Our API lets you find a property, identify its available documents and request official copies using three straightforward API calls.
Search using a UK postcode to retrieve matching properties and their unique Property IDs (PIDs). Choose the correct address from the results.
Use the property's PID to retrieve a list of documents available from HM Land Registry. The results include document types, title numbers and the information required to request each official copy.
Select the document you need and request it using the API. Most successful document orders return a downloadable PDF immediately. Where manual processing is required, the API will provide an order status and we'll notify you when the document is ready.
The API provides access to official copies of documents held by HM Land Registry for registered properties in England and Wales.
Note: Not every document mentioned in a title register is necessarily held on file or available for ordering. The API's document availability endpoint identifies which documents can be requested.
HM Land Registry's OC1 and OC2 forms are used to request different types of official copies.
The PropertyChecker Official Copies API allows developers to automate requests for many of the same types of documents, directly within their own software. Instead of preparing individual document applications, your application can identify a property, retrieve its available documents and submit requests programmatically. Most eligible documents are delivered immediately as PDFs.
The API provides an electronic document ordering service. It does not submit OC1 or OC2 paper forms and does not necessarily support every type of application available through those forms. It does not replace every OC1/OC2 workflow or support historical title records, certificates of inspection or documents unavailable through the API.
Incorporate title registers, title plans and filed document requests into property transaction workflows.
Add official document ordering to existing property platforms, CRMs or bespoke applications.
Request available official documents as part of property research, onboarding and transaction preparation.
Integrate document ordering into appropriate property, charge and lending review workflows.
Allow authorised users of property research and due diligence tools to request official documents.
Integrating the Official Copies API takes just a few minutes. You will need a PropertyChecker account, an API application and an API key:
Authentication uses the x-api-key HTTP header. All endpoints in this guide accept POST requests with JSON bodies.
x-api-key: YOUR_API_KEY
Content-Type: application/jsonAPI keys for the Official Copies API should be stored securely on your server (for example, in environment variables) and never exposed in publicly accessible frontend code.
POST https://api.propertychecker.co.uk/propertytools.api.v1.Public/ListProperties
Search for properties within a UK postcode to retrieve matching records and their unique Property Identifier (PID).
{
"postcode": "EX4 9BT"
}{
"property": [
{
"address": {
"paon": "12",
"street": "Meadowbrook Rise",
"town": "Holmbury",
"county": "Devon",
"postcode": "EX4 9BT",
"description": "12 Meadowbrook Rise, Holmbury"
},
"pid": "2d98ff20adfa491da0d668fc0ab53f6e",
"dataSource": "internal",
"type": "Semi-Detached"
},
{
"address": {
"paon": "14",
"street": "Meadowbrook Rise",
"town": "Holmbury",
"county": "Devon",
"postcode": "EX4 9BT",
"description": "14 Meadowbrook Rise"
},
"pid": "044a761117b035a97850c245f7e77445",
"dataSource": "internal",
"type": "Mid Terrace"
},
{
"address": {
"postcode": "EX4 9BT",
"description": "Garage Associated With, 14 Meadowbrook Rise, Holmbury"
},
"pid": "bc91bf654811f1809f2bbb473e3d3e26",
"dataSource": "internal"
}
]
}Actual responses may include additional property details, such as historic transaction records and valuation estimates. The primary fields needed for document ordering are:
property[] — Array of matching properties for the postcode.address.description — The formatted address for identification.pid — The unique identifier required for Step 2.Note: Results may list separate titles such as associated garages, parking spaces or leasehold flats. Ensure the intended property interest is selected before checking documents.
POST https://api.propertychecker.co.uk/propertytools.api.v1.Public/ListAvailableDocuments
Submit either the Property ID (pid) obtained in Step 1 or a registered titleNumber to retrieve all official documents available from HM Land Registry for that property.
{
"pid": "044a761117b035a97850c245f7e77445"
}{
"documents": [
{
"titleNumber": "DN546531",
"type": "Charge",
"typeCode": "20",
"entryNumbers": [
"B2",
"C2",
"C3"
],
"documentTypeCode": "50",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false
},
{
"titleNumber": "DN546531",
"type": "Lease",
"typeCode": "20",
"entryNumbers": [
"A2"
],
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false
},
{
"titleNumber": "DN546531",
"type": "Title Register",
"typeCode": "10",
"documentTypeCode": "10",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false,
"backdated": false
},
{
"titleNumber": "DN546531",
"type": "Title Plan",
"typeCode": "10",
"documentTypeCode": "20",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false,
"backdated": false
}
]
}| Field | Description |
|---|---|
titleNumber | Registered title number. |
type | Document type (e.g. Title Register, Title Plan, Lease, Charge). |
typeCode | Document classification code. |
documentTypeCode | Specific document type code required for ordering. |
entryNumbers | Relevant register entry references, where present. |
documentDate | Date associated with the document, where applicable. |
titleNumberFiledUnder | Title number under which the document is filed. |
availableForDownload | Boolean indicating whether the document can be requested. |
titleNumberMatches | Whether the title number matches the queried property. |
propertyDescription | Address description associated with the document. |
tenure | Property tenure (Freehold or Leasehold). |
titleNumberHasPendingApplications | Whether applications are currently pending against the title. |
backdated | Whether the official record is backdated, where applicable. |
Some fields may be omitted depending on the document type. Only documents where availableForDownload: true can be requested. When requesting a document in Step 3, pass the exact fields returned by this endpoint rather than generating your own identifiers.
POST https://api.propertychecker.co.uk/propertytools.api.v1.Public/GetOfficialCopy
This endpoint is used to purchase a new official copy or retrieve an existing, previously purchased document. Construct the request body using the exact metadata returned from ListAvailableDocuments.
{
"titleNumber": "DN546531",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"allowPurchase": false
}allowPurchase parameterThe allowPurchase boolean parameter protects you against unexpected or accidental purchase charges:
allowPurchase: falseOnly retrieves an existing document or current order status. If the document has already been purchased, the API returns the result without initiating another purchase. If it has not been purchased before, the API returns an HTTP 404 error. No new purchase is authorised.
allowPurchase: trueAuthorises a chargeable document purchase if the API cannot return an existing or valid cached result. When HM Land Registry accepts the purchase request, the applicable document fee is deducted from your prepaid balance.
Recommendation: Always set allowPurchase explicitly in every request. Require explicit confirmation from your end users before submitting allowPurchase: true.
{
"titleNumber": "DN546531",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"orderStatus": "Completed",
"filePath": "https://storage.googleapis.com/official_copies/...",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false,
"backdated": false,
"allowPurchase": false
}The response above illustrates a completed order (signed URL shortened for readability). Key points:
orderStatus: "Completed" confirms the document is ready for immediate download.filePath provides a secure signed PDF download URL.allowPurchase: false.PropertyChecker operates a transparent prepaid API with no monthly subscription or minimum top-up. Visit the API documentation for current per-endpoint pricing.
A new document purchase is charged when HM Land Registry accepts the request. The vast majority of accepted requests return a downloadable PDF immediately. In rare cases where the document requires manual processing or upstream systems undergo maintenance, the fee is charged upon acceptance; if the document ultimately cannot be supplied, a credit for the purchase fee is automatically issued back to your PropertyChecker account balance. Requests rejected because the document is unavailable or the title number is incorrect do not incur a document purchase fee.
Each API application has a configurable cache duration (default: 86,400 seconds / 24 hours), editable within your application settings on the Apps page. Caching prevents duplicate billing from accidental retries or coding loops.
Important: Caching alone does not guarantee against duplicate charges. The only guaranteed safeguard against initiating a new purchase is setting allowPurchase: false.
We recommend storing original request parameters, document types, title numbers and response metadata in your database. This makes it effortless to check order status, retrieve fresh PDF URLs or verify previous purchases without incurring additional charges.
While most official copy orders return a PDF instantly, some requests require manual processing, or are submitted when the HM Land Registry system is closed outside operating hours (11:00 PM – 6:30 AM). When this occurs, the request is accepted and queued, and the API returns:
{
"titleNumber": "DN546531",
"type": "Charge",
"typeCode": "20",
"documentTypeCode": "50",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"additionalInformation": "The document request has been accepted by HM Land Registry and is queued for manual processing.",
"availableForDownload": false,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"orderStatus": "Needs Manual Processing",
"filePath": "",
"tenure": "",
"titleNumberHasPendingApplications": false,
"backdated": false,
"allowPurchase": true
}This indicates that the order was accepted by HM Land Registry, but the PDF document is queued or being prepared. You will receive an automated email at your registered PropertyChecker account email address as soon as the document is ready.
You can also check the status programmatically by re-sending the original GetOfficialCopy request with allowPurchase: false. When processing completes, the API returns the standard completed response with the signed PDF URL in filePath. Do not submit a new purchase while waiting for processing.
To access a previously purchased document or refresh an expired download link, repeat the original GetOfficialCopy request with allowPurchase: false:
{
"code": 5,
"message": "No existing document found for this property. Please pass 'allowPurchase: true' with the request body to purchase this document.",
"details": [
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"stackEntries": [],
"detail": "internal"
}
]
}If you receive this response and your user confirms they wish to purchase the document, re-send the request with allowPurchase: true. Never retry automatically with purchases enabled.
You can test the end-to-end GetOfficialCopy flow without contacting HM Land Registry or incurring a document purchase fee by using the special test title number: "TEST".
{
"titleNumber": "TEST",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "TEST",
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"allowPurchase": false
}{
"titleNumber": "TEST",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "TEST",
"additionalInformation": "This is a test request. HM Land Registry was not contacted and no charge was incurred.",
"availableForDownload": true,
"titleNumberMatches": true,
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"orderStatus": "Completed",
"filePath": "https://storage.googleapis.com/official_copies/sample/title-register.pdf?...",
"tenure": "Leasehold",
"titleNumberHasPendingApplications": false,
"backdated": false,
"allowPurchase": false
}This mock request confirms that your application handles response parsing, order statuses and PDF downloads correctly without contacting HM Land Registry or deducting document purchase fees from your balance.
You can use an AI coding assistant to add the Official Copies API to an existing application. We've prepared a comprehensive prompt containing the API endpoints, request parameters, purchase safeguards and document retrieval processes.
Copy the prompt below into your preferred AI coding tool, add your API key and follow the setup instructions:
Integrate the PropertyChecker Official Copies API into my existing application.
Inspect the project and use the current programming language, framework, architecture, styling and authentication system.
Build an interface allowing users to:
Search for properties by postcode.
Select the correct property.
View official documents available for that property.
Retrieve existing documents or explicitly authorise new purchases.
Download completed documents as PDFs.
Check the status of documents requiring manual processing.
API base URL:
https://api.propertychecker.co.uk
Authentication headers:
x-api-key: YOUR_API_KEY
Content-Type: application/json
The API key must be stored securely on the server using an environment variable named PROPERTYCHECKER_API_KEY.
Never expose the key to the browser.
STEP 1
POST /propertytools.api.v1.Public/ListProperties
Example body:
{"postcode":"EX4 9BT"}
The response contains an array named property. Each record has a pid and address object.
Show the results and allow selection of a property.
STEP 2
POST /propertytools.api.v1.Public/ListAvailableDocuments
Example body:
{"pid":"PROPERTY_PID"}
The response contains a documents array.
Show each document's type, title number and availability.
Only allow ordering when availableForDownload is true.
STEP 3
POST /propertytools.api.v1.Public/GetOfficialCopy
Example request:
{
"titleNumber": "DN546531",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "DN546531",
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"allowPurchase": false
}
Use the selected document details returned by ListAvailableDocuments to construct the request.
Do not invent missing parameters.
PURCHASE RULES:
allowPurchase: false only retrieves existing documents or order statuses. It must not create a new purchase.
allowPurchase: true authorises a chargeable document purchase.
Never send allowPurchase: true automatically.
Require explicit user confirmation before making any purchase.
Show a warning that the request is chargeable and refer users to the current API pricing.
COMPLETED ORDERS:
orderStatus:"Completed" means the document is ready.
filePath contains a signed PDF download URL.
Display a download action.
Signed URLs expire after seven days.
To retrieve a fresh URL, repeat the original request with allowPurchase: false.
MANUAL PROCESSING:
orderStatus:"Needs Manual Processing" means the order was accepted but the PDF is not ready (for example, when queued for manual processing or requested outside HM Land Registry operating hours between 11PM and 6:30AM).
Display a pending status and a Check Status button.
Check Status must repeat the original request with allowPurchase: false.
Do not submit a new purchase.
ERROR HANDLING:
HTTP 404 with code 5 may indicate that no previously purchased document exists.
Display an appropriate message and allow the user to explicitly choose whether to make a new purchase.
Never automatically retry with allowPurchase: true.
Handle other API errors safely without assuming undocumented error formats.
TESTING:
Test GetOfficialCopy using this body:
{
"titleNumber": "TEST",
"type": "Lease",
"typeCode": "20",
"documentTypeCode": "90",
"documentDate": "2006-12-22",
"titleNumberFiledUnder": "TEST",
"propertyDescription": "14 Meadowbrook Rise, Holmbury, EX4 9BT",
"tenure": "Leasehold",
"allowPurchase": false
}
This does not initiate a real document purchase.
Build secure server-side API routes or actions.
Store the original document request parameters and relevant response metadata if the project has a suitable database.
Never make a real document purchase during development or testing.
Preserve authentication and authorisation when allowing access to stored document data.
Provide an environment variable example, explain configuration and test the integration before completion.
Implement the full workflow using the project's existing design system and conventions.Official property documents may contain personal data, including proprietor names, addresses and details of financial or legal interests. When integrating the API, consider your obligations under UK GDPR and the Data Protection Act 2018:
Yes. The API requests genuine official copies of documents held by HM Land Registry for registered properties in England and Wales.
For supported documents, yes. The API can be used to request official copies of title registers and title plans, which are commonly requested using form OC1. It is an electronic ordering service rather than a mechanism for submitting paper OC1 forms, and does not cover every application available through OC1.
For supported filed documents, yes. The API can request available leases, charges and other filed documents of the kinds commonly requested using form OC2. Availability depends on the records held by HM Land Registry.
The vast majority of successful orders return a downloadable PDF immediately. Occasionally, additional processing is required. You can check the order status through the API, and we'll email you when the document is ready.
No. You can start by searching for a postcode and selecting the correct property. The API will identify available documents and their title numbers.
Yes. Use the ListAvailableDocuments endpoint to view the documents associated with a property before ordering.
Yes. Use GetOfficialCopy with allowPurchase set to false. If an existing document is available, the API returns a fresh signed URL without authorising a new purchase.
If HM Land Registry rejects a request because the document is unavailable or the title number is incorrect, no document purchase fee is charged. If an accepted and charged request ultimately cannot be fulfilled, we'll credit the purchase fee back to your PropertyChecker account balance.
Yes. API applications have configurable caching, with a default period of 24 hours. For guaranteed protection against initiating a new purchase, use allowPurchase: false.
No. PropertyChecker offers a prepaid API with no subscription requirement or minimum top-up.
Yes. Use the special TEST title number with GetOfficialCopy to test without contacting HM Land Registry or incurring a document purchase charge.
No. HM Land Registry covers registered land in England and Wales. Scotland and Northern Ireland use separate land registration systems.
Yes. The API is designed for software integration. Use the technical documentation and copyable AI integration prompt on this page to get started.
Whether you need to request a handful of documents or automate document ordering across a larger property platform, our API makes it straightforward to find properties, check availability and request official copies. Most documents are delivered instantly, and our prepaid billing means you can add funds when you need them. Create an API application, get your API key and start testing.
Only need documents for one property? Order them online instead.