Latvia Company Data — Officers, Owners (UBO) & Financials
Pricing
from $4.00 / 1,000 results
Latvia Company Data — Officers, Owners (UBO) & Financials
Search Latvian companies from the official Register of Enterprises open data — identity, legal form, address, activity and capital, plus optional officers, shareholders, beneficial owners (UBO) and annual-report financials. Resale-open data, no key.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Latvia Company Data — Officers, Owners (UBO) & Financials
Need verified company data for Latvia — identity, who runs it, who owns it, and how it performs? This Actor turns the official Register of Enterprises of the Republic of Latvia (Uzņēmumu reģistrs) open data into clean, ready-to-use records: ~485,000 legal entities with registered identity, legal form, address, activity and capital — plus, on demand, the officers, shareholders, beneficial owners (UBO) and the latest annual-report financials.
Built on Latvia's official open data — free for commercial reuse and redistribution, no API key, no login, no fragile HTML scraping. It reads the register's daily-updated data files directly, so it doesn't break when a website changes.
- 🇱🇻 ~485K Latvian entities — the whole register, not a sample
- 👔 Officers & ownership (opt-in) — board / representatives, shareholders (SIA members + AS stockholders) and beneficial owners (UBO)
- 📊 Financials (opt-in) — latest annual report: employees, total assets, equity, net turnover, net income
- 🧭 Rich filters — name, registration number, legal form, register (companies only, or all), status, location, activity
- 🆓 Resale-open data — reuse and resell, no key, no scraping
Quick start (API)
Find active Rīga companies in transport, with officers and owners attached:
curl -X POST "https://api.apify.com/v2/acts/foxlabs~latvia-company-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "location": "Rīga", "activityQuery": "transport", "includeOwnership": true, "maxResults": 100 }'
Prefer no code? Open the Input tab, set your filters, and click Start — then download the results.
What you get
One clean, flat record per company:
| Field | Type | Description |
|---|---|---|
name | string | Full registered legal name |
shortName | string | Distinctive part of the name (without legal-form wrapper) |
registrationNumber | string | Latvian registration number (the register's unique key) |
legalForm | string | Legal form in English — e.g. Private limited company (SIA), Joint-stock company (AS). Translated for every code the register labels (99.7% of entities) |
legalFormCode | string | Original legal-form code (SIA, AS, IK, ZEM, BDR…) |
registerType | string | Which register the entity sits in, in English — Commercial Register, Mass media register, Associations and foundations register… |
registerTypeCode | string | The register's own one-letter code (K, U, B, M…) |
status | string | active or terminated |
registeredDate / terminatedDate | string | Registration and (if struck off) termination dates |
address / city / postalCode | string | Registered address, derived city, postal index |
capital / capitalFormatted | object / string | Registered equity capital ({ amount, currency } + a display string) |
primaryActivity / activities[] | string / array | Declared areas of activity, one per array item — the register stores them as a single free-text blob, which this Actor splits and de-bullets (avg 4.2 items where present) |
ownership (opt-in) | object | { officers[], shareholders[], beneficialOwners[] } — see below |
financials (opt-in) | object | Latest annual report { year, employees, totalAssets, equity, netTurnover, netIncome, currency, reportedIn }. reportedIn is the filer's own unit (ONES / THOUSANDS / MILLIONS); the amounts above it are already scaled to units |
source / license / registryUrl | string | Provenance — the register, its open-data licence, and the entity's registry link |
ownership (when includeOwnership is on):
officers[]—{ name, position, governingBody, type, representation }(board members & representatives)shareholders[]—{ name, type, shareClass, shares, nominalValue / votes, currency }(SIA members + AS stockholders)beneficialOwners[]—{ name, nationality, residence }(UBO as filed with the register)
Missing values come back as null, never a guess. Personal identity codes are masked at source — this Actor never exposes them.
Sample output
Real record for Lidl Latvija SIA (registrationNumbers: ["40203023760"], ownership + financials on) — officers abbreviated (7 in full):
{"name": "Lidl Latvija SIA","shortName": "Lidl Latvija","registrationNumber": "40203023760","legalForm": "Private limited company (SIA)","legalFormCode": "SIA","registerType": "Commercial Register","registerTypeCode": "K","status": "active","registeredDate": "2016-10-05","terminatedDate": null,"address": "Rīga, Dzelzavas iela 131","city": "Rīga","postalCode": "1021","capital": { "amount": 365500000, "currency": "EUR" },"capitalFormatted": "365,500,000 EUR","ownership": {"officers": [{ "name": "Dokozic Marin", "position": "CHAIR_OF_BOARD", "governingBody": "EXECUTIVE_BOARD", "type": "person", "representation": "WITH_AT_LEAST" },{ "name": "Kybartas Marius", "position": "BOARD_MEMBER", "governingBody": "EXECUTIVE_BOARD", "type": "person", "representation": "WITH_AT_LEAST" }],"shareholders": [{ "name": "LSTR-11 GmbH", "type": "entity", "shareClass": "SIA member", "shares": 36550, "nominalValue": 10000, "currency": "EUR" }],"beneficialOwners": [{ "name": "Dieter Josef Schwarz", "nationality": "DE", "residence": "DE" }]},"financials": {"year": 2024, "employees": 1348, "currency": "EUR", "reportedIn": "ONES","totalAssets": 425605168, "equity": 192095909,"netTurnover": 460869524, "netIncome": -18465625},"source": "Register of Enterprises of the Republic of Latvia (Uzņēmumu reģistrs)","license": "Latvian open data — free commercial reuse & redistribution","registryUrl": "https://info.ur.gov.lv/#/data-search?number=40203023760"}
Example inputs (copy & paste)
// 1) Browse active companies in a city{ "location": "Rīga", "status": "active", "maxResults": 5000 }// 2) Exact lookup by registration number, with ownership & financials{ "registrationNumbers": ["40003009497"], "includeOwnership": true, "includeFinancials": true }// 3) All joint-stock companies (AS) with their financials{ "legalForm": "AS", "includeFinancials": true, "maxResults": 2000 }// 4) Name search — real companies only, no press titles or journal entries{ "searchQuery": "transport", "status": "active", "registerType": "K" }// 5) Companies in an activity, with owners for lead / KYC lists{ "activityQuery": "būvniecība", "includeOwnership": true, "maxResults": 1000 }// 6) Whole-register sweep, identity only (fast at scale){ "status": "all", "maxResults": 200000 }
Input & filters
- Company name contains (
searchQuery) — case-insensitive substring on the registered name. - Registration numbers (
registrationNumbers) — exact lookup; overrides the name search. - Legal form (
legalForm) — code or Latvian text (SIA,AS,IK,ZEM,BDR,NOD…). - Register (
registerType) — the register holds more than companies.Kkeeps only the Commercial Register (today's companies),KUadds the pre-2005 Enterprise Register journal; empty means all registers. Use it to drop press titles, associations and political parties from a broad name search. - Status (
status) —active,terminated, orall. - Location contains (
location) — matches the registered address (city / district / street). - Activity contains (
activityQuery) — matches the declared area of activity. - Include officers & ownership (
includeOwnership) — attach officers, shareholders and beneficial owners. - Include financials (
includeFinancials) — attach the latest annual-report figures. - Max results (
maxResults) — 1 to 500,000.
Use cases
- B2B prospecting & market mapping. Filter by location, activity and legal form to build a targeted list of Latvian companies, then attach officers to reach the decision-makers.
- KYC / KYB & due diligence. Resolve the exact legal entity, its officers, shareholders and beneficial owners — the ownership chain your compliance file needs, from one authoritative source.
- Financial screening. Pull the latest annual-report figures (turnover, assets, equity, net income, headcount) to size and rank companies.
- Ownership & risk mapping. Trace who controls a company through its shareholders and UBO records.
- Enrichment. Match your CRM on the registration number and top up legal form, address, activity, capital, officers and financials.
Performance & throughput
The Actor reads Latvia's official open-data files directly (daily-updated) and queries them locally with DuckDB. Identity-only runs are quick; ownership adds four register files and financials add the annual-report files, so those runs download more up front and take a little longer. A whole-register sweep pages through all ~485K entities up to your maxResults. No proxies, no keys, no per-request rate limits.
Integrations
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('foxlabs/latvia-company-data').call({location: 'Rīga', includeOwnership: true, maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("foxlabs/latvia-company-data").call(run_input={"location": "Rīga", "includeOwnership": True, "maxResults": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["registrationNumber"])
Also works with Make / n8n / Zapier, scheduled runs, webhooks, and the Apify MCP server for AI agents.
Data quality (honest)
- Identity is dense. Name, registration number, legal form, status, address and registration date are present for essentially every entity — they're core register fields.
- Capital is present for most commercial companies (SIA / AS); some entity types carry none and come back
null. - Declared activity comes from the register's legacy activity dataset and covers a subset of entities (63,299 of ~485K, skewed to older companies) — Latvia's open data doesn't publish a broad industry / NACE classification, so many modern companies return an empty
activitieslist. Use it where present, not as a primary filter. Where present it is free text as typed by the filer, split into one array item per declared activity (avg 4.2), not a coded taxonomy. - The register is wider than "companies." Press titles, associations, political parties, religious congregations and pre-2005 journal entries live in the same database and match the same name searches — 21 of 100 rows for a plain "transport" search.
registerType(K= Commercial Register) filters them out;registerTypeCodetells you which register any given row came from. - Ownership is richer for commercial companies. SIA members, AS stockholders, officers and UBO exist where the company was required to file them; sole traders and some small entities have fewer.
directlyreported only — nothing inferred. - Financials cover companies that file annual reports (most active SIA/AS); the latest available year is returned. Amounts are as filed, in the reported currency.
- No contact details. The Latvian open register does not publish company email or phone, so this Actor doesn't invent them — it focuses on identity, ownership and financials. For email/phone lead data see our other company Actors.
- Nothing is fabricated — a missing value is
null, never a guess. Personal ID codes are masked at source.
Pricing
Pay per result — you're billed per company returned; officers, ownership and financials are included in that price when enabled. There's an Apify free tier to evaluate the full feature set. No proxies, no third-party API costs — Latvia's data is a free public open-data source.
FAQ
Where does the data come from? The official Register of Enterprises of the Republic of Latvia (Uzņēmumu reģistrs) open data, published on Latvia's national open-data portal and updated daily.
Can I use this data commercially / resell it? Yes. Latvia's open data may be reused and redistributed freely, including commercially, by natural and legal persons. Records carry a Source credit as good practice.
Do I get beneficial owners (UBO)? Yes — turn on Include officers & ownership and each record carries beneficialOwners[] as filed with the register (name, nationality, residence).
Does it include company email or phone? No — the Latvian register doesn't publish contact details, so we don't fabricate them. This Actor is identity, ownership and financials.
How fresh is it? The register republishes the open data daily; each run reads the current files.
Do I need an API key or account for the source? No. No key, no login, no scraping.
What export formats? JSON, CSV, Excel, or via the Apify API / integrations.
Troubleshooting
- Few / no results → your filters may be too narrow, or the companies are
terminated(the default is active only — setstatustoall). - No ownership / financials on a record → confirm the relevant toggle is on; small entities and non-filers legitimately have none.
- Name search returns extra matches → it's a substring match; narrow with
legalForm,locationor an exactregistrationNumberslookup.
Notes, limits & legal (honest)
- Official open data, reused under Latvia's open-data terms (free commercial reuse & redistribution). Not affiliated with the Register of Enterprises.
- Identity, ownership & financials — not contacts. No email or phone in the source.
- Ownership & financials are what companies filed with the register; coverage varies by entity type and filing obligations.
- Personal data is limited to what the public register publishes (names, roles); identity codes are masked.
Support
Questions, a field you'd like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr. We reply fast.
If this Actor saves you time, a ⭐ review really helps.
Changelog
0.1.2 — 2026-07-28
legalFormis now translated for every code the register labels. The old map carried five codes the register never uses (ZS,IU,KOOP,VAS,PAS) and was missing common real ones, soMIL,INDandKBrows came back in Latvian — 21 of 100 rows on a"transport"search. The map now covers all 48 labelled codes: 90.7% → 99.71% of the register's 485,846 entities (measured 2026-07-28). The remaining 0.29% are six legacy public-organisation codes (SPO,ASF,KOR,SAA,SPA,PRO) that the register itself publishes no label for — those return the raw code rather than a guess.activities[]is a real array now. The register stores declared activities as one free-text blob (CRLF- or;-separated, with*used as a bullet); the Actor emitted the whole blob as a single string. It is now split, de-bulleted, trimmed and de-duplicated: across all 63,299 entities with activity data, 63,299 → 267,181 items (avg 4.2 per company); the 27 rows whose blob was only whitespace now return[]instead of a junk string.primaryActivityis the first real activity, not the head of a blob.- New
registerTypefilter. The Register of Enterprises holds press titles, associations, political parties and pre-2005 journal entries alongside companies — 21 of 100 rows for a plain"transport"name search. SetregisterTypetoKfor the Commercial Register only,KUto add the pre-2005 journal, or pick any single register. registerTypein the output is now English (Commercial Register) instead of Latvian (Komercreģistrs), with the register's own letter code in the newregisterTypeCodefield — matching howlegalForm/legalFormCodealready work.legalFormfilter tightened. PickingASalso returned European companies (SE), because a code was matched as a substring of the Latvian label too ("Eiropas"). An exact code now matches the code only; free text still searches the label.- Docs:
financials.reportedInis now described in the field table.
0.1.1.1 — 2026-07-28
- Fixed: financial figures could be 1000× too small. Latvian filers may report in units or in thousands (the register's
rounded_to_nearestcolumn), which the Actor ignored — so everyTHOUSANDSfiling was understated by three orders of magnitude, and those are disproportionately the largest companies. All figures are now scaled to real currency units, and the filer's stated unit is surfaced asfinancials.reportedIn. Verified on the platform: LatvenergototalAssets4,189,397 → 4,189,397,000 (≈ €4.19 bn); Rimi Latvia, which files in units, is unchanged.
0.1.1 — 2026-07-28
- Officers/ownership and financials are now prefilled ON, with a ready KYB lookup (
40003053029SIA "RIMI LATVIA" +40003286799SIA "Mikrotīkls"/MikroTik) — the first run out of the box returns officers, shareholders, beneficial owners (UBO) and the latest annual report (100% fill on both records, measured 2026-07-28), not identity-only rows. The APIdefaultfor both toggles is unchanged (false). - Docs: enrichment toggles now state their measured download cost (ownership ~85 MB, financials ~500 MB).
0.1 — 2026-07-09
- Initial release. ~485K Latvian entities from the official Register of Enterprises open data: identity, legal form, address, activity and capital, with opt-in officers, shareholders, beneficial owners (UBO) and annual-report financials. Resale-open, no key.
Part of the foXLabs data platform — official public-data company, contact, ownership, jobs, charity, location & AI-search intelligence scrapers. Browse the full suite at data.foxlabs.com.tr.
