UK Companies House Scraper: Officers, PSC, Charges avatar

UK Companies House Scraper: Officers, PSC, Charges

Pricing

from $1.50 / 1,000 company profiles

Go to Apify Store
UK Companies House Scraper: Officers, PSC, Charges

UK Companies House Scraper: Officers, PSC, Charges

Get UK Companies House profiles with officers, the people or companies that control it, charge counts and accounts category in one row from the live register. Look up by company number, register URL, name or a filter. Each company is billed once, from $1.50 per 1,000. No login, no API key.

Pricing

from $1.50 / 1,000 company profiles

Rating

0.0

(0)

Developer

Pradio Actors

Pradio Actors

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

17

Monthly active users

4 days ago

Last modified

Share

What does UK Companies House Scraper do?

UK Companies House Scraper reads the live UK Companies House register and returns one detailed row per company. Each row carries its officers, the people or companies that control it (persons with significant control, PSCs), its charge count, the register's accounts category (FULL, GROUP, MICRO, DORMANT, MEDIUM, TOTAL EXEMPTION SMALL, UNAUDITED ABRIDGED, NO ACCOUNTS FILED, not a closed list), its company number, status, address and industry codes (SIC, the Standard Industrial Classification).

You give it company numbers, register URLs, a file of numbers, a term or a filter. From $1.50 per 1,000 companies, $3.20 on the free plan, less on every paid plan. Company numbers opens with two example companies, not yours: a run reads and bills each at the per-company price, so clear them for only your own. A company the register does not hold costs nothing, and its row says why.

Search Queries starts empty. Whatever sits in a box is what the run reads.

One company, by its number:

{"companyNumbers": ["07109264", "OE035312"]}

Or search the register by a term:

{"searchQueries": ["green energy"]}

Register URLs go in one per row; as JSON, each is an object:

{
"startUrls": [
{ "url": "https://find-and-update.company-information.service.gov.uk/company/07109264" }
]
}

Who uses UK Companies House Scraper

WhoWhat they run it for
Sales and growth teamsA prospect list of UK companies by trade, town and incorporation date.
Onboarding and complianceA counterparty's live status, officers and PSCs for your KYC file.
Credit and risk analystsAccounts dates, overdue flags and charge counts at list scale.
Investigators and data teamsStructured register profiles, one row per company.

Features

  • Full profiles from a filter. A SIC code, town, status, type or date filter returns the same profile a looked-up company gets.
  • Only the new companies. A scheduled run skips what an earlier run with the same filters or term returned.
  • A diff against an earlier run. Each profile reads new, unchanged or changed beside its earlier row.
  • Filings and charges on request. Two switches add the latest filings and the charge list.

Why this one

UK Companies House ScraperMost-used alternative
Companies resolved for one search term5050
Chargesfour counts, the list on request, and a yes-or-no flagone yes-or-no flag
Price per 1,000 profiles$1.50 to $2.50 paid, $3.20 free$4.00
Run memory256 MB1,024 MB

Both runs searched green energy, each with a cap of 50 companies for the term, and both returned 50 company profiles: ours on 2026-10-24, the most-used alternative's on 2026-10-23.

Every company on the test list resolved. A run over 148 UK companies returned a profile for each one.

What data does UK Companies House Scraper return?

One row per company. Part of a real row from a live run; that same row sits under Output in full.

{
"company_name": "GREEN ENERGY AND EPC SERVICES LTD",
"company_number": "13030942",
"company_status": "Active",
"company_type": "Private limited Company",
"registered_office_address": "123b Barkby Road, Leicester, England, LE4 9LG",
"incorporated_on": "2020-11-19",
"registered_on": null,
"officers_on_register": 1,
"psc_count": 1,
"has_charges": false,
"is_active": true,
"lead_score": 100,
"row_type": "ROW"
}

A data row carries 61 fields of data, each described below and empty where the register publishes nothing, plus row_type and reason on every row. reason is empty unless your entry was read another way. RUN_SUMMARY, in the run's key-value store, carries rowsFetched (rows the source handed over), rowsReturned (company rows written) and rowsRemaining (company rows not written); no data row carries them. The Output tab of the Store describes all five. row_state and changed_fields stay null unless you give the run an earlier dataset to watch against.

FieldWhat it holds
company_nameThe registered company name, read from the register's own data record for the company.
pageUrlThe URL of the company's overview page on the register; also the run's deduplication key.
entry_typeThe register entry kind.
company_numberThe Companies House company number the profile was resolved under.
company_statusThe register's status for the company: what the company page prints, else the register's own data record.
company_typeThe company's category in the register's words, such as 'Private limited Company', read from the page where it prints one.
registered_office_addressThe registered office address as the company page prints it, else the register's own data record, in one line.
incorporated_onThe incorporation date, ISO YYYY-MM-DD.
registered_onThe registration date, ISO YYYY-MM-DD.
dissolved_onThe date Companies House published the company as dissolved (or a UK establishment as closed), ISO YYYY-MM-DD; null while the company is live.
previous_namesThe names the company was registered under before, newest first, with the dates each was used. Null when it never changed name.
sic_codesThe company's filed SIC codes, each as a code and its description.
next_accounts_made_up_toThe period end the next accounts cover, as the company page prints it.
next_accounts_due_byThe due date the register prints for the next accounts, ISO.
last_accounts_made_up_toThe made-up-to date of the last filed accounts, ISO.
accounts_overdueTrue when the register marks the accounts overdue or the due date has passed; null where the register shows no accounts block, and on a dissolved company.
accounts_summaryThe accounts dates joined into one line, ISO, as the company page prints them; '(filed as dormant)' is added where the register's filing history calls the accounts dormant.
confirmation_statement_next_dateThe date the next confirmation statement covers, from the register's confirmation block.
confirmation_statement_due_byThe due date the register prints for the next confirmation statement, ISO.
confirmation_statement_last_dateThe last confirmation statement's made-up-to date, ISO.
confirmation_statement_overdueTrue when the register marks the statement overdue or its due date has passed; null where the register shows no confirmation block, and on a dissolved company.
officersThe officers tab's appointments: name, role, status, appointed and resigned dates, nationality, country of residence, date of birth, correspondence address and identity fields. Null when none.
pscsThe persons with significant control: name, kind, status, notified and ceased dates, natures of control and identity fields, plus a company PSC's registered details. Null when none.
listing_addressThe address the search listing printed for the company; filled only on rows found through a search.
search_queryThe query the company was found under; filled only on rows found through searchQueries, a pasted /search?q= URL or the filter search.
sourceHow the company was reached: 'url', 'company_number', 'search' or 'advanced_search'.
has_chargesTrue when the register's document for the company carries mortgage charges.
has_insolvency_historyTrue when the register shows an insolvency marker or an insolvency status word.
officers_on_registerHow many officer appointments the register lists for the company, the same count as officers_count beside it.
resignations_on_registerHow many resignations the register records for the company: officers whose appointment has ended, the same kind of count as officers_on_register beside it.
psc_statements_on_registerHow many PSC statements the register shows.
is_activeTrue when the register's status for the company is 'Active'; null where the register publishes no status at all.
officers_countHow many officer appointments the register lists for the company: the number of entries in this profile's officers list; 0 when officers is null.
active_officers_countOfficers the register shows as serving: tagged Active, or untagged with no resignation on a company that is not dissolved. 0 on a dissolved company.
resigned_officers_countOfficers whose appointment has ended, per the officers tab; on a dissolved company the officers in office at dissolution are counted in neither this nor active_officers_count.
directors_countActive officers whose role is a director role.
psc_countThe number of entries in this profile's pscs list; 0 when pscs is null.
sic_code_listThe SIC code strings alone, for filtering or joining.
lead_scoreA 0-100 rollup of the register's own signals.
filing_historyWith includeFilingHistory on: the latest filings on the register, newest first, each with date, form type and the register's description of the filing.
chargesWith includeCharges on: each charge the register lists, with its code or title, created and delivered dates, status, satisfied date and persons entitled.
charges_list_completeTrue when charges is the whole list the register holds; false where the run's page cap stopped it short; null when includeCharges is off.
charges_totalHow many charges the register has ever registered against the company, read from the same register entry as the rest of the row. 0 when none was ever filed.
charges_outstandingHow many of those charges the register shows as still outstanding. 0 when none was ever filed.
charges_satisfiedHow many charges the register shows as fully satisfied. 0 when none was ever filed.
charges_part_satisfiedHow many charges the register shows as partly satisfied. 0 when none was ever filed.
accounts_categoryThe register's accounts category: FULL, GROUP, MICRO, DORMANT, MEDIUM, TOTAL EXEMPTION SMALL, UNAUDITED ABRIDGED, NO ACCOUNTS FILED where no accounts were made up; the list is not closed.
accounting_reference_dateThe day and month the company's financial year ends, as DD-MM (31-12 is 31 December); null where the register holds no accounts for the company.
is_dormantTrue when the register marks the company dormant: its SIC code is 99999, or its last accounts were filed as dormant.
postcodeThe registered office's postcode as the register holds it; null when it holds none.
post_townThe registered office's post town: the register's Post Town, or the town its page prints when it files none (02648297 prints Cable Drive, Walsall, WS2 7BN).
countyThe registered office's county or region, as the register files it.
address_countryThe registered office's country: the register's own, or the one its county or post town names when that is a UK country; null otherwise.
address_reorderedTrue where the register filed the town under the county and a street line as the post town, and this row put them back in order; false elsewhere.
officers_identity_verified_countHow many officers still in office the register shows with their identity verification complete.
officers_identity_overdue_countHow many officers still in office are past the register's identity verification due date as of the run's date.
psc_identity_overdue_countHow many PSCs still in place are past the register's identity verification due date as of the run's date; ceased PSCs are not counted.
row_statusThe row's own verdict: 'ok' on a profile; on an ITEM_STATUS row, the miss verdict: 'not_found', 'bad_url', 'bad_input', 'blocked', 'fetch_failed', 'removed', 'duplicate' or 'not_reached'.
row_statewith prevDatasetId set: 'new' when no earlier run read the company, 'unchanged' when nothing watched moved, 'changed' when at least one watched field differs (changed_fields names them).
changed_fieldsWith prevDatasetId set, the watched register fields whose value differs from the earlier run's profile row for the same company number.
company_status_detailThe register's second status line, the one under the status itself: it reads "Active proposal to strike off" on a company under a strike-off notice.

reason carries a note where the row is not your entry: no rows came back, the run stopped early, or your URL named a deeper page.

How much does it cost?

$1.50 to $2.50 per 1,000 companies on a paid plan ($3.20 on the free plan). Each resolved profile is billed once, after its row is written to your dataset.

On Bronze (Starter) and on the free plan:

Companies you ask forProfiles billedCost on BronzeCost on the free plan
100up to 100$0.25$0.32
1,000up to 1,000$2.50$3.20
10,000, over several runsup to 10,000$25.00$32.00

The platform meters a run as two events. profile-returned costs $0.0025 a profile on Bronze and $0.0032 on the free plan, less on higher paid plans. apify-actor-start costs $0.00005 once a run, at the 256 MB this Actor asks for. Filing history and charges cost the same as a plain profile. The rate is your plan's, per 1,000: $2.50 Bronze, $2.00 Silver, $1.50 Gold, Platinum or Diamond.

How do I use UK Companies House Scraper?

  1. Press Start. Company numbers opens with two example companies; clear them for only your own. Search Queries is empty: type a term or a phrase.
  2. Or replace them: numbers, URLs, a link to a file of your own, search terms, or a filter.
  3. Rows land in your dataset as they are read. Export them as JSON, CSV or Excel.

Worked examples

Use it to build a prospect list of new software companies in Manchester.

{
"sicCodes": [62012, 62020],
"location": "Manchester",
"companyTypes": ["ltd"],
"companyStatus": ["active"],
"incorporatedFrom": "2026-01-01",
"maxItems": 100
}

Use it to put together a due-diligence pack on known counterparties.

{
"companyNumbers": ["00445790", "07109264"],
"includeFilingHistory": true,
"filingHistoryLimit": 10,
"includeCharges": true
}

Use it to list companies dissolved in one London postcode.

{
"location": "EC2A",
"dissolvedFrom": "2024-01-01",
"maxItems": 100
}

Through the API:

curl -X POST "https://api.apify.com/v2/acts/Pradio~companies-house/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" -H "Content-Type: application/json" -d "{\"searchQueries\":[\"green energy\"]}"

Input

InputDefaultWhat it does
companyNumbers["07109264", "OE035312"]Company numbers, one per entry; a number that lost its leading zeros reads in full.
companyNumbersFileUrlemptyA link to your file of numbers, CSV, text or a shared Google Sheet.
searchQueriesemptyTerms for the register's own search; each hit resolves to a full profile.
startUrlsemptyCompany page or /search?q= URLs, one URL per entry.
maxItemsnone (5,000)The most companies one run reads. Free miss rows are never dropped by it.
maxCompaniesPerSearchQuerymaxItems, else 50The most companies one search term adds; it is not on the form, and the input still takes it when you set it.
sicCodesemptyFive-digit SIC codes; each is searched alone and the matches merge.
locationemptyText the registered office must carry: a town or a postcode start.
companyNameIncludesemptyKeep companies whose name carries every one of these words.
companyNameExcludesemptyLeave out companies whose name carries any one of these words.
companyStatusempty (any)Register statuses such as active, dissolved or liquidation.
companyTypesempty (any)Register types such as ltd, plc or llp.
incorporatedFromemptyOnly companies incorporated on or after this date.
incorporatedToemptyOnly companies incorporated on or before this date.
dissolvedFromemptyOnly companies dissolved on or after this date.
dissolvedToemptyOnly companies dissolved on or before this date.
onlyNewfalseSkip what an earlier run with the same filters or term returned.
prevDatasetIdemptyAn earlier run's dataset; each profile says if it is new, unchanged or changed.
includeFilingHistoryfalseAdd the company's latest filings to the profile.
filingHistoryLimit5How many latest filings to add, from 1 to 100.
includeChargesfalseAdd the company's charges to the profile.
proxyConfigurationnoneOne Apify proxy session for the run's register reads.

Dates are typed as YYYY-MM-DD. Any filter sends the run to the register's advanced search, and every match comes back as a full profile. Your filters narrow a term's hits too: a company they rule out is left out and not billed, and the term's free row says how many were left out. Name filters match whole words in any case; they narrow a search rather than starting one, so a run needs a number, URL, term or other filter too: type bakery and you keep SUNFLOWER BAKERY LIMITED but not BAKER & CO LTD.

Company numbers from a file

Give the run a link to a CSV, a text file or a shared Google Sheet. It finds the numbers column for you. One file up to 5 MB. A private file, or a link that answers with a web page, comes back as a row saying why.

Only the new companies

For a scheduled run, the numbers it returned for this exact filter set or search term are remembered and skipped next time. They live in a saved list on your Apify account, named companies-house-only-new. Changing a filter starts a new list, and clearing that store starts it over. Numbers and page URLs you name are always read.

Compare with an earlier run

Give a run the dataset id of an earlier one and it watches exactly these register fields: company_name, company_status, company_type, is_active, dissolved_on, registered_office_address, postcode, sic_codes, accounts_overdue, next_accounts_due_by, confirmation_statement_due_by, confirmation_statement_overdue, has_charges, charges_total, charges_outstanding, officers_count, active_officers_count, resigned_officers_count, psc_count

. A field off that list stays out of `changed_fields`; a field on it appears whenever its value moves. It reads your stored rows and adds nothing to the bill. A dataset it cannot read stops the run naming it.

Output

Data rows come first. Rows about the run or about one entry follow, and every row says which it is:

RowWhenCharged
ROWA resolved company profile, and the only row kind that is charged.yes
ITEM_STATUSA free verdict about one entry or about the run's own filtering. Read row_status for which.no
PROFILE_NOT_FOUNDThe last-resort row: the register answered and returned no rows at all. One entry with nothing for it is a not_found row.no
STOPPED_EARLYWritten when the run stops early: aborted on the charge limit, error on a failed run. The maxItems cap is not this row; it writes not_reached notes.no
duplicateA row_status on an ITEM_STATUS row: a company an earlier entry gave. Its reason names what that row really holds.no
not_foundThe register answered and had nothing for that entry, or your filters left a term's hits out. The reason names what was searched and what came back.no
fetch_failedA read that failed on the way. The reason names the read that failed.no
bad_urlA pasted link on another host, or not a company page, search URL or number. The reason names what you gave.no
bad_inputAn entry this run cannot use: not a company number, file line or search term, or a page about a person. The reason names the entry and its position.no
blockedThe register refused this machine. Every read stopped at once and what was already read is kept.no
abortedThe charge limit was reached, so the run stopped. The profiles read before it stay in your dataset, and the stop row names the rest.no
errorThe run failed and stopped; a failed read is fetch_failed.no
removedA person or company asked to be off the rows. The Actor ships a removal list and reads it before every run.no
not_reachedThe run's cap was spent before this entry was read (the maxItems cap or the charge limit). Nothing was fetched for it.no

A run that finds nothing writes one row of its own saying so, never an empty dataset.

A full data row from a live run, every field as the run returned it.

{
"company_name": "GREEN ENERGY AND EPC SERVICES LTD",
"pageUrl": "https://find-and-update.company-information.service.gov.uk/company/13030942",
"entry_type": "company",
"company_number": "13030942",
"company_status": "Active",
"company_status_detail": null,
"company_type": "Private limited Company",
"registered_office_address": "123b Barkby Road, Leicester, England, LE4 9LG",
"incorporated_on": "2020-11-19",
"registered_on": null,
"dissolved_on": null,
"previous_names": null,
"sic_codes": [
{
"code": "41202",
"description": "Construction of domestic buildings"
},
{
"code": "43220",
"description": "Plumbing, heat and air-conditioning installation"
},
{
"code": "43390",
"description": "Other building completion and finishing"
},
{
"code": "74901",
"description": "Environmental consulting activities"
}
],
"next_accounts_made_up_to": "2026-11-30",
"next_accounts_due_by": "2027-08-31",
"last_accounts_made_up_to": "2025-11-30",
"accounts_overdue": false,
"accounts_summary": "Accounts: next accounts made up to 2026-11-30 due by 2027-08-31; last accounts made up to 2025-11-30",
"confirmation_statement_next_date": "2027-09-19",
"confirmation_statement_due_by": "2027-10-03",
"confirmation_statement_last_date": "2026-09-19",
"confirmation_statement_overdue": false,
"officers": [
{
"name": "TABASSUM, Waqas Ali",
"role": "Director",
"status": "Active",
"appointed_on": "2020-11-19",
"resigned_on": null,
"nationality": "Pakistani",
"country_of_residence": "England",
"date_of_birth": "December 1985",
"correspondence_address": "123b, Barkby Road, Leicester, England, LE4 9LG",
"identity_verification_status": "verified",
"identity_verification_overdue": null,
"identity_verification_as_of": null,
"identity_verification_due_from": null,
"identity_verification_due_by": null
}
],
"pscs": [
{
"name": "Waqas Ali Tabassum",
"kind": "individual",
"status": "Active",
"notified_on": "2020-11-19",
"ceased_on": null,
"natures_of_control": [
"Ownership of shares โ€“ 75% or more",
"Ownership of voting rights - 75% or more",
"Right to appoint or remove directors"
],
"date_of_birth": "December 1985",
"nationality": "Pakistani",
"country_of_residence": "England",
"correspondence_address": "123b, Barkby Road, Leicester, England, LE4 9LG",
"legal_form": null,
"governing_law": null,
"place_registered": null,
"registration_number": null,
"incorporated_in": null,
"identity_verification_status": "verified",
"identity_verification_overdue": null,
"identity_verification_as_of": null,
"identity_verification_due_from": null,
"identity_verification_due_by": null
}
],
"listing_address": "123b Barkby Road, Leicester, England, LE4 9LG",
"search_query": "green energy",
"source": "search",
"has_charges": false,
"has_insolvency_history": false,
"officers_on_register": 1,
"resignations_on_register": 0,
"psc_statements_on_register": 0,
"is_active": true,
"officers_count": 1,
"active_officers_count": 1,
"resigned_officers_count": 0,
"directors_count": 1,
"psc_count": 1,
"sic_code_list": [
"41202",
"43220",
"43390",
"74901"
],
"filing_history": null,
"charges": null,
"charges_list_complete": null,
"row_status": "ok",
"lead_score": 100,
"charges_total": 0,
"charges_outstanding": 0,
"charges_satisfied": 0,
"charges_part_satisfied": 0,
"accounts_category": "MICRO",
"accounting_reference_date": "30-11",
"is_dormant": false,
"postcode": "LE4 9LG",
"post_town": "LEICESTER",
"county": null,
"address_reordered": false,
"address_country": "ENGLAND",
"officers_identity_verified_count": 1,
"officers_identity_overdue_count": 0,
"psc_identity_overdue_count": 0,
"changed_fields": null,
"row_state": null,
"row_type": "ROW",
"reason": null
}

Use UK Companies House Scraper with AI agents

Register this Actor with claude mcp add --transport http apify "https://mcp.apify.com?tools=Pradio/companies-house" and your agent can read the input, start runs and pull your dataset.

Personal data

Some rows name people. The categories of personal data an officer or PSC entry can carry are the ones Companies House publishes for inspection under the Companies Act 2006: a name with its role and status, the dates the appointment began and ended, nationality, country of residence, month and year of birth, the filed service address, and the register's identity-verification status. A PSC entry adds its natures of control; a company PSC adds its registered details. The day of birth and the usual residential address are never returned: the register withholds both, and nothing is filled in from anywhere else.

  • Structured register fields, nothing else. A filing-history entry carries the filing date, the form type and the register's own description. Document text, document images and accounts documents stay out.
  • Companies, not people. Officer and appointment pages are never read, but you still get a row naming the page you gave.
  • Every profile shows its source. It links back to the register page it was read from.
  • Overdue flags. identity_verification_overdue is true when an officer or PSC is past the register's due date as of the run's date. Resigned officers and ceased PSCs stay out of the count.
  • Who controls it. The publisher is the controller for the rows a run returns, and contact runs through this Actor's Issues tab. For rows you export you are the controller in your own right.
  • Correction and removal. A person or company named in a row can ask for either through that Issues tab, with the company number and role. A removal list ships with the Actor and every run reads it first, so a listed person stays off later rows and a company that asks is left unread.
  • Reuse credit. Companies House material is reused under the Open Government Licence, which asks for credit: "Contains public sector information licensed under the Open Government Licence v3.0."

Limits

  • One profile per company, and one run reads at most 5,000. A run is given seven hours, and a list that long takes about 242 minutes at the measured pace. For the whole register, use Companies House's free bulk data products or its API.
  • Reads run one page at a time with a pause between.
  • A refusal from the register stops the run there and is never retried. The rows already read stay in your dataset. Wait, then run the rest with a smaller list.
  • A company whose read fails mid-run costs that company alone.
  • An empty PSC list is the register's own answer: an exemption filed instead, nothing listed, or no PSC page at all.
  • On a dissolved company the register tags none as serving, so the serving counts read 0.
  • A UK establishment carries the register's status Open, and is_active reads false there while the company still trades. Its company_type reads 'UK establishment company', the register's own category.
  • A long charge list can come back part-read. charges_list_complete says whether the list is the whole one the register holds, and charges_total says how many it holds.
  • Officer and appointment pages stay unread. Give one as a URL and you get a row of its own naming it: an officer's search or appointments page, wherever it sits, including the officer path inside a company page at /company/N/officers/<name>.
  • A company's OWN tabs resolve to that company. /company/N/officers, /filing-history and /charges are read as the company's profile, the row's reason says which page you gave, and the read is charged.

Troubleshooting

One row says nothing matched. The register came back empty. Check the term's spelling, or try it in the register's own search.

A company came back as a failed read. That company's pages failed mid-run. The row names its number, the rest read on, and you can run those numbers again.

One row names the value you typed. A filter the run cannot use, a word where a SIC code belongs or a date that is not YYYY-MM-DD, is answered with one row naming the field and value.

FAQ

What do misses and repeats cost? Nothing. A run bills the profiles it resolved.

Can I use it through integrations, the API or an MCP server? Yes to all three. The rows plug into Make, Zapier and webhooks, and the run takes a schedule.

Is it legal to scrape Companies House? Companies House publishes every UK company profile for inspection under the Companies Act 2006, and this Actor reads those same public pages one at a time, inside the limits the register publishes. A refused read stops the run. You are responsible for having the right to read the pages you give it, and for how you use the rows.

How fresh is the data? Each run reads the register's live pages, so a row is as fresh as Companies House at that moment.

Do I need an account or login? You need an Apify account to run it. Nothing on Companies House itself is touched: the Actor reads public company pages, with no account there, no key and no sign in.

Feedback

A problem or a missing field goes to this Actor's Issues tab on the Apify Store, answered within two days. If it saved you time, a review on the Store helps other buyers find it.

Release notes

  • 2026-10-26: the incorporation window keeps only companies the register created, and leaves out one it never created.
  • 2026-10-26: registered_on carries the registration date beside the incorporation date, and the number box opens with two example companies.
  • 2026-10-25: the company types list opens with the three common forms, and Start URLs says what it takes.
  • 2026-10-24: the company number box comes first in the form, and the per-term cap is off the form, where the input still takes it when you set it.
  • 2026-10-24: accounts_overdue reads the register's own warning, a name filter says which rows it left out, Start URLs takes one shape, and a blank search term gets its own row.

See also

From the same publisher:

Not affiliated

This Actor is not affiliated with, associated with, endorsed by or sponsored by Companies House or the UK government. It reads public pages of the UK company register and returns what they show.