UK Company Filing History (Companies House) API and MCP — Dates, Types, Documents
Send a company number and get its filing history as a list: filing date, form type, description, page count and a link to the PDF. Set max_items to take only the latest filings.
- You send
- a Companies House company number
- You get back
- the filing history of the company: date, form type, description, page count and a link to the document
- Coverage
- United Kingdom — entities on Companies House.
- Price
- 1 point per returned record — $1 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Companies House directly | Open the company on Companies House and page through the list | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $1 per 1,000, misses not billed | Covers United Kingdom — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response. |
company | string | The identifier you sent. |
company_id | string | The identifier as the register uses it. |
max_items | number | The cap you set on returned records. |
start_page | number | Results page the listing started from. |
partial | boolean | Whether the result set is incomplete. |
human | string | Readable summary with the number of results. |
total_points | number | Points charged: one per returned record. |
machine.total_items | number | Records returned in this batch. |
machine.first_item | object | The first returned record, same shape as one entry of items. |
machine.items[] | array | The returned records. |
machine.total_found | number | Matches the register reports for the search; null when it does not report one. |
machine.page_count | number | Result pages read. |
machine.blocked | boolean | Whether the register refused the request. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
machine.items[].registration_number | string | Empty string in the sample; the company is identified by the company field. |
machine.items[].id | string | Filing id on the register. |
machine.items[].date | string | Filing date (YYYY-MM-DD). |
machine.items[].type | string | Form type, e.g. SH03. |
machine.items[].description | string | Filing description as the register states it, including any annotation. |
machine.items[].document_url | string | Link to the filed document as a PDF. |
machine.items[].pages | number | Page count of the document. |
machine.items[].url | string | Same link as document_url. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "uk_company_filings",
"company": "00445790",
"company_id": "00445790",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# United Kingdom — Companies House — company filings\n\n- **Company:** 00445790\n- **Results:** 2\n- **Proxy traffic:** 76.5 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "",
"id": "MzU0MzY3ODg5MGFkaXF6a2N4",
"date": "2026-09-16",
"type": "SH03",
"description": "Purchase of own shares.. ANNOTATION Clarification hmrc confirmation received that appropriate duty has been paid on this repurchase ;",
"document_url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0",
"pages": 4,
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0"
},
"items": [
{
"registration_number": "",
"id": "MzU0MzY3ODg5MGFkaXF6a2N4",
"date": "2026-09-16",
"type": "SH03",
"description": "Purchase of own shares.. ANNOTATION Clarification hmrc confirmation received that appropriate duty has been paid on this repurchase ;",
"document_url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0",
"pages": 4,
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0"
},
{
"registration_number": "",
"id": "MzUzOTMzNzQ1OWFkaXF6a2N4",
"date": "2026-08-26",
"type": "SH06",
"description": "Cancellation of shares.. Statement of capital on 7 July 2026 GBP 397,007,409.26;",
"document_url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzUzOTMzNzQ1OWFkaXF6a2N4/document?format=pdf&download=0",
"pages": 4,
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzUzOTMzNzQ1OWFkaXF6a2N4/document?format=pdf&download=0"
}
],
"total_found": null,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 78350
},
"total_points": 2
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-uk-company-filings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"00445790","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Watch for share changes, charges, officer changes and accounts as they are filed.
Open the PDF behind a figure or event instead of relying on a summary.
Build a dated history of what a company has filed over the years.
Check that the expected filings, such as accounts, appear on schedule.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
United Kingdom — entities on Companies House.
Read at request time, so the answer reflects the register as it stands when you ask.
Companies House is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —total_found is null in the sample, so the full count of filings is not reported; use max_items and the page you need.
- —The description is the register's own text and can include annotations as written.
- —Document contents are not parsed; you get the link to the PDF.
Questions, answered
Yes, the sample returns the latest filing first (2026-09-16, then 2026-08-26).
Related sources
Try companies house filings on your own data
One request format across every source in the catalog.