nvNeuralVerge
Corporate registry

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.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Register of Enterprises directlyOpen Register of Enterprises and read the recordUsually free, sometimes per-documentA different interface, language and data shape for every country you add
Collecting it yourselfBuild and host a crawler per register, then keep each one aliveInfrastructure and maintenanceRegisters change their pages without warning, and nobody is on the hook when yours breaks
NeuralVergeOne request, the same shape as every other source in the catalog$5 per 1,000, misses not billedCovers Latvia — other countries are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
company.registration_numberstringLatvian registration number.
company.namestringRegistered name.
company.statusstringRegister status, e.g. Registered.
company.addressstringRegistered address.
company.urlstringLink to the entity on the register.
company.company_typestringLegal form in words, e.g. Stock Company.
company.incorporation_datestringDate of establishment (YYYY-MM-DD).
company.legal_form_codestringShort legal form code, e.g. AS.
company.registerstringRegister the entity is entered in, e.g. Commercial Register.
company.short_namestringShort name of the company.
company.entry_to_register_datestringDate of entry into the register.
company.removal_datenullRemoval date; null in the sample because the company is registered.
company.record_typestringType of record on the register.
company.previous_names[]arrayEarlier names of the company.
company.sepa_idstringSEPA creditor identifier.
company.euidstringEuropean Unique Identifier.
company.share_capitalobjectShare capital: amount, currency and type.
company.share_countnumberNumber of shares.
company.share_valuenumberNominal value of one share.
company.share_currencystringCurrency of the share value.
company.postal_codestringPostal code.
company.statute_datestringDate of the current articles.
company.employee_countnumberEmployee count on the register.
company.document_countnumberDocuments on file.
company.change_countnumberNumber of recorded changes.
company.registry_updated_atstringTimestamp of the last update on the register.
company.listedbooleanWhether the company is flagged as listed.
company.officers[]arrayOfficers: name, position_code, position, body, from, type, foreign, and representation where given.
company.officers_totalnumberTotal officers on the register.
company.officers_truncatedbooleanTrue when the returned officers are a part of the list.
company.officers_history_countnumberNumber of past officer entries.
company.shareholders[]arrayShareholders: name, registration_number, type, share_percent, share_count, share_value, value, currency, votes, from.
company.shareholders_totalnumberTotal shareholders on the register.
company.shareholders_truncatedbooleanTrue when the returned shareholders are a part of the list.
company.shareholders_history_countnumberNumber of past shareholder entries.
company.beneficial_owners[]arrayBeneficial owners; empty in the sample.
company.beneficial_owners_totalnumberTotal beneficial owners.
company.holdings[]arrayStakes the company holds in other entities: name, registration_number, type, share_percent, share_count, share_value, from.
company.holdings_totalnumberTotal holdings.
company.special_status_history[]arraySpecial status entries with type, text in Latvian and date range.
company.activitiesnullNull in the sample.
company.notesnullNull in the sample.
blockedbooleanTrue when the register could not be read.
pages_openednumberRegister pages read for this lookup.
Response

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
}
Integration

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"}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Know-your-business checks

Confirm a Latvian counterparty is registered, what legal form it has and who its officers are.

Ownership mapping

Read shareholders with percentages and voting rights, and the stakes the company holds in other entities.

Supplier and customer onboarding

Check status, address and capital before you open an account.

Change monitoring

Use change_count, registry_updated_at and the history counts to see how much a record has moved.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Latvia — entities on Register of Enterprises.

Freshness

Read at request time, so the answer reflects the register as it stands when you ask.

Handling

Register of Enterprises is a public register. Every response carries the source URL it was read from and a session id you can trace.

What it will not do
  • —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.
FAQ

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

Related sources

Try latvia company on your own data

One request format across every source in the catalog.

Get started