Company Registry Lookup: EU, UK & US (SEC EDGAR) + Officers
Pricing
from $2.00 / 1,000 company records
Company Registry Lookup: EU, UK & US (SEC EDGAR) + Officers
Look up companies in official registers across the EU, the UK (Companies House) and the US (SEC EDGAR), plus the global LEI index. Verify a business, check its EU VAT number live against VIES, and optionally return company officers with their job titles.
Pricing
from $2.00 / 1,000 company records
Rating
0.0
(0)
Developer
Pavel Tashev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
24 days ago
Last modified
Categories
Share
What does Company Registry Lookup do?
Company Registry Lookup answers two questions from official government sources: "which companies match this name or number?" and "is this business real, active, and is its VAT number valid?" It searches France (INSEE Sirene), Norway (Brønnøysund Enhetsregisteret), Finland (PRH / YTJ), the Czech Republic (ARES), Slovakia (RPO), Poland (KRS), Latvia (Uzņēmumu reģistrs), Ireland (CRO), the United Kingdom (Companies House), the United States (SEC EDGAR) and the global GLEIF LEI index in a single run. It can also return company officers — directors and secretaries — for the UK, France and the US.
Verify mode returns one consolidated answer per company: does it exist, its official name and status, its VAT number checked live against the European Commission's VIES service, its LEI and parent company, and a link to the registry page as a citation. Search mode returns every matching company.
For every company you get the official name, registration number, VAT ID where the registry publishes it, legal form, status (active, inactive or dissolved), incorporation date, registered address, industry codes, employee count where available and a link to the company's page on the official registry. Runs on the Apify platform, so you also get API access, scheduling, webhooks and integrations with Make, Zapier, n8n and Google Sheets.
You are never charged for a failed or empty result
Every result says what it is, and only real results cost anything.
status | Meaning | Charged |
|---|---|---|
ok | A real result | Yes |
empty | Worked, but there was nothing to report | No |
failed | Could not be done — the error field says why | No |
truncated / partial | Cut short by a limit you set; what was delivered is kept | Only the delivered part |
skipped | Not attempted, for example after the maximum cost per run was reached | No |
If every input fails, the run itself fails with an explanation instead of reporting success with no data.
Why use Company Registry Lookup?
- One call answers "is this business real?" Registry record, live VAT check and LEI in a single, stable answer with a confidence level and a list of what was checked.
- Official sources only. Data comes straight from the government registries' own open-data APIs, not from scraped directories.
- One schema for nine registries. No need to learn eight national APIs, their languages and their date and address formats.
- Paste names or numbers. SIREN/SIRET, Norwegian organisasjonsnummer, Finnish Y-tunnus, Czech and Slovak IČO, Polish KRS numbers, Irish CRO company numbers, UK company numbers (
09446231,SC090312), Latvian registration numbers, LEI codes and VAT numbers (for exampleCZ00177041orNO923609016MVA) are recognised automatically, with checksum validation. Some formats are shared by several countries — an 8-digit number is a valid UK, Czech, Slovak and Finnish number — so the Actor looks it up in each registry you selected and tells you which one it came from. Select fewer countries to remove the ambiguity. - Company data only. Directors, owners and sole traders (natural persons) are never included, which keeps the output free of personal data.
- Pay only for companies found. Queries with no match cost nothing.
Typical uses: KYB and supplier onboarding checks, CRM and lead enrichment with official IDs and VAT numbers, invoice and VAT data validation, checking whether a partner is still active, and giving AI agents a reliable "look up this company" tool.
How to look up companies in official business registries
- Click Try for free.
- In Companies, enter company names, registration numbers or VAT numbers, one per line.
- Choose Mode: Search registries for every match, or Verify one company per line for a single yes/no answer per company.
- Optionally choose which Countries and registries to search.
- Click Start. Most runs finish in seconds.
- Open the Output tab. Verification shows one row per company checked; Overview and Details show search results.
Input
| Field | Description | Default |
|---|---|---|
| Companies | Company names or registration numbers, one per line (up to 1,000). | – |
| Mode | search returns all matches; verify returns one consolidated answer per line. | search |
| Countries and registries | FR, NO, FI, CZ, SK, PL, LV, IE and LEI (global). Registration numbers are only looked up in the registry they belong to. Poland (KRS) is searched by KRS number only. | all |
| Lookup mode | auto detects registration numbers; name and id force one kind of lookup. | auto |
| Maximum results per company and registry | For name searches, how many matches each registry returns (best first), 1–50. | 10 |
| Include original registry record | Adds the registry's own record under raw (person data removed). | off |
| Check VAT numbers (VIES) | Verify mode: check EU VAT numbers against the European Commission's VIES service. | on |
| Look up LEI and parent company | Verify mode: find the LEI in the GLEIF index, plus direct and ultimate parent. | on |
| Company status | Keep only active, inactive or dissolved companies. | all |
| Incorporated after / before | Keep companies registered inside a date range (YYYY-MM-DD). | any |
| Industry codes | Comma-separated activity codes. A code matches everything beneath it, so 62 finds 62.01. | any |
| Name contains / excludes | Keep or drop companies by words in the registered name. | – |
| Watch these companies for changes | Remember each company's details and report what changed since the last run. | off |
| Only save companies that changed | Save and charge only companies whose watched details changed. | off |
| Watchlist name | Keep separate watchlists for separate sets of companies. | default |
| Include UK filing history | For UK companies, also fetch what they filed at Companies House. One extra request per company. | off |
| Maximum filings per company | How many recent filings to return (1–100). The summary counts them all. | 50 |
Example input:
{"queries": ["Equinor ASA", "0112038-9", "CZ00177041", "529900FCMZ4LKXFD0R69"],"countries": ["NO", "FI", "CZ", "LEI"],"maxResultsPerQuery": 5}
How name search works: every word you type must appear as a whole word in the company name (accents and punctuation are ignored, so Skoda Auto finds Škoda Auto a.s.). Exact names come first, then names that start with your query, then names that contain it; active companies are listed before dissolved ones.
Verify a business: one answer per company
Set Mode to Verify one company per line when you need a decision rather than a list: supplier onboarding (KYB), VAT validation before invoicing, or an AI agent checking a counterparty.
{"queries": ["CZ00177041", "BG831641791", "923609016"],"mode": "verify"}
Each line produces one record:
{"query": "CZ00177041","exists": true,"confidence": "exact-id","name": "Škoda Auto a.s.","status": "active","country": "CZ","registry": "ARES, Ministry of Finance (Czech Republic)","registryId": "00177041","vatNumber": "CZ00177041","vatValid": true,"vatName": "Škoda Auto a.s.","vatCheckedAt": "2026-09-16T09:38:35.668Z","lei": "529900I8XOZDM4ZQSQ21","parentName": "VOLKSWAGEN AKTIENGESELLSCHAFT","ultimateParentName": "VOLKSWAGEN AKTIENGESELLSCHAFT","incorporationDate": "1991-04-20","sources": [{ "name": "ARES, Ministry of Finance (Czech Republic)", "url": "https://ares.gov.cz/ekonomicke-subjekty?ico=00177041", "licence": "Data: ARES, Ministry of Finance of the Czech Republic (open data)" },{ "name": "European Commission VIES VAT number validation", "url": "https://ec.europa.eu/taxation_customs/vies/", "licence": "VAT status: European Commission VIES (VAT Information Exchange System)" }],"checks": [{ "check": "registry-record", "result": "found", "detail": "Škoda Auto a.s. in ARES, Ministry of Finance (Czech Republic)" },{ "check": "status", "result": "active", "detail": "stavZdrojeVr=AKTIVNI" },{ "check": "vat-number", "result": "valid", "detail": "Škoda Auto a.s." },{ "check": "lei", "result": "found", "detail": "registration number matches the LEI record" }],"checkedAt": "2026-09-16T10:12:03+00:00"}
How to read the answer
| Field | Meaning |
|---|---|
exists | true when a registry record was found or the VAT number is valid in VIES |
confidence | exact-id (matched by registration or VAT number), strong-name (the query is the company's name, ignoring case, accents and the legal form such as Ltd/Limited/GmbH/a.s.), weak (the name only starts with or contains the query), none (no company found). Other companies that also matched are always listed in otherMatches, whatever the confidence |
vatValid | true, false, or null when VIES could not answer. null never means invalid — vatError says what happened |
checks | Every check that ran and what it showed, including registries that were unreachable |
sources | The official sources behind the answer, each with its URL and licence, for citation |
What "verify" does not do: it does not check sanctions or ownership beyond the LEI parent, and it is not a certified registry extract. Companies with no registry in this Actor (for example Bulgaria) can still be confirmed through their VAT number alone.
For AI agents: one query in, one record out, with stable field names, explicit nulls and the registry URL to cite.
Failed lookups are never charged, so an agent can ask freely about companies that turn out not to exist.
Does this counterparty win EU public money?
Turn on Check EU public contracts (TED) in verify mode and each company also comes back with its EU public contract awards from TED (Tenders Electronic Daily), the EU's official procurement journal. It costs nothing extra and adds about a second per company.
Two things it will not do, because both would be lies:
- It never attributes a shared framework to one company. A single award notice often lists several winners, and
TED publishes one value for the whole notice. Those awards are counted and returned with
valueIsShared: true, but their money is never added tosoleWinnerValue. Ask about Sopra Steria Group and you get "2 EU public contract awards; 2 shared with other winners and not counted" — not a claim that it won 650 million euros. - It never passes a name match off as proof. A match is only
matchedBy: "identifier"when TED itself lists the company's registration or VAT number as the tenderer. If nothing matches, it falls back to the company name and labels the resultmatchedBy: "name"with the word candidates in the check line, because unrelated companies share a name across member states. Placeholder identifiers that buyers type into TED, such as99999999999, are refused outright rather than matched.
"euContracts": {"matchedBy": "identifier","matchedValue": "326820065","awardCount": 2,"sharedAwardCount": 2,"soleWinnerValue": null,"firstAward": "2024-12-05","lastAward": "2025-08-21","awards": [{"publicationNumber": "...","title": "France - Systems and technical consultancy services","buyer": "...","value": 308333332,"currency": "EUR","valueIsShared": true,"sharedWith": 4,"url": "https://ted.europa.eu/en/notice/..."}]}
TED notices are free to reuse for commercial and non-commercial purposes and the metadata is CC0 1.0.
Narrowing a search
The filters run over everything the registries return and only then the best matches are kept, so a filter never hides a company that sat just below the cut. Filtered-out companies are never charged.
{"queries": ["software"],"countries": ["CZ"],"companyStatus": ["active"],"industryCodes": "62","incorporatedAfter": "2020-01-01"}
One deliberate exception: a company whose register publishes no incorporation date is kept by a date filter. Several European registers omit the field entirely, and dropping those records would quietly hide every company from whole countries rather than filter them. The filters apply to searching; verifying a named company is not filtered, because that company either exists in the register or it does not.
Watching companies for change
Turn on Watch these companies for changes, schedule the Actor, and each run compares what the registry says now with what it said last time. The Actor remembers the name, status, legal form, address, activity codes, website, dissolution date, VAT ID and LEI of every company it saved, in a key-value store in your own Apify account named after Watchlist name.
Every saved company then carries two extra fields: changedFields, listing what differs, and firstSeen.
Add Only save companies that changed and a run saves — and charges for — nothing at all on a day when
nothing moved, which is what makes a daily status watch affordable.
What is deliberately not compared: the timestamps and the original raw record, which differ on every run.
Reporting those as changes would mark every company as changed every day, which is the same as reporting
nothing. A company the run could not reach keeps its remembered record, so a registry outage never erases the
history that tells the next run something changed.
UK filing history
Turn on Include UK filing history and every UK company also carries what it has actually filed at Companies House — accounts, confirmation statements, charges (mortgages), insolvency, capital and officer changes — each with its date and category, newest first.
Alongside the list, filingSummary answers what a credit or KYB reviewer looks for first: the date of the last
accounts and last confirmation statement, how many days past a year those accounts are, the number of charge
and insolvency filings, and totals by category. filingNotes puts the same thing in plain words:
The most recent accounts were filed on 2019-03-31, which is 2366 day(s) more than a year ago (about 6.5 years overdue).
These are facts about what was filed, never a verdict on the company. The Actor reports the dates; what they mean for your decision is yours to judge.
totalCount is what Companies House reports, not what we returned — a company with 215 filings is reported as
having 215 even when you asked for 40.
Directors' names are still never included
Companies House renders officer filings as "Appointment of Mr John Smith as a director", and its API carries the officer's name as its own field. None of that reaches the output. The filing itself stays, because knowing a director was appointed in March is a real signal, but the person is removed three ways: fields that name a person are dropped, nested values are dropped whole because a name could hide anywhere inside one, and every remaining piece of text is still run through a name filter in case a filing type we have not seen puts one somewhere new. This Actor does not process personal data, and adding a feature is not a reason to start.
Company officers (UK, France, United States)
Switch on Include company officers to get the people each source names as running the company. Off by default: this is personal data, and you need your own lawful basis to process it.
| United Kingdom | France | United States | |
|---|---|---|---|
| Source | Companies House officers | dirigeants (Annuaire des Entreprises) | SEC EDGAR Forms 3/4/5 |
| Names | Yes | Yes | Yes |
| Role | director, secretary, … | qualité | Real job title — "Chief Financial Officer", "Senior Vice President, CFO" |
| Date of birth | Month and year only | Year only | Not published |
| Former officers | Opt-in | – | Not published |
| Addresses | Opt-in | – | Never returned |
| Still serving? | Register publishes resignations | Assumed current | Unknown — judge on each officer's asOf date |
Read the US column carefully, because it is a different kind of source. EDGAR has no board register. US officers come from the company's own insider-trading filings, which means:
- You get real job titles, which UK and French registers do not give you.
- You get directors, officers and 10% owners, each flagged separately in
roles— one person can be all three. - It is not a complete board. Only insiders who filed recently appear, and a company with no recent Form 3/4/5 returns no officers at all.
- There is no resignation date, so
activeisnullrather thantrue.officerSummaryreports these understatusUnknownCountand never counts them as resigned. - Officer addresses are dropped unconditionally. A Form 4 address is whatever the filer typed and is sometimes a home address, so unlike UK service addresses there is no opt-in for it.
{"id": "SEC:0000320193","name": "Apple Inc.","country": "US","officers": [{ "name": "Parekh Kevan", "roles": ["officer"], "role": "Senior Vice President, CFO","isDirector": null, "isOfficer": true, "active": null, "asOf": "2026-04-23" },{ "name": "LEVINSON ARTHUR D", "roles": ["director"], "role": null,"isDirector": true, "active": null, "asOf": "2026-05-27" }],"officerSummary": { "returned": 2, "activeCount": 0, "resignedCount": 0, "statusUnknownCount": 2 }}
Looking up United States companies
Type a company name (Tesla), a stock ticker (TSLA), or a CIK written with its label (CIK0000320193).
A bare number is never treated as a CIK: a CIK is just digits and would collide with half the European
registries, so 1318605 is looked up as a European registration number, not an American one.
What EDGAR is and is not. The United States has no national company register — registration is per state,
and the large states that publish officer data are closed to automated access. EDGAR covers companies that
file with the SEC. That is excellent coverage of US public companies and none at all of private ones, and
foreign issuers such as Shopify file there too, so a record's country comes from its address rather than
from the source.
Output
One dataset item per company. A real example from a run on 15 September 2026:
{"id": "NO:923609016","country": "NO","registry": "Brønnøysund Register Centre, Enhetsregisteret (Norway)","registryId": "923609016","vatId": "NO923609016MVA","lei": null,"name": "EQUINOR ASA","legalForm": "Allmennaksjeselskap","legalFormCode": "ASA","status": "active","incorporationDate": "1972-09-18","dissolutionDate": null,"address": { "street": "Forusbeen 50", "postalCode": "4035", "city": "STAVANGER", "region": "STAVANGER", "country": "NO" },"industryCodes": [{ "scheme": "SN2007 (NACE)", "code": "06.100", "description": "Utvinning av råolje" }],"employeesRange": "21272","website": "https://www.equinor.com","sourceUrl": "https://virksomhet.brreg.no/nb/oppslag/enheter/923609016","attribution": "Contains data under the Norwegian licence for Open Government data (NLOD) 2.0 distributed by Brønnøysundregistrene","query": "NO923609016MVA","matchType": "id"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. A per-query report (matches found, saved, skipped sole traders and any registry errors) is saved in the key-value store as QUERIES_REPORT.
Output fields
| Field | Meaning |
|---|---|
id, registryId, registry, country | Unique ID (country:number), the official registration number and registry |
vatId, lei | VAT ID when the registry publishes it (France, Norway, Czech Republic, Poland); LEI for GLEIF records |
name, legalForm, legalFormCode | Official name and legal form as registered |
status, statusRaw | active, inactive (for example bankruptcy or liquidation in progress) or dissolved, plus the registry's own status |
incorporationDate, dissolutionDate | Dates in YYYY-MM-DD |
address | Registered address: street, postal code, city, region, country |
industryCodes | NACE-based activity codes (NAF, SN2007, TOL 2008, CZ-NACE, SK NACE, PKD 2007, NACE Rev. 2) |
employeesRange, website | When published (France: size band; Norway: headcount) |
sourceUrl, attribution | Link to the official registry page and the licence line to keep with the data |
query, matchType | Your query and whether it matched by id or name |
How much does it cost to look up company registry data?
This Actor uses pay-per-event pricing: you pay for each company record saved to your dataset, and in verify mode for each company that was confirmed to exist. A verification that comes back "not found" is saved but not charged. Queries with no match, invalid registration numbers and skipped sole traders are free, and the same company found by two queries is saved and charged once. See the Pricing tab for the current price per 1,000 companies. Platform compute is included. Set a maximum cost per run and the Actor stops cleanly when it is reached.
Tips
- Use registration numbers when you have them. They return exactly one company and are the cheapest lookup.
- Narrow name searches by selecting only the countries you need and lowering Maximum results per company and registry.
- Name searches for short, common words (for example
Bolt) match many companies in every registry; add the legal form (Bolt Group s.r.o.) to be precise. - Eight-digit numbers can be a Czech or Slovak IČO and a Finnish Y-tunnus without the dash; every registry whose checksum matches is queried.
- Polish companies: enter the 10-digit KRS number (for example
KRS 0000019193); the KRS API has no name search. - Irish companies: a 5–6 digit number, or
CRO 249885, is looked up as a CRO company number.
Sources, licences and limitations
| Registry | Coverage | Licence |
|---|---|---|
| France – API Recherche d'entreprises (INSEE Sirene, RNE) | Companies and associations; non-public ("non-diffusible") entities are not available | Licence Ouverte / Open Licence 2.0 |
| Norway – Brønnøysund Enhetsregisteret | All registered legal entities | NLOD 2.0 |
| Finland – PRH / YTJ open data | Companies in the Finnish Trade Register | Open data; mention the source |
| Czech Republic – ARES (Ministry of Finance) | Economic entities in Czech public registers | Open data (Government Regulation 425/2016) |
| Slovakia – Register of Legal Entities (RPO), Statistical Office | Legal entities; natural-person entrepreneurs and trade-licence holders are skipped | CC BY 4.0 |
| Poland – KRS via API KRS (Ministry of Justice) | Entities in the KRS register of entrepreneurs and of associations (lookup by KRS number) | Public domain (CC0 1.0) |
| Latvia – Register of Enterprises | Legal entities in the Latvian register | CC0 1.0 |
| Ireland – Companies Registration Office (CRO) open data | Companies registered in Ireland (updated daily) | CC BY 4.0 |
| United Kingdom – Companies House public data API | Companies registered in the UK, searched by name or company number | Crown copyright, reusable under the Open Government Licence v3.0 |
| United States – SEC EDGAR | SEC filers only — public companies, funds and foreign private issuers; not private US companies. Name search covers the ~10,500 companies with a stock ticker; lookup by CIK… covers all filers | U.S. government work, public domain |
| EU VAT numbers – European Commission VIES | VAT registration status in all EU member states (verify mode) | European Commission service; results are provided as-is |
| GLEIF – Global LEI Index | Entities with an LEI, worldwide | CC0 1.0 |
- Officers (directors, secretaries and equivalent) are returned for the United Kingdom, France and the United States when you switch on Include company officers. They are off by default because they are personal data and you need your own lawful basis to process them.
- Not included: shareholders, beneficial owners, financial statements, and natural persons (sole traders, individual entrepreneurs, farms owned by individuals). Officers are not available for the other registries, which do not publish them in their open data.
- Registry data is informative and not an official extract; for legal proceedings, request a certified extract from the registry.
- When you publish or resell the data, keep the
attributionline. Do not use registry logos or present your service as the registry's own. - The registries set fair-use limits (for example ARES: 500 requests per minute; France: 7 requests per second). The Actor paces its requests to stay within them.
- United Kingdom: included by default, no setup needed. (If you run your own copy of this Actor, Companies House
requires a free API key: register at developer.company-information.service.gov.uk, add it as
COMPANIES_HOUSE_KEYunder Settings → Environment variables, and select United Kingdom in Countries and registries. Without a key the UK is skipped and reported inQUERIES_REPORT; nothing fails.) Companies House allows 600 requests per five minutes. - VAT checks go to the European Commission's VIES service, which queries each member state's own database. Individual
member states are regularly unavailable for minutes at a time; the Actor then reports
vatValid: nullwith a reason, neverfalse. Some countries (for example Germany) confirm a number without disclosing the company name. - A registry that doesn't answer within about 30 seconds is skipped for that query. Results found before that are kept, and
QUERIES_REPORTmarks the registry aspartialorfailed. You're only charged for companies saved.
Related tools
Add hiring and website data to company records:
- Company Career Page Jobs Scraper: get all open jobs from company career pages (Greenhouse, Lever, Ashby and more).
- Website Tech Stack Detector: detect the CMS, frameworks, analytics and hosting of any website.
- Remote Jobs Aggregator: collect remote jobs from Himalayas, Remote OK and Jobicy in one dataset.
FAQ and support
Which countries are next? Tell us in the Issues tab. Denmark, Estonia, Lithuania and Switzerland are on the list, subject to their API terms.
A company is missing or looks wrong? Check QUERIES_REPORT for registry errors, then open an issue with the query. Custom registry integrations and bulk data pipelines are available on request.