Company Ownership Search API

Search through 4.3 million UK property ownership records from the Commercial and Corporate Ownership Dataset

REST API
JSON Responses
API Key Authentication
4.3M Records

Overview

The Company Ownership Search API provides access to the UK's Commercial and Corporate Ownership Dataset, containing over 4.3 million property ownership records. This dataset tracks properties owned by companies, LLPs, and other corporate entities across England and Wales.

This API provides access to:

  • Company name and registration number searches
  • Property address lookups
  • Land Registry title number searches
  • Corporate property ownership data
  • Purchase prices and transaction details
  • Proprietor addresses and company details

Key Features:

  • Comprehensive Search: Search by company name, registration number, property address, or title number
  • Detailed Records: Full property and ownership information including prices paid
  • Real-time Data: Access to the latest available commercial ownership data
  • Flexible Pagination: Control result set size and pagination
  • Credit-based Billing: Pay only for successful searches that return results

Data Source

This API uses the official Commercial and Corporate Ownership Dataset from HM Land Registry, updated regularly to provide current ownership information.

Authentication

All requests to the Company Ownership Search 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.

Endpoints

GET/api/v1/company-ownership/search

Search company ownership records by various criteria

Base URL

https://propertyinsights.co.uk/api/v1/company-ownership/search

Query Parameters

ParameterTypeRequiredDescription
termstringRequiredThe search term (minimum 2 characters, 4+ for names/addresses)
typestringOptional Search type: company_name (default), company_number, address, title_number

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.

Response Format

All API responses follow this structure:

{
  "success": true,
  "data": {
    "results": [
      {
        "id": "12345",
        "title_number": "AB123456",
        "tenure": "Freehold",
        "property_address": "123 EXAMPLE STREET, LONDON",
        "district": "LONDON BOROUGH OF EXAMPLE",
        "county": "GREATER LONDON",
        "region": "LONDON",
        "postcode": "SW1A 1AA",
        "multiple_address_indicator": "N",
        "price_paid": 1500000,
        "proprietor_name": "EXAMPLE PROPERTY LTD",
        "company_registration_number": "12345678",
        "proprietorship_category": "Limited Company or Public Limited Company",
        "country_incorporated": "UNITED KINGDOM",
        "proprietor_address": "456 BUSINESS PARK, LONDON SW1A 1BB"
      }
    ],
    "search": {
      "term": "EXAMPLE PROPERTY",
      "type": "company_name",
      "results_count": 1,
      "max_results": 50
    }
  }
}

Examples

Search by Company Name

curl -X GET "https://propertyinsights.co.uk/api/v1/company-ownership/search?term=ACME%20PROPERTIES&type=company_name" \
  -H "x-api-key: your-api-key-here"

Search by Company Registration Number

curl -X GET "https://propertyinsights.co.uk/api/v1/company-ownership/search?term=12345678&type=company_number" \
  -H "x-api-key: your-api-key-here"

Search by Property Address

curl -X GET "https://propertyinsights.co.uk/api/v1/company-ownership/search?term=Oxford%20Street%20London&type=address" \
  -H "x-api-key: your-api-key-here"

Search by Title Number

curl -X GET "https://propertyinsights.co.uk/api/v1/company-ownership/search?term=AB123456&type=title_number" \
  -H "x-api-key: your-api-key-here"

Error Handling

The API uses standard HTTP response codes and returns detailed error information in JSON format. All errors follow a consistent structure to help you handle them appropriately in your application.

HTTP CodeError CodeDescription
400MISSING_SEARCH_TERMSearch term parameter is required
400INVALID_SEARCH_TYPESearch type must be company_name, company_number, address, or title_number
400SEARCH_TERM_TOO_SHORTSearch term must meet minimum length requirements (2+ chars, 4+ for names/addresses)
400SEARCH_TERM_TOO_GENERALCommon terms require longer, more specific search queries (12+ characters)
401AUTHENTICATION_REQUIREDValid API key is required
402INSUFFICIENT_CREDITSNot enough API credits remaining to perform operation
500DATABASE_ERRORError accessing database - please try again
500INTERNAL_SERVER_ERRORAn unexpected error occurred

Error Response Format

{
  "success": false,
  "error": {
    "code": "SEARCH_TERM_TOO_SHORT",
    "message": "Name and address searches require at least 4 characters."
  }
}

Handling Search Performance

To maintain optimal performance, searches for very common terms (like "PROPERTY", "LIMITED", "COMPANY") require more specific queries. This helps ensure fast response times for all users.

Rate Limits

API requests are subject to rate limiting based on your subscription plan. The current limits are:

PlanRequests per MinuteRequests per DayRequests per Month
Basic105005,000
Standard302,00030,000
Premium1005,000100,000
EnterpriseCustomCustomCustom

When you exceed your rate limit, the API will return a 429 Too Many Requests response. Each response includes the following headers to help you track your usage:

X-RateLimit-Limit: [requests-per-minute limit]
X-RateLimit-Remaining: [requests remaining in current window]
X-RateLimit-Reset: [timestamp when limit resets]

Search Performance Guidelines

To maintain sub-second response times across our 4.3 million record database, searches for very common terms require longer, more specific queries:

  • Common terms like "PROPERTY", "LIMITED", "COMPANY" require 12+ characters
  • Company name and address searches require minimum 4 characters
  • Company number and title number searches require minimum 2 characters
  • Results are automatically capped at 50 properties per search for optimal performance

Cost Efficiency Tips

Maximise your API credits with these best practices:

  • Test searches with specific terms to avoid no-result queries
  • Use specific search queries to get more targeted results
  • Cache frequently accessed company information
  • Implement debouncing for user input to reduce API calls

Need Help?

If you have questions about the Company Ownership Search API or need assistance with implementation, our team is here to help.

Contact Support