UK companies · Filings

UK company filings download

Companies House publishes every statutory filing every UK company has ever submitted, free, including the document body. Most aggregators surface the metadata only and leave the actual document on the upstream portal. OpenRegistry returns the bytes inline through fetch_document, so an AI agent or pipeline can read the filing without a second round trip.

What CH publishes

A complete UK filing history typically includes the categories below. Every one of them is reachable with the same two-tool pattern: list_filings to enumerate, then fetch_document on a chosen document_id to pull the actual bytes.

Form / category What it is Format
IN01 Application for incorporation. Original subscriber list, share split at incorporation, articles. PDF (older), XHTML (newer)
CS01 / CS02 Confirmation Statement. Modern equivalent of the AR01. Includes the Statement of Capital. iXBRL XHTML or PDF
AR01 Annual Return. Pre-2016 form, replaced by CS01. PDF
AA Full annual accounts. iXBRL XHTML
Micro-entity / abridged accounts Smaller-company accounts under FRS 105 / FRS 102 1A. iXBRL XHTML or PDF
MR01 — MR04 Charges. Creation, satisfaction, particulars of mortgage or fixed/floating charge. PDF
AP01 / AP02 / AP03 / AP04 Director or secretary appointment. PDF
TM01 / TM02 Termination of director or secretary appointment. PDF
SH01 — SH19 Share-capital changes, allotments, buy-backs, redenominations. PDF
DS01 / DS02 Voluntary dissolution and withdrawal of dissolution. PDF
LIQ / LL01 Liquidation, LLP-specific filings. Various

iXBRL is the format that matters

Modern UK accounts are filed as iXBRL: an XHTML document with embedded semantic tags. A current-generation LLM reads them natively. The structured numbers (turnover, gross profit, profit before tax, shareholders' funds, the lot) are tagged and unambiguous, even if a human reader sees a styled balance sheet.

OpenRegistry returns the raw iXBRL bytes through fetch_document. No XBRL parser, no field renaming, no schema mapping. The agent reads the document directly.

Worked example: download Monzo's most recent CS01

// 1. List filings, take the most recent CS01
list_filings({
  jurisdiction: "GB",
  company_id: "09446231",
  category: "confirmation-statement",
  limit: 5
})

// 2. Fetch the actual document. max_bytes is optional; defaults inline.
fetch_document({
  jurisdiction: "GB",
  document_id: "<document_id from list_filings>",
  format: "xhtml"
})
// → raw iXBRL document, ready for the LLM to read

Why aggregators skip this

The CH document API is rate-limited, returns binary blobs, and forces the caller to handle iXBRL, PDF, and the occasional historic image-only filing. It is more comfortable to surface metadata only and link out to the CH portal. OpenRegistry takes the work on so the agent does not have to.

What we do not do. We do not parse, summarise, classify, or rewrite the filing. The bytes you get are the bytes Companies House publishes. The LLM reads them. The architectural note lives at /docs/case-studies/why-raw-upstream-data.

Charges: a quick second look

A separate index returns registered charges directly without reading the MR01-04 forms one by one. Use get_charges for the structured summary, then fetch_document on the underlying filing only when the persons-entitled or floating-charge particulars are needed.

get_charges({ jurisdiction: "GB", company_id: "09446231" })
// → outstanding fixed and floating charges, persons entitled, status,
//   creation_date, satisfaction_date

Try it

Connect any MCP client to https://openregistry.sophymarine.com/mcp, free anonymous tier, and ask: "Download the most recent annual accounts for Greggs plc and tell me the gross profit." The agent runs list_filings, finds the latest category: "accounts" filing, calls fetch_document, reads the iXBRL, and answers.