Latvia Company Registry API and MCP — Officers, Shareholders & Beneficial Owners
Send a Latvian registration number, or the link to the company on the Register of Enterprises, and you get the company record as structured JSON: name, status, legal form, registration date, address, share capital, officers, shareholders, beneficial owners and the company's holdings in other entities.
- You send
- A Latvian registration number or a link to the record on the register
- You get back
- Status, legal form, capital, officers, shareholders, beneficial owners, holdings and history
- Coverage
- Latvia — entities on Register of Enterprises.
- Price
- 5 pts — $5 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Register of Enterprises directly | Open Register of Enterprises and read the record | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $5 per 1,000, misses not billed | Covers Latvia — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
company.registration_number | string | Latvian registration number. |
company.name | string | Registered name. |
company.status | string | Register status, e.g. Registered. |
company.address | string | Registered address. |
company.url | string | Link to the entity on the register. |
company.company_type | string | Legal form in words, e.g. Stock Company. |
company.incorporation_date | string | Date of establishment (YYYY-MM-DD). |
company.legal_form_code | string | Short legal form code, e.g. AS. |
company.register | string | Register the entity is entered in, e.g. Commercial Register. |
company.short_name | string | Short name of the company. |
company.entry_to_register_date | string | Date of entry into the register. |
company.removal_date | null | Removal date; null in the sample because the company is registered. |
company.record_type | string | Type of record on the register. |
company.previous_names[] | array | Earlier names of the company. |
company.sepa_id | string | SEPA creditor identifier. |
company.euid | string | European Unique Identifier. |
company.share_capital | object | Share capital: amount, currency and type. |
company.share_count | number | Number of shares. |
company.share_value | number | Nominal value of one share. |
company.share_currency | string | Currency of the share value. |
company.postal_code | string | Postal code. |
company.statute_date | string | Date of the current articles. |
company.employee_count | number | Employee count on the register. |
company.document_count | number | Documents on file. |
company.change_count | number | Number of recorded changes. |
company.registry_updated_at | string | Timestamp of the last update on the register. |
company.listed | boolean | Whether the company is flagged as listed. |
company.officers[] | array | Officers: name, position_code, position, body, from, type, foreign, and representation where given. |
company.officers_total | number | Total officers on the register. |
company.officers_truncated | boolean | True when the returned officers are a part of the list. |
company.officers_history_count | number | Number of past officer entries. |
company.shareholders[] | array | Shareholders: name, registration_number, type, share_percent, share_count, share_value, value, currency, votes, from. |
company.shareholders_total | number | Total shareholders on the register. |
company.shareholders_truncated | boolean | True when the returned shareholders are a part of the list. |
company.shareholders_history_count | number | Number of past shareholder entries. |
company.beneficial_owners[] | array | Beneficial owners; empty in the sample. |
company.beneficial_owners_total | number | Total beneficial owners. |
company.holdings[] | array | Stakes the company holds in other entities: name, registration_number, type, share_percent, share_count, share_value, from. |
company.holdings_total | number | Total holdings. |
company.special_status_history[] | array | Special status entries with type, text in Latvian and date range. |
company.activities | null | Null in the sample. |
company.notes | null | Null in the sample. |
blocked | boolean | True when the register could not be read. |
pages_opened | number | Register pages read for this lookup. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "lv_companies",
"company": "40003000642",
"company_id": "40003000642",
"human": "# Latvia — Register of Enterprises — company\n\n- **Number:** 40003000642\n- **Pages opened:** 6\n- **Proxy traffic:** 49.2 KB\n- **Name:** Akciju sabiedrība \"Latvijas Gāze\"\n- **Status:** Registered\n- **Type:** Stock Company\n- **Registered:** 1991-03-25\n- **Address:** Rīga, Aristida Briāna iela 6",
"machine": {
"company": {
"registration_number": "40003000642",
"name": "Akciju sabiedrība \"Latvijas Gāze\"",
"status": "Registered",
"address": "Rīga, Aristida Briāna iela 6",
"url": "https://info.ur.gov.lv/#/legal-entity/40003000642",
"company_type": "Stock Company",
"incorporation_date": "1991-03-25",
"legal_form_code": "AS",
"register": "Commercial Register",
"short_name": "Latvijas Gāze",
"entry_to_register_date": "2004-12-20",
"removal_date": null,
"record_type": "lventity",
"previous_names": [
"Akciju sabiedrība \"LATVIJAS GĀZE\"",
"Privatizējamā valsts akciju sabiedrība \"LATVIJAS GĀZE\""
],
"sepa_id": "LV29ZZZ40003000642",
"euid": "LVUR.40003000642",
"share_capital": {
"amount": 55860000,
"currency": "EUR",
"type": "APM"
},
"share_count": 39900000,
"share_value": 1.4,
"share_currency": "EUR",
"postal_code": "1001",
"statute_date": "2025-12-11",
"employee_count": 6684,
"document_count": 1005,
"change_count": 212,
"registry_updated_at": "2026-09-14T15:31:54+03:00",
"listed": false,
"activities": null,
"types_of_activity": null,
"notes": null,
"special_statuses": null,
"officers": [
{
"name": "Bļugers Valentīns",
"position_code": "PLO",
"position": "Member of the Council",
"body": "Council",
"from": "2025-08-15",
"type": "person",
"foreign": false
},
{
"name": "Kalvītis Aigars",
"position_code": "VPR",
"position": "Chairperson of the Board",
"body": "Board",
"representation": "individually",
"from": "2026-08-12",
"type": "person",
"foreign": false
}
],
"officers_total": 7,
"officers_truncated": false,
"officers_history_count": 329,
"shareholders": [
{
"name": "SIA \"Energy Investments\"",
"registration_number": "40203503839",
"type": "legal entity",
"share_percent": 81.25467,
"share_count": 32420612,
"share_value": 1.4,
"value": 45388856.8,
"currency": "EUR",
"votes": 32420612,
"from": "2026-08-10"
},
{
"name": "Sabiedrība ar ierobežotu atbildību \"ITERA Latvija\"",
"registration_number": "50003317361",
"type": "legal entity",
"share_percent": 16,
"share_count": 6384001,
"share_value": 1.4,
"value": 8937601.4,
"currency": "EUR",
"votes": 6384001,
"from": "2024-09-27",
"address": "Rīga, Palasta iela 1"
}
],
"shareholders_total": 6677,
"shareholders_truncated": true,
"shareholders_hidden": false,
"shareholders_history_count": 166,
"beneficial_owners": [],
"beneficial_owners_total": 0,
"beneficial_owners_truncated": false,
"beneficial_owners_history_count": 3,
"holdings": [
{
"name": "Baltic International Bank SE",
"registration_number": "40003127883",
"type": "SE",
"share_percent": 0.00911,
"share_count": 724,
"share_value": 7.1,
"from": "2025-10-14"
},
{
"name": "SIA \"LG Capital\"",
"registration_number": "50203673881",
"type": "SIA",
"share_percent": 100,
"share_count": 17000000,
"share_value": 1,
"from": "2025-08-25"
}
],
"holdings_total": 2,
"holdings_truncated": false,
"special_status_history": [
{
"type": "P",
"text": "Juridiskās personas patieso labuma guvēju noskaidrot nav iespējams",
"from": "2019-05-07",
"to": "2022-11-24"
},
{
"type": "B",
"text": "Patiesais labuma guvējs ir akcionārs tādā akciju sabiedrībā, kuras akcijas ir iekļautas regulētajā tirgū, un veids, kādā tiek īstenota kontrole pār juridisko personu, izriet tikai no akcionāra statusa",
"from": "2022-11-24",
"to": "2024-11-13"
}
],
"requested_id": "40003000642"
},
"blocked": false,
"pages_opened": 6,
"proxy_traffic_bytes": 50371
},
"total_points": 5
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-lv-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"40003000642"}'What teams use it for
Where this field shows up in an actual workflow.
Confirm a Latvian counterparty is registered, what legal form it has and who its officers are.
Read shareholders with percentages and voting rights, and the stakes the company holds in other entities.
Check status, address and capital before you open an account.
Use change_count, registry_updated_at and the history counts to see how much a record has moved.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Latvia — entities on Register of Enterprises.
Read at request time, so the answer reflects the register as it stands when you ask.
Register of Enterprises is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Looks up one company per request. To find a registration number from a name, use the Latvia company search source.
- —Long lists are cut and flagged. When shareholders_truncated is true, shareholders_total tells you how many exist.
- —Some fields can be null for a given company; beneficial_owners is empty in the sample.
Questions, answered
Officers, shareholders and holdings each come with a total and a truncated flag. When the flag is true, the list in the response is a part of the total.
Related sources
Try latvia company on your own data
One request format across every source in the catalog.