UK Companies House Scraper — Companies, Officers, PSC & Filings avatar

UK Companies House Scraper — Companies, Officers, PSC & Filings

Pricing

from $1.00 / 1,000 results

Go to Apify Store
UK Companies House Scraper — Companies, Officers, PSC & Filings

UK Companies House Scraper — Companies, Officers, PSC & Filings

Export UK Companies House data without an API key: advanced company search (name, address, status, type, SIC code, dates), full company profiles, directors and officers, persons with significant control, filing history with PDF links and charges.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Banea Teodor

Banea Teodor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What does UK Companies House Scraper do?

UK Companies House Scraper exports the public register of Companies House, the official registry of more than 5 million live UK companies, without an API key. Find companies with the register's advanced search (company name, registered office address, status, company type, SIC code, incorporation and dissolution dates) or give your own list of company numbers. Then choose the data you want, one row per item:

  • Companies: full profile with status, type, incorporation date, registered office (split into street, town, county, postcode and country), SIC codes with descriptions, previous names, next and last accounts dates, confirmation statement dates, overdue flags, charges and insolvency flags, and the number of current and resigned officers.
  • Officers: directors, secretaries and LLP members with role, appointment and resignation dates, month and year of birth, nationality, country of residence, correspondence address and identity-verification status.
  • Persons with significant control (PSC): individuals, corporate owners, legal persons, PSC statements and exemptions, with natures of control.
  • Filing history: date, form type, category, full description and a direct PDF link for every filing.
  • Charges: charge code, status, created / delivered / satisfied dates, lenders and description.

No login, no browser, no API key to register.

Why use this Actor?

  • No API key, no setup. Most Companies House tools ask you to register a developer account and paste a key. This one reads the public website.
  • Real filters, whole result sets. The register's advanced search lets you combine name, address, status, type, SIC codes and date ranges. The site only lets you download 5,000 companies per search; this Actor splits larger searches by incorporation date automatically, so you get all 174,000+ active IT consultancies (SIC 62020) if you want them.
  • Clean, typed rows. ISO dates, booleans for overdue and charge flags, numbers as numbers, SIC descriptions next to the codes, addresses split into parts, the same keys on every row (null when the register has no value).
  • Five data types, one Actor. Companies, officers, PSC, filing history and charges, from a search or from your list of company numbers.
  • Cheap bulk lists. Without company details, a whole search download of up to 5,000 companies is one request.

How much does it cost?

You pay $0.005 per run plus $2.00 per 1,000 rows (companies, officers, PSC entries, filings or charges). Platform usage and proxy are included.

RunRowsCost
20 active bakeries in Leeds with full profiles (the prefilled input)20$0.045
IT consultancies incorporated in Q1 2025, search fields only~7,000~$14
Directors of 50 bakeries in Leeds~70~$0.15
Last 50 filings of 10 companies500~$1.00
Persons with significant control of 100 companies~150~$0.30

Input

FieldDescriptionExample
dataTypeRow type: companies, officers, psc, filings or charges."companies"
companySourcesearch (advanced search filters) or companyNumbers (your list)."search"
companyNameIncludes / companyNameExcludesWords the name must / must not contain."bakery"
registeredOfficeAddressTown, street or postcode in the registered office address."Leeds"
companyStatusesActive, dissolved, liquidation, administration… (any of them).["active"]
companyTypesPrivate limited company, PLC, LLP, limited partnership, overseas entity…["ltd", "llp"]
companySubtypeCommunity interest company or private fund limited partnership."community-interest-company"
sicCodes5-digit SIC 2007 codes (any of them).["62020", "62090"]
incorporatedFrom / incorporatedToIncorporation date range."2025-01-01"
dissolvedFrom / dissolvedToDissolution date range (since 2010)."2024-01-01"
companyNumbersCompany numbers or company page URLs.["00445790", "SC700865"]
includeCompanyDetailsCompanies: read each company page for the full profile (default on).true
officerStatusOfficers: active (default), all or resigned."all"
maxOfficersPerCompany / maxFilingsPerCompanyCaps per company (0 = all).100 / 50
filingCategoriesFilings: keep only these categories (accounts, officers, capital, charges…).["accounts"]
maxCompaniesOfficers / PSC / filings / charges from a search: companies to scan.100
maxResultsRows to return; 0 = all.20

A search needs at least one filter. With maxResults: 0 and only status or type filters, the run stops at 10,000 companies unless you set a number. A run takes at most 10,000 company numbers (split longer lists over several runs).

Output

One row shape per run, chosen by dataType. Each run's rows have exactly the keys of their data type (the dataset tabs Companies, Officers, Persons with significant control, Filing history and Charges show them as tables).

Company row (with company details):

{
"companyNumber": "00445790",
"companyName": "TESCO PLC",
"companyStatus": "active",
"companyStatusText": "Active",
"companyStatusDetail": null,
"companyType": "plc",
"companyTypeText": "Public limited company",
"companySubtype": null,
"incorporatedAt": "1947-11-27",
"dissolvedAt": null,
"registeredAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"addressLine1": "Tesco House",
"addressLine2": "Shire Park, Kestrel Way",
"locality": "Welwyn Garden City",
"region": null,
"postalCode": "AL7 1GA",
"country": "United Kingdom",
"sicCodes": ["47110"],
"sicDescriptions": ["Retail sale in non-specialised stores with food, beverages or tobacco predominating"],
"previousNames": [
"TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY (1981-12-14 to 1983-08-25)",
"TESCO STORES (HOLDINGS) LIMITED (1947-11-27 to 1981-12-14)"
],
"accountsNextMadeUpTo": "2027-02-26",
"accountsNextDue": "2027-08-26",
"accountsLastMadeUpTo": "2026-02-28",
"accountsOverdue": false,
"confirmationStatementNextDate": "2027-06-18",
"confirmationStatementNextDue": "2027-07-02",
"confirmationStatementLastDate": "2026-06-18",
"confirmationStatementOverdue": false,
"hasCharges": true,
"hasInsolvencyHistory": false,
"officersActive": 11,
"officersResigned": 63,
"incorporatedIn": null,
"foreignRegistrationNumber": null,
"foreignLegalForm": null,
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790",
"detailsScraped": true,
"scrapedAt": "2026-10-20T08:00:00.000Z"
}

Without company details (includeCompanyDetails: false) the row keeps the same keys; the register's search download has name, number, status, type, subtype, incorporation and dissolution dates, SIC codes and the address as one line without commas, so only the postcode and country are split out and page-only fields are null (detailsScraped: false).

Officer row:

{
"companyNumber": "12345678",
"companyName": "EXAMPLE BAKERY LTD",
"officerId": "aBcDeFgHiJkLmNoPqRsTuVwXyZ0",
"name": "EXAMPLE, Jane Mary",
"surname": "EXAMPLE",
"forenames": "Jane Mary",
"role": "Director",
"status": "resigned",
"appointedAt": "2024-12-16",
"appointedBefore": false,
"resignedAt": "2026-05-01",
"dateOfBirth": "1985-04",
"nationality": "British",
"countryOfResidence": "United Kingdom",
"correspondenceAddress": "1 Example Street, Leeds, England, LS1 1AA",
"isCorporate": false,
"registrationNumber": null,
"legalForm": null,
"identityVerified": true,
"identityVerificationDueBy": null,
"appointmentsUrl": "https://find-and-update.company-information.service.gov.uk/officers/aBcDeFgHiJkLmNoPqRsTuVwXyZ0/appointments",
"url": "https://find-and-update.company-information.service.gov.uk/company/12345678/officers",
"scrapedAt": "2026-10-20T08:00:00.000Z"
}

PSC row keys: companyNumber, companyName, kind (individual / corporate / legal-person / statement / exemption), name, status, notifiedAt, ceasedAt, dateOfBirth, nationality, countryOfResidence, correspondenceAddress, naturesOfControl[], legalForm, governingLaw, placeRegistered, registrationNumber, incorporatedIn, identityVerified, identityVerificationDueBy, statement, url, scrapedAt.

Filing row keys: companyNumber, companyName, filingId, date, formType, category, description, documentUrl (PDF), pages, url, scrapedAt. Stand-alone annotation lines (the register repeats them after the filing they belong to) have no document, so their filingId, documentUrl and pages are null.

Charge row keys: companyNumber, companyName, chargeId, chargeCode, title, status, createdAt, deliveredAt, satisfiedAt, personsEntitled[], briefDescription, chargeUrl, url, scrapedAt. briefDescription is the text of the register's charges list, which shortens long descriptions (ending in "…"); the full text is on the charge page (chargeUrl).

Problems (a company number that does not exist, a page that could not be read, a part of a search that could not be reached) are listed in the run's key-value store under ERRORS and never mixed into the rows. A company page that fails during a search still gives a row with the search fields (detailsScraped: false).

Tips and tricks

  • Big searches: turn off includeCompanyDetails for fast lists: about 5,000 companies per request. With details, each company needs two page loads (about 1.3 companies per second, roughly 4,500 per hour), so for more than about 4,000 companies raise the run timeout above the default hour (Run options → Timeout). Rows are saved as they are collected, so a run that hits its timeout keeps everything collected so far.
  • New companies feed: set incorporatedFrom to yesterday's date and schedule the run daily.
  • Several SIC codes return companies with any of them, each once.
  • Address filter matches the whole address text, so "Leeds" also finds a "Leeds Road" in Bradford. A postcode district ("LS1 ") is more precise.
  • Directors of a sector: dataType: "officers", a SIC code and a town, maxCompanies to control the cost. officerStatus: "all" adds former directors.
  • Due-diligence pack for a few companies: run companies, psc, officers, charges and filings on the same companyNumbers; companyNumber joins the datasets.
  • Filing categories are derived from the form type (AA = accounts, CS01 = confirmation statement, AP01 / TM01 = officers, SH01 = capital, MR01 = charges…). With a category filter the Actor reads on through the history (at most the newest 200 filings per company) until it has maxFilingsPerCompany matches.
  • Cost of low-yield scans: charges and category-filtered filings from a search cost a page load per company even when the company has no matching rows (most companies have no charges). Keep maxCompanies modest (the default is 100).
  • Overseas companies: incorporatedAt is the date the first UK establishment opened (overseas entities: the registration date), as the register shows it.
  • Old records: officers appointed before 1991 often show only "appointed before" a date (appointedBefore: true). Companies that stopped filing before 2016 have an annual return date in confirmationStatementLastDate.

Integrations

Export the dataset as JSON, CSV or Excel, or fetch it by API (/v2/datasets/{id}/items?view=officers). Connect the Actor to Google Sheets, Zapier, Make, Slack or a webhook from the Integrations tab, or schedule it to keep a lead list, a KYC watch list or a new-companies feed up to date.

Personal data

Officers and persons with significant control are named individuals in a public register. The Actor outputs only what Companies House publishes: name, role, dates, nationality, country of residence, the published correspondence address and the month and year of birth (never a day). It never outputs home addresses or the identity-verification narrative. If you process this data, you are the controller under UK GDPR / GDPR: have a lawful basis (for example legitimate interest for due diligence or B2B prospecting), respect objections and keep only what you need.

Disclaimer

The data is published by Companies House under the Open Government Licence. Companies House does not check the accuracy of the information filed. This Actor is not affiliated with Companies House.