Land Insight Ownership API
Endpoints to get details about land ownership and property information.
Endpoints to get details about land ownership and property information.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/land-insight-ownership-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.3
info:
title: LandTech Additional Opportunities Ownership API
description: 'Search for land parcels and retrieve detailed insights on ownership, planning applications and property details.
'
version: 0.3.0
servers:
- url: https://app.land.tech/api
description: LandTech API Service
security:
- ApiKeyAuth: []
tags:
- name: Ownership
description: Endpoints to get details about land ownership and property information.
paths:
/titles/{title_number}:
get:
operationId: getTitleDetails
summary: Details of a registered title
description: 'Get information about a title, given a HM Land Registry title number.
'
tags:
- Ownership
parameters:
- in: path
name: title_number
required: true
schema:
$ref: '#/components/schemas/TitleNumber'
description: Title number for a parcel of land.
example: WT77573
responses:
'200':
description: Title details found
content:
application/json:
schema:
$ref: '#/components/schemas/TitleDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
/titles:
post:
operationId: getTitlesBulk
summary: Bulk title details
description: 'Fetch details for up to 200 titles in a single request.
'
tags:
- Ownership
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkTitleRequest'
responses:
'200':
description: Bulk title details or error response.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/BulkTitleResponse'
- $ref: '#/components/schemas/BulkTitleError'
/properties/{uprn}:
get:
operationId: getPropertyDetails
summary: Details about a property
description: 'Get information about a property, given a Unique Property Reference Number (UPRN).
'
tags:
- Ownership
parameters:
- in: path
name: uprn
required: true
schema:
$ref: '#/components/schemas/UPRN'
description: UPRN for a specific property.
example: '100010716016'
responses:
'200':
description: Property Information
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyInformation'
examples:
validResponse:
summary: Valid property information
value:
data:
propertyInformation:
address:
uprn: '100010716016'
full_address: 17 Manor Road, Lancashire, Garstang, PR3 1JR
property_type: Semi-Detached
property_state: In Use
property_class_code: RD03
use_class: Residential (C3)
building_height:
highest_point: 3.7
roof_height: 1.2
no_floors_estimate: 1
epc:
current_energy_rating: D
potential_energy_rating: B
total_floor_area: 103.4
nullResponse:
summary: UPRN not found
value:
data:
propertyInformation: null
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: UPRN not supplied
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
errorResponse:
value:
error_msg: route not found
/properties:
post:
operationId: getPropertiesBulk
summary: Bulk property details
description: 'Fetch details for up to 200 properties in a single request.
'
tags:
- Ownership
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPropertyRequest'
responses:
'200':
description: Bulk property details or error response.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/BulkPropertyResponse'
- $ref: '#/components/schemas/BulkPropertyError'
components:
schemas:
BulkPropertyRequest:
type: object
required:
- properties
properties:
properties:
type: array
description: List of property UPRNs (max 200)
maxItems: 200
items:
type: string
example: '100023523019'
RegisteredLease:
description: Details of a registered lease.
type: object
nullable: true
properties:
start_date:
description: Lease start date.
type: string
format: date-time
example: '1987-12-18T00:00:00.000Z'
end_date:
description: Lease end date.
type: string
format: date-time
example: '2112-12-18T00:00:00.000Z'
UPRN:
type: string
description: Unique Property Reference Number (UPRN) is a unique numeric identifier for every addressable location in Great Britain, found in Ordnance Survey's AddressBase products.
pattern: ^\d{1,12}$
TitleNumber:
description: The title number is a unique identifier for registered land in England and Wales, governed by HM Land Registry.
type: string
example: WT77573
PropertyInformation:
type: object
properties:
data:
type: object
properties:
propertyInformation:
type: object
nullable: true
description: Property Information details. Will be `null` if no data is found.
properties:
address:
type: object
properties:
uprn:
allOf:
- $ref: '#/components/schemas/UPRN'
- description: The UPRN of the property, e.g. `100010716016`.
- example: '100010716016'
full_address:
type: string
description: The full address of the property.
example: 29 Acacia Road, Nuttytown, B4 4NA
property_type:
type: string
description: The type of property (e.g. Residential).
example: Shop / Showroom
property_state:
type: string
nullable: true
description: The current state of the property (e.g. In Use).
enum:
- Demolished
- In Use
- Planning Permission Granted
- Under Construction
- Unoccupied/Vacant/Derelict
example: In Use
property_class_code:
type: string
description: The Ordnance Survey classification code of the property (e.g. RD03).
example: RD03
use_class:
type: string
nullable: true
description: The use class of the property (e.g. Residential (C3)).
example: Residential (C3)
building_height:
type: object
nullable: true
properties:
highest_point:
type: number
format: float
nullable: true
description: The highest point of the building in meters.
example: 6.4
roof_height:
type: number
format: float
nullable: true
description: The roof height of the building in meters.
example: 6.1
no_floors_estimate:
type: integer
nullable: true
description: The estimated number of floors in the building.
example: 1
epc:
type: object
nullable: false
properties:
current_energy_rating:
type: string
nullable: true
description: The energy rating given in the most recent EPC
example: C
potential_energy_rating:
type: string
nullable: true
description: 'The potential energy rating that could be achievable in the property as listed by the EPC
'
example: B
total_floor_area:
type: number
format: float
nullable: true
description: The floor area as listed on the EPC in square metres
example: 160.23
Forbidden:
oneOf:
- type: object
required:
- user
properties:
user:
type: object
required:
- state
properties:
state:
type: string
enum:
- expired
- blocked
example: expired
- type: object
required:
- message
properties:
message:
type: string
example: User not found
UltimateOwner:
description: Details of ultimate ownership of a company.
type: object
properties:
ultimate_owners:
description: List of ultimate owning companies.
type: array
items:
type: object
properties:
holding_max:
description: Maximum percentage of ownership (if available).
type: number
nullable: true
example: 50
company:
$ref: '#/components/schemas/Company'
Company:
description: Details of a company that owns the title.
type: object
properties:
company_no:
description: The company's registered number (if available).
type: string
nullable: true
example: 02127408
name:
description: Name of the company.
type: string
example: REDWOOD (LIGHT INDUSTRIAL) PROPCO LIMITED
addresses:
$ref: '#/components/schemas/Address'
proprietorship:
description: Type of proprietorship.
type: string
example: Private Limited Company
is_foreign:
description: Whether the company is foreign owned.
type: boolean
nullable: true
example: true
Address:
description: The associated property address. Can be empty.
type: array
items:
type: string
example:
- Unipart House, Cowley, Oxford, OX4 2PG
OwnerDetails:
description: Details of the registered owner.
type: object
properties:
last_ownership_change:
description: Date of last ownership change.
type: string
nullable: true
format: date-time
example: '2008-10-13T00:00:00.000Z'
company:
allOf:
- $ref: '#/components/schemas/Company'
- $ref: '#/components/schemas/UltimateOwner'
BulkTitleError:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
required:
- message
properties:
message:
type: string
example: Variable "$titles" of required type "[String!]!" was not provided.
locations:
type: array
items:
type: object
properties:
line:
type: integer
column:
type: integer
extensions:
type: object
properties:
code:
type: string
example: BAD_USER_INPUT
BulkTitleResponse:
type: object
properties:
data:
type: object
properties:
title:
type: array
items:
$ref: '#/components/schemas/TitleDetails'
TitleDetails:
description: Full details of a land title.
type: object
properties:
data:
type: object
properties:
title:
type: object
properties:
title_no:
$ref: '#/components/schemas/TitleNumber'
tenure:
description: The tenure type of the title.
type: string
enum:
- FREEHOLD
- LEASEHOLD
- UNKNOWN_OTHER
example: FREEHOLD
addresses:
$ref: '#/components/schemas/Address'
registered_lease:
$ref: '#/components/schemas/RegisteredLease'
properties:
description: 'A list of Unique Property Reference Numbers (UPRNs) formally associated with the title''s land parcel. Can be empty.
'
type: array
items:
$ref: '#/components/schemas/UPRN'
example:
- '100080312053'
properties_intersects:
type: array
description: 'A list of Unique Property Reference Numbers (UPRNs) that reside within the title''s land parcel, but are not formally associated with the title. Can be empty.
'
items:
$ref: '#/components/schemas/UPRN'
example:
- '10091868676'
- '10023302495'
owners:
description: A list of registered owners. Can be empty.
type: array
items:
$ref: '#/components/schemas/OwnerDetails'
BulkTitleRequest:
type: object
required:
- titles
properties:
titles:
type: array
description: List of title numbers (max 200)
maxItems: 200
items:
type: string
example: SGL235730
BulkPropertyResponse:
type: object
properties:
data:
type: object
properties:
property:
type: array
items:
$ref: '#/components/schemas/PropertyInformation'
BulkPropertyError:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
required:
- message
properties:
message:
type: string
example: Variable "$properties" of required type "[String!]!" was not provided.
locations:
type: array
items:
type: object
properties:
line:
type: integer
column:
type: integer
extensions:
type: object
properties:
code:
type: string
example: BAD_USER_INPUT
Error:
type: object
anyOf:
- properties:
error:
type: string
- properties:
error_msg:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key