EU UBO Lookup
Pricing
from $3.40 / 1,000 company checks
EU UBO Lookup
Beneficial owners from sources that can be reused commercially, and a not-available row with the official route where a register is closed.
Pricing
from $3.40 / 1,000 company checks
Rating
0.0
(0)
Developer
Mike Berckmoes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Check one company and get the beneficial owners where a commercial Actor is allowed to read them. For every other EU or EEA country the row says not available, with the reason and the official way to ask. Accounting parents from GLEIF are included when a LEI is known. They are not beneficial owners.
Checked against the public sources on 27 Oct 2026. The Court of Justice ruled on 22 Nov 2022 (joined cases C-37/20 and C-601/20, WM and Sovim) that beneficial-ownership registers cannot be open to any member of the public in all cases. Directive (EU) 2024/1640, article 12, replaces that with legitimate-interest access. Member states had to apply those rules by 10 July 2026.
What does EU UBO Lookup do?
Give it a company name, a registration number, a LEI, or a dataset from EU Company Register Lookup.
- The company is resolved with the same register and LEI search as EU Company Register Lookup. Those functions run inside this container. The public Actor is not called. Sole traders are dropped, the same way that Actor drops them.
- When a LEI is known, direct and ultimate accounting parents are read from GLEIF Level 2 (CC0). A natural-person parent is not named by GLEIF, and a missing parent is not turned into a guessed owner.
- Natural-person owners are read only from the sources in the table below that are marked open.
A personal identifier (for example a PESEL or a Latvian personal code) is format-checked and not sent to any register. notAvailableReason is personal_identifier.
datasetId accepts rows from eu-company-register-lookup, company-ownership-lookup, tender-supplier-due-diligence and domain-company-resolver (legalName, name, lei, registrationNumber, country).
The default cap is 20 companies (maximum 50).
Coverage
| ISO | Country | Access | Source this Actor calls | Official route |
|---|---|---|---|---|
| AT | Austria | Legitimate interest | None | WiEReg |
| BE | Belgium | Legitimate interest | None | FPS Finance UBO |
| BG | Bulgaria | No commercial open-data licence found | None | Registry Agency |
| HR | Croatia | eID in practice | None | FINA |
| CY | Cyprus | Legitimate interest | None | Registrar of Companies |
| CZ | Czechia | Public portal suspended 17 Dec 2025 | None | Evidence skutečných majitelů |
| DK | Denmark | Closed to the public 1 Sep 2025 | None | CVR |
| EE | Estonia | Open-data file withdrawn 10 Jul 2026 | None | e-Business Register |
| FI | Finland | Legitimate interest | None | PRH |
| FR | France | Closed to the public 31 Jul 2024 | None | INPI |
| DE | Germany | Closed to the public 22 Nov 2022 | None | Transparenzregister |
| GR | Greece | Legitimate interest | None | GSIS |
| HU | Hungary | Case-by-case request | None | NAV |
| IE | Ireland | Legitimate-interest certificate | None | RBO |
| IT | Italy | Register suspended by the courts | None | Registro Imprese |
| LV | Latvia | Open data, commercial redistribution allowed | Enterprise Register CSV | beneficial_owners.csv |
| LT | Lithuania | Legitimate interest | None | Centre of Registers |
| LU | Luxembourg | LuxTrust or eIDAS | None | LBR |
| MT | Malta | Legitimate-interest certificate | None | MBR |
| NL | Netherlands | Legitimate interest | None | KVK UBO |
| PL | Poland | Public official web service | CRBR, company NIP or KRS only | CRBR |
| PT | Portugal | Legitimate interest | None | RCBE |
| RO | Romania | Legitimate interest | None | ONRC |
| SK | Slovakia | Authorities and national obliged entities | None | Ministry of the Interior |
| SI | Slovenia | Legitimate interest | None | AJPES |
| ES | Spain | Legitimate interest | None | Registradores |
| SE | Sweden | Legitimate interest from 1 Jul 2026 | None | Bolagsverket |
| GB | United Kingdom | Open with your Companies House key | PSC register, Open Government Licence | Companies House |
| NO | Norway | No open UBO query | None. Shareholders are not returned as owners | Brønnøysund |
| IS | Iceland | No open UBO file found | None | Skatturinn |
| LI | Liechtenstein | No open UBO file found | None | LLV |
| CH | Switzerland | Outside the EU directive | None. Zefix is not a UBO file | Zefix |
Latvia: the Enterprise Register says its open data may be redistributed without restriction, including commercial use (notice of 6 May 2026). The file was online on 27 Oct 2026. The masked identity number and the birth date are dropped before the row is stored.
Poland: the Ministry of Finance publishes a public CRBR web service for company lookups (no login). The request is a company NIP or KRS. PESEL, date of birth, home address and representatives are dropped before the row is stored. The Polish VAT white list is not called, because that client keeps the raw payload for a day and a sole trader's payload can contain a PESEL. A restriction draft (UC75) was not treated as in force on 27 Oct 2026. An HTTP 401 or 403 becomes source_unavailable rather than a guess.
Estonia: the Estonian open-data page says beneficial-owner files stopped on 10 July 2026. The contractual API needs an account. The portal is not scripted.
United Kingdom: PSC records are read only when you paste your own free Companies House key. Month and year of birth are dropped. Ceased PSC records are dropped.
GLEIF Level 2 is CC0. accountingParents uses IS_DIRECTLY_CONSOLIDATED_BY and IS_ULTIMATELY_CONSOLIDATED_BY. Those are legal entities. OpenOwnership bulk data and OpenSanctions are not used. The BODS schema licence is not a licence for the data, and the OpenSanctions licence is non-commercial.
One row
| Field | Meaning |
|---|---|
status | found when at least one natural person came from an open source. not_found when that source was queried and had no natural person. not_available when the source cannot be used |
beneficialOwners | Name, nationality, residence country, nature of control, source. No national id, no birth date, no home address |
accountingParents | GLEIF consolidating parents. Not beneficial owners |
corporateControllers | A legal-entity PSC or a group controller. Not a natural person |
notAvailable | reason, a short detail, and officialAccess (register, url, who, how) |
charged | False when the input was a personal identifier and nothing was sent |
RUN_SUMMARY is counts and source flags. It does not contain a person's name. The open-data file is held in memory for the rest of the run and is not written to the key-value store.
How much does a company cost?
Pay per event. The live price is .actor/pricing.json.
| Event | Price | When |
|---|---|---|
company-check | $0.004 | A company that was checked. Closed-country rows are charged. A refused personal identifier, a missing source, a missing key, a missing registration number, or a withdrawn file is free |
lv-open-data | $0.020, once per run | The Latvia open-data file was fetched |
apify-actor-start | $0.00005 | Synthetic. The platform charges it. This Actor does not |
apify-default-dataset-item is not priced, so a not-available row is not charged again.
Apify keeps 20% of event revenue. Platform usage is deducted from the other 80%. The prices below use the FREE/BRONZE unit prices, which are the expensive tier: compute $0.20 per CU, external transfer $0.20 per GB. Default memory is 256 MB. One CU is 1 GB for one hour, so 256 MB is 256/1024 GB. apify-actor-start covers the first 5 seconds of compute.
One closed-country company (GLEIF only, about 15 seconds, about 100 KB):
- Billable compute: 10 seconds × (256/1024) GB / 3600 × $0.20 ≈ $0.00014
- Transfer ≈ $0.00002
company-checkat $0.004 keeps 80% = $0.0032. Profit about $0.003
One Latvia company, file measured at about 17 MB on 27 Oct 2026, about 45 seconds:
- Billable compute: 40 seconds × (256/1024) GB / 3600 × $0.20 ≈ $0.00056
- Transfer: 17/1024 GB × $0.20 ≈ $0.0033
- Events $0.024, of which 80% is $0.0192. Profit about $0.015
A file that grew to 60 MB would be about $0.012 of transfer. The $0.02 one-time event still covers it (80% is $0.016) plus the compute. Revisit the one-time price if the file passes about 80 MB.
Poland and the UK PSC call are small responses. They are covered by company-check.
How to run it
- Paste companies, a LEI, a registration number, or a dataset ID.
- Add a Companies House key only if you want UK PSC records.
- Download the dataset. Empty input finishes without a charge and without an HTTP call.
{"companies": [{"lei": "529900SSGT49ZZSWYE62"}], "maxCompanies": 1}
That German LEI returns accounting parents and not_available, because the Transparenzregister is legitimate-interest only.
Personal data
Beneficial owners are natural persons. The dataset keeps only what the lawful source publishes and what a KYB check needs: the name as published, nationality, country of residence, and the nature of control. National identifiers, dates of birth, home addresses, email and phone are dropped even when the file contains them.
You are the controller for the names you download. Customer due diligence uses Directive (EU) 2015/849, and the GDPR basis is Article 6(1)(c) or 6(1)(f). Delete the names when you no longer need them. This Actor is not a marketing list.
RUN_SUMMARY and the log carry counts, not names. Nothing in this Actor writes a natural person into a named key-value store that outlives the run.
Limitations
- A Latvia or Poland lookup needs a company registration number. A name that GLEIF cannot resolve is
registration_number_required. The Latvia file has no company-name column, and CRBR is not searched by a person's name. - GLEIF fair use spaces requests about 1.05 seconds apart, the same gap as the register Actor.
- Norway's shareholder file is not a beneficial-ownership file and is not queried for owners.
- Coverage will change when a member state opens or closes a file.
source_withdrawnandsource_unavailablemean this Actor stopped, not that it filled the gap.
FAQ
What does EU UBO Lookup return? Beneficial owners from sources a commercial Actor is allowed to read. For every other EU or EEA country the row says not available, with the reason and the official way to ask.
Why are most countries not available? The Court of Justice ruled on 22 Nov 2022 (C-37/20 and C-601/20) that beneficial-ownership registers cannot be open to everyone in all cases. Directive (EU) 2024/1640 replaces that with legitimate-interest access, which a commercial Actor cannot assume.
Are GLEIF parents beneficial owners? No. When a LEI is known, direct and ultimate accounting parents are read from GLEIF Level 2 and labelled as accounting parents. A missing parent is never turned into a guessed owner.
Are personal identifiers sent to a register? No. A personal identifier is format-checked only. The row carries notAvailableReason personal_identifier.
What can I give it as input? A company name, a registration number, a LEI, or a dataset ID from EU Company Register Lookup or Tender Supplier Due Diligence. Up to 50 companies per run.
How is it priced? $0.004 per company-check, plus a separate lv-open-data event ($0.02) where that source is read. A small apify-actor-start event applies per run; see the Pricing tab.
Related Actors
- EU Company Register: UK, FR, NO, FI, PL, CZ, SK, IE, RO, CH: Resolves the company first and can feed this Actor through a dataset ID.
- Supplier Risk Monitor: Includes an optional ownership check in a recurring supplier re-check.
- Tender Supplier Due Diligence: Builds supplier profiles from award notices that can feed this Actor.


