KYB

Get a full Know Your Business (KYB) report

Get a comprehensive Know Your Business (KYB) report for a UK company.

Aggregates the company profile, financial data, director information, and a computed set of risk flags into a single response. Suitable for onboarding, due diligence, and automated KYB workflows.

Report sections:

  • profile - enriched company profile (status, age, address, SIC codes)
  • financials - latest filed accounts (balance sheet + P&L). null if no digital filing exists.
  • directors - current and past directors with their other appointments
  • psc_chain - PSC ownership chain resolved to ultimate beneficial owners. Each node has a terminal_reason (natural_person, foreign_entity, legal_person, psc_exempt, depth_limit, not_found, cycle_detected). null if chain resolution fails.
  • compliance - ECCTA identity-verification snapshot for the directors and individual PSCs the regime actually applies to, identical to /v1/company/{number}/compliance. Read status before calling anyone non-compliant: pending means the deadline has not arrived yet and nothing has been missed, which is the majority state for UK directors during the Nov 2025 - Nov 2026 transition. Only overdue is a missed deadline. null for Free and Web plans, which the compliance endpoint does not cover.
  • risk_flags - boolean flags derived from the profile and filing data:
    • accounts_overdue - accounts past their filing deadline
    • confirmation_overdue - confirmation statement overdue
    • has_charges - company has registered charges (e.g., mortgages)
    • has_insolvency_history - any insolvency history on record
    • not_active - company is not in active status (dissolved, liquidation, etc.)
    • recently_incorporated - less than 1 year old
    • financials_unavailable - no parseable digital accounts filing exists
    • no_accounts_type - no accounts type recorded (dormant or never filed)
  • summary_md - LLM-ready Markdown combining profile + financials summaries

Credits: 1. A KYB report costs exactly one call against your quota, however many sections it carries. psc_chain.chain_metadata.total_credits counts companies resolved in the ownership chain, which is a measure of chain depth, not of quota spent.

Cache behaviour: All underlying data sources are served from cache where available. Profile: 30-day TTL. Financials: 90-day TTL. Directors: 30-day TTL. PSC: fetched fresh per call.

Example: /v1/company/00445790/kyb-report returns a full KYB report for Tesco PLC.

get/v1/company/{company_number}/kyb-report

Request

  • Base URL: https://api.registrum.co.uk
  • URL: https://api.registrum.co.uk/v1/company/{company_number}/kyb-report
  • Auth: API key in header X-API-Key

Path parameters

company_numberstring required

Companies House company number (e.g. 00445790 for Tesco PLC).

Example:00445790

Response

KYB report returned. Financials and directors sections may be null if unavailable.

statusstring

'success' or 'error'

cachedboolean

True if this response was served from cache rather than fetched live

cache_age_secondsinteger nullable

How many seconds ago this data was fetched from Companies House (null if not cached)

fetched_atstring nullable

ISO 8601 instant (UTC) when this data was actually fetched from Companies House. Use this, not cache_age_seconds, to show a user when the data was last checked: an age is measured at the moment this response was produced, so anything that caches the response downstream will overstate freshness by however long it held it. This instant does not drift. Null when unknown - render nothing rather than a guessed date.

data_sourcestring

'live' - fetched from Companies House right now; 'cached' - served from local cache (data is recent, no upstream call needed); 'cached_rate_conserved' - served from cache because the CH API budget is above 70% utilisation; data may be up to 30 days old in this state

credits_usedinteger

Number of API credits consumed by this request

credits_remaininginteger nullable

API credits remaining this month (null in dev mode)

Example response

{
  "cache_age_seconds": 3421,
  "cached": true,
  "credits_remaining": 487,
  "credits_used": 1,
  "data": {
    "company_age_years": 78,
    "company_name": "TESCO PLC",
    "company_number": "00445790",
    "company_status": "active",
    "company_type": "plc"
  },
  "data_source": "cached",
  "status": "success"
}

Changes

No recorded changes to this operation across all 1 revision of this API.