Back to blog
4 min read

How to look up any Lithuanian company by code, name, or VAT number

To look up a Lithuanian company you need one of three identifiers: its registration code (įmonės kodas), its name, or its VAT number (PVM kodas). Give any one of them to the ImonesMCP search_companies tool and you get back the matching companies with their legal status, sector, and latest revenue — no browsing, no scraping. This guide walks through each identifier, then shows how an AI agent does the whole lookup in one turn.

Three ways to identify a company

Every company registered in Lithuania has these identifiers, and each behaves differently:

  • Registration code (įmonės kodas) — a permanent 9-digit number assigned by Registrų centras when the entity is registered. It never changes and is the most reliable key. Example: 123456789.
  • Name — human-friendly but not unique or stable. Companies rename, and several may share similar names. Legal-form suffixes like UAB, MB, IĮ, or AB are part of the registered name.
  • VAT number (PVM kodas) — starts with LT and only exists if the company is registered for VAT with the VMI. Many small companies and freelancers are not VAT-registered, so this identifier may simply be absent.

When you know the code, use it. When you only have a name or VAT number, search first and confirm the code before you rely on any other data.

Look it up by hand vs. with an agent

By hand, a lookup means opening a registry portal, typing the name, scanning results, clicking through to a profile, and copying out the code, status, and financials. It works for one company. It does not scale to "check these forty suppliers" or "find every active logistics company in Vilnius over one million euro in revenue."

With an AI agent connected to ImonesMCP, the same lookup is a sentence: "Find the registration code and VAT status for [company name]." The agent calls search_companies, reads the result, and — if you asked for more — follows up with get_company for the full profile. No portal, no copy-paste, and the output is structured data your agent can act on. If you are new to how this connection works, see what MCP is.

Searching with search_companies

search_companies is the discovery tool. Its query field does fuzzy matching across name, code, and VAT number, and you can narrow the result set with filters: municipality, vatActive, activityDivision, minRevenue/maxRevenue, registeredAfter/registeredBefore, plus sort, limit, and offset.

A typical search combines a name fragment with a couple of filters:

{
  "query": "logistika",
  "municipality": "Vilnius",
  "vatActive": true,
  "limit": 10
}

That returns up to ten Vilnius-registered companies whose name, code, or VAT matches "logistika" and that currently have an active VAT registration. Each result carries the registration code, name, legal form, status, and latest revenue — enough to pick the right company before you pull the full record.

If you know the exact registration code, you can pass it straight to query (fuzzy match resolves an exact code cleanly), or skip search entirely and go to get_company.

Narrowing and paging through results

When a search returns more candidates than you want, tighten it instead of scrolling. Add activityDivision to constrain the sector, minRevenue/maxRevenue to bound the size, or registeredAfter/registeredBefore to focus on a time window. To page through a large result set, keep the same filters and advance offset while holding limit steady — for example limit: 20, offset: 0, then offset: 20 for the next page. Set sort (for instance, by revenue descending) so paging is deterministic and the most relevant matches come first. This is how an agent handles a request like "list every active manufacturer in Kaunas" without missing entries or repeating them.

Reading the full profile with get_company

Once you have the code, get_company returns the complete profile. It accepts either the registration code (ja_kodas) or the vatCode:

{
  "code": "123456789"
}

The response includes the legal form, current status (active, in liquidation, deregistered), VAT registration and code, the primary economic activity, the municipality, and the latest reported revenue. For year-by-year figures use get_company_financials; for the ownership footprint use get_company_people (aggregate counts only — no named individuals). The full field-by-field breakdown of what each identifier and status means is in the Lithuanian company data guide.

Common gotchas

A few things trip people up when they treat the identifiers as interchangeable:

  • VAT code is not the registration code. They are different numbers with different rules. Never assume a company's VAT number is its registration code with an LT glued on — the digits are unrelated.
  • Not every company has a VAT code. If vatActive is false or the VAT code is missing, the company simply is not VAT-registered. That is normal, not an error, and not a sign the company doesn't exist.
  • VAT registration can lapse. A company can be active as a legal entity while its VAT registration is inactive. Filter on vatActive when VAT status actually matters to your use case, and read the profile rather than assuming.
  • Names are not unique. Similar names are common. Always confirm the registration code before you act on financials or status.

Ready to run these lookups yourself? Connect an agent from the docs, or read on to see how the data maps to each field.

Related posts