Land Insight Ownership API

Endpoints to get details about land ownership and property information.

OpenAPI Specification

land-insight-ownership-api-openapi.yml Raw ↑
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