EU UBO Lookup avatar

EU UBO Lookup

Pricing

from $3.40 / 1,000 company checks

Go to Apify Store
EU UBO Lookup

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

Mike Berckmoes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Security

Limited permissions

Share

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.

  1. 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.
  2. 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.
  3. 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

ISOCountryAccessSource this Actor callsOfficial route
ATAustriaLegitimate interestNoneWiEReg
BEBelgiumLegitimate interestNoneFPS Finance UBO
BGBulgariaNo commercial open-data licence foundNoneRegistry Agency
HRCroatiaeID in practiceNoneFINA
CYCyprusLegitimate interestNoneRegistrar of Companies
CZCzechiaPublic portal suspended 17 Dec 2025NoneEvidence skutečných majitelů
DKDenmarkClosed to the public 1 Sep 2025NoneCVR
EEEstoniaOpen-data file withdrawn 10 Jul 2026Nonee-Business Register
FIFinlandLegitimate interestNonePRH
FRFranceClosed to the public 31 Jul 2024NoneINPI
DEGermanyClosed to the public 22 Nov 2022NoneTransparenzregister
GRGreeceLegitimate interestNoneGSIS
HUHungaryCase-by-case requestNoneNAV
IEIrelandLegitimate-interest certificateNoneRBO
ITItalyRegister suspended by the courtsNoneRegistro Imprese
LVLatviaOpen data, commercial redistribution allowedEnterprise Register CSVbeneficial_owners.csv
LTLithuaniaLegitimate interestNoneCentre of Registers
LULuxembourgLuxTrust or eIDASNoneLBR
MTMaltaLegitimate-interest certificateNoneMBR
NLNetherlandsLegitimate interestNoneKVK UBO
PLPolandPublic official web serviceCRBR, company NIP or KRS onlyCRBR
PTPortugalLegitimate interestNoneRCBE
RORomaniaLegitimate interestNoneONRC
SKSlovakiaAuthorities and national obliged entitiesNoneMinistry of the Interior
SISloveniaLegitimate interestNoneAJPES
ESSpainLegitimate interestNoneRegistradores
SESwedenLegitimate interest from 1 Jul 2026NoneBolagsverket
GBUnited KingdomOpen with your Companies House keyPSC register, Open Government LicenceCompanies House
NONorwayNo open UBO queryNone. Shareholders are not returned as ownersBrønnøysund
ISIcelandNo open UBO file foundNoneSkatturinn
LILiechtensteinNo open UBO file foundNoneLLV
CHSwitzerlandOutside the EU directiveNone. Zefix is not a UBO fileZefix

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

FieldMeaning
statusfound 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
beneficialOwnersName, nationality, residence country, nature of control, source. No national id, no birth date, no home address
accountingParentsGLEIF consolidating parents. Not beneficial owners
corporateControllersA legal-entity PSC or a group controller. Not a natural person
notAvailablereason, a short detail, and officialAccess (register, url, who, how)
chargedFalse 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.

EventPriceWhen
company-check$0.004A 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 runThe Latvia open-data file was fetched
apify-actor-start$0.00005Synthetic. 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-check at $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

  1. Paste companies, a LEI, a registration number, or a dataset ID.
  2. Add a Companies House key only if you want UK PSC records.
  3. 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_withdrawn and source_unavailable mean 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.