API Documentation

Start using JARS.LT API in minutes

Authentication#

All API requests require an API key. Add it as x-api-key header:

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/companies/search?q=UAB

Base URL#

All API endpoints start with:

https://api.jars.lt/api/v1

For Estonian data, you can also use:

https://api.jars.ee/api/v1

When using api.jars.ee, the default country is Estonia (ee). On api.jars.lt, the default is Lithuania (lt).

Node.js SDK#

Official TypeScript/JavaScript SDK for easy integration with JARS.LT API.

Installation

npm install @jars-lt/sdk

Usage

import { JarsClient } from '@jars-lt/sdk';

const client = new JarsClient({
  apiKey: 'your_api_key_here'
});

// Search Lithuanian companies
const companies = await client.searchCompanies({ q: 'UAB Maxima' });

// Search Estonian companies
const eeCompanies = await client.searchCompanies({ q: 'Bolt', country: 'ee' });

// Get company by code
const company = await client.getCompany('123456789');

// Get Estonian company
const eeCompany = await client.getCompany('14532901', { country: 'ee' });

// Get company financial reports
const financials = await client.getCompanyFinancials('123456789');

// Search addresses (Lithuania only)
const addresses = await client.searchAddresses({ q: 'vilnius gedimino' });

// Normalize address (with typos)
const normalized = await client.normalizeAddress('gedimno pr 28 vilnus');

// Check workday
const workday = await client.checkWorkday('2024-12-25');

// Add workdays
const result = await client.addWorkdays('2024-01-15', 5);
View on npm

MCP (Model Context Protocol)#

JARS.LT supports Model Context Protocol (MCP) — an open standard for AI assistants to interact with external data sources. Use our MCP endpoint to query Lithuanian and Estonian company data directly from ChatGPT, Claude, and other AI tools.

Features

  • Search companies by name or registration code
  • Get detailed company information and financials
  • Query economic statistics and rankings
  • Normalize and search addresses

Endpoint

https://api.jars.lt/mcp

Claude Desktop / Claude Code Configuration

Add the following to your Claude configuration file:

{
  "mcpServers": {
    "jars": {
      "url": "https://api.jars.lt/mcp",
      "headers": {
        "x-api-key": "your_api_key_here"
      }
    }
  }
}

OAuth 2.0 Authentication

For AI clients that support OAuth (like ChatGPT), use the standard OAuth discovery endpoints:

  • /.well-known/oauth-authorization-server
  • /.well-known/oauth-protected-resource

We support Dynamic Client Registration (RFC 7591), allowing AI clients to automatically register without manual configuration.

Available Tools

ToolDescriptionAuth
search_companiesSearch companies by name or codeAPI Key
get_companyGet company details by registration codeAPI Key
get_company_financialsGet company financial reportsAPI Key
get_company_sodraGet SODRA data (employees, wages)API Key
get_rankingsGet top companies by metricPublic
get_industry_statsGet statistics by industry (EVRK)Public
search_addressesSearch addresses by queryAPI Key
normalize_addressParse and normalize address stringAPI Key

Specification

Search Companies#

GET/companies/search

Search for companies by name or code. Supports both Lithuanian and Estonian companies.

Parameters

ParameterTypeDescription
qstringSearch text (name or code)
limitnumberNumber of results (max: 100, default: 20)
offsetnumberSkip results (default: 0)
countrystringCountry: "lt" (Lithuania) or "ee" (Estonia). Default depends on domain.

Example

# Search Lithuanian companies (default on api.jars.lt)
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/search?q=Maxima&limit=5"

# Search Estonian companies
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/search?q=Bolt&country=ee"

# Estonian search via api.jars.ee (country=ee by default)
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.ee/api/v1/companies/search?q=Bolt"

Response

{
  "results": [
    {
      "code": "123456789",
      "name": "UAB Pavyzdys",
      "address": "Gedimino pr. 1, Vilnius",
      "legalForm": "UAB",
      "status": "ACTIVE",
      "registrationDate": "2020-01-15T00:00:00.000Z"
    }
  ],
  "total": 1,
  "limit": 5,
  "offset": 0
}

Get Company by Code#

GET/companies/:code

Get detailed information about a company by registration code. Supports Lithuanian and Estonian companies.

Parameters

ParameterTypeDescription
codestringCompany registration code
countrystringCountry: "lt" (Lithuania) or "ee" (Estonia). Default depends on domain.

Example

# Lithuanian company
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/111111111"

# Estonian company
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/14532901?country=ee"

# Estonian company via api.jars.ee (country=ee by default)
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.ee/api/v1/companies/14532901"

Response

{
  "code": "123456789",
  "name": "UAB Pavyzdys",
  "address": "Gedimino pr. 1, Vilnius",
  "legalForm": "UAB",
  "status": "ACTIVE",
  "registrationDate": "2020-01-15T00:00:00.000Z",
  "capital": 10000,
  "currency": "EUR",
  "pvmCode": "LT123456789",
  "pvmRegistered": true
}

Get Company Financials#

GET/companies/:code/financials

Get company financial reports (balance sheet and P&L) by year. Supports Lithuanian and Estonian companies.

Parameters

ParameterTypeDescription
codestringCompany registration code
yearnumberYear (optional, if not specified - returns all years)
limitnumberNumber of results (default: 10, max: 50)
countrystringCountry: "lt" (Lithuania) or "ee" (Estonia). Default depends on domain.

Example

# Lithuanian company financials
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/123456789/financials"

# Get specific year
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/123456789/financials?year=2024"

# Estonian company financials
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/companies/14532901/financials?country=ee"

# Estonian company via api.jars.ee
curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.ee/api/v1/companies/14532901/financials"

Response

Returns financial data: equity, assets, liabilities, revenue, and profit.

{
  "companyCode": "123456789",
  "companyName": "UAB Pavyzdys",
  "financials": [
    {
      "companyCode": "123456789",
      "year": 2024,
      "periodStart": "2024-01-01T00:00:00.000Z",
      "periodEnd": "2024-12-31T00:00:00.000Z",
      "balance": {
        "equity": 150000,
        "longTermAssets": 80000,
        "shortTermAssets": 120000,
        "liabilities": 50000,
        "totalAssets": 200000
      },
      "profitLoss": {
        "revenue": 500000,
        "profitBeforeTax": 75000,
        "netProfit": 60000
      }
    }
  ],
  "availableYears": [2024, 2023, 2022]
}

Search Addresses#

GET/addresses/search

Search for streets, settlements, and municipalities. Supports multi-word search (e.g., "kaunas basanavi" or "vilnius centro").

Parameters

ParameterTypeDescription
qstringSearch text (street, settlement, or municipality name)
limitnumberNumber of results (max: 100, default: 20)
offsetnumberSkip results (default: 0)

Example

curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/addresses/search?q=kaunas+basanavi&limit=5"

Response

Results are grouped by type: streets, settlements, municipalities. Each group includes relevant location data.

{
  "streets": [
    {
      "code": 1231645,
      "name": "J. Basanavičiaus",
      "typeAbbr": "al.",
      "settlementId": "58437361-d62a-4714-9b74-f07ae0b9d66b",
      "buildings": [
        { "number": "3", "postalCode": "LT-50282" },
        { "number": "4", "postalCode": "LT-50290" }
      ],
      "settlement": {
        "name": "Kaunas",
        "typeAbbr": "m."
      }
    }
  ],
  "settlements": [],
  "municipalities": [],
  "total": 1,
  "limit": 5,
  "offset": 0
}

Normalize Address#

POST/addresses/normalize

Convert an arbitrary address string (with possible typos) to structured address components. Uses fuzzy matching to handle spelling errors.

Request Body

ParameterTypeDescription
addressstringAddress string to normalize (e.g., "gedimno pr 28 vilnus")
limitnumberMaximum results to return (default: 5, max: 20)

Example

curl -X POST -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"address": "gedimno pr 28 vilnus", "limit": 3}' \
  https://api.jars.lt/api/v1/addresses/normalize

Response

Returns matching addresses with confidence scores. Higher confidence indicates better match.

{
  "results": [
    {
      "confidence": 0.87,
      "formatted": "Gedimino pr. 28, Vilnius, Vilniaus m. sav., LT-01104",
      "components": {
        "street": { "code": 105641, "name": "Gedimino", "type": "prospektas", "typeAbbr": "pr." },
        "building": { "number": "28", "postalCode": "LT-01104" },
        "settlement": { "code": 101580, "name": "Vilnius", "type": "miestas", "typeAbbr": "m." },
        "municipality": { "code": 58, "name": "Vilniaus m.", "typeAbbr": "sav." },
        "county": { "code": 9, "name": "Vilniaus" },
        "postalCode": "LT-01104"
      }
    }
  ],
  "query": "gedimno pr 28 vilnus",
  "parsed": {
    "tokens": ["gedimno", "vilnus"],
    "building": "28",
    "streetType": "pr."
  }
}

Get Location by Postal Code#

GET/addresses/postal/:code

Get county, municipality, settlement, and streets by postal code. Supports 5-digit format (e.g., "54306" or "LT-54306").

Parameters

ParameterTypeDescription
codestringPostal code (5 digits, with or without "LT-" prefix)

Example

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/addresses/postal/54306

Response

Returns all streets with this postal code, along with settlement, municipality, and county information.

{
  "postalCode": "LT-54306",
  "streets": [
    {
      "code": 1873961,
      "name": "Viesulo",
      "type": "gatvė",
      "typeAbbr": "g."
    }
  ],
  "settlement": {
    "code": 88888,
    "name": "Kaunas",
    "type": "miestas",
    "typeAbbr": "m."
  },
  "municipality": {
    "code": 15,
    "name": "Kauno m."
  },
  "county": {
    "code": 4,
    "name": "Kauno"
  }
}

Check Workday#

GET/workdays/check

Check if a specific date is a workday in Lithuania. Returns information about weekends and Lithuanian public holidays.

Parameters

ParameterTypeDescription
datestringDate in YYYY-MM-DD format

Example

curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/workdays/check?date=2024-12-25"

Response

{
  "date": "2024-12-25",
  "dayOfWeek": "Wednesday",
  "isWorkday": false,
  "isWeekend": false,
  "isHoliday": true,
  "holidayName": "Kalėdos",
  "holidayNameEn": "Christmas Day"
}

Add Workdays#

GET/workdays/add

Add a number of workdays to a given date, skipping weekends and Lithuanian public holidays. Supports negative values to subtract workdays.

Parameters

ParameterTypeDescription
datestringStart date in YYYY-MM-DD format
daysnumberNumber of workdays to add (can be negative)

Example

curl -H "x-api-key: your_api_key_here" \
  "https://api.jars.lt/api/v1/workdays/add?date=2024-12-20&days=5"

Response

{
  "startDate": "2024-12-20",
  "workdaysAdded": 5,
  "resultDate": "2024-12-30",
  "resultIsWorkday": true,
  "skippedDays": [
    { "date": "2024-12-21", "reason": "weekend" },
    { "date": "2024-12-22", "reason": "weekend" },
    { "date": "2024-12-25", "reason": "holiday", "holidayName": "Kalėdos" },
    { "date": "2024-12-26", "reason": "holiday", "holidayName": "Antra Kalėdų diena" },
    { "date": "2024-12-28", "reason": "weekend" },
    { "date": "2024-12-29", "reason": "weekend" }
  ]
}

Get Inflation Data#

GET/statistics/inflation

Get pre-aggregated inflation and economic indicators for Lithuania: HICP (consumer prices), PPI (producer prices), unemployment rate, and price changes by category. Data sourced from Eurostat. No authentication required.

Parameters

ParameterTypeDescription
fromnumberFilter from year (optional, e.g. 2020)
tonumberFilter to year (optional, e.g. 2024)

Example

curl https://api.jars.lt/api/v1/statistics/inflation?from=2020

Response

Returns HICP monthly index/rates, annual averages, category breakdowns (food, energy, transport, housing), PPI, and unemployment. All HICP values use 2015=100 base.

{
  "hicp": {
    "monthly": [
      { "date": "2020-01", "year": 2020, "month": 1, "index": 107.4, "yoy": 2.3, "mom": -0.5 }
    ],
    "annual": [
      { "year": 2020, "avgIndex": 108.4, "avgRate": 1.1 }
    ]
  },
  "categories": {
    "latest": {
      "date": "2025-12",
      "items": {
        "total": { "index": 131.2, "yoy": 2.1, "name": "All items" },
        "food": { "index": 139.8, "yoy": 1.5, "name": "Food and non-alcoholic beverages" }
      }
    },
    "timeSeries": [
      { "date": "2020-01", "total": 2.3, "food": 3.1, "energy": -1.2, "transport": 0.5, "housing": 1.8 }
    ]
  },
  "ppi": {
    "monthly": [{ "date": "2020-01", "index": 98.2, "yoy": -2.1 }]
  },
  "unemployment": {
    "monthly": [{ "date": "2020-01", "rate": 6.4 }]
  },
  "meta": {
    "lastUpdate": "2025-12-15T10:00:00Z",
    "latestDataPoint": "2025-12",
    "source": "Eurostat",
    "availableYears": [1996, 1997, "...", 2025]
  }
}

Get Usage Statistics#

GET/usage

Get your API key statistics and remaining quota.

Example

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/usage

Response

rateLimit indicates maximum requests per second.

{
  "dataDelay": 0,
  "limit": 50000,
  "plan": "PROFESSIONAL",
  "rateLimit": 300,
  "remaining": 49997,
  "requestCount": 3,
  "resetDate": "2025-11-10T14:20:13.260Z",
  "webhooksEnabled": true
}

List Invoices#

GET/api/v1/invoices

Get a list of all your subscription invoices. Includes payment status, amounts, and links to PDF/UBL formats.

Invoice API requests do not count towards your monthly quota.

Example

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/invoices

Response

{
  "invoices": [
    {
      "stripeInvoiceId": "in_1abc...",
      "number": "INV-0091",
      "status": "paid",
      "currency": "EUR",
      "subtotal": 500,
      "tax": 105,
      "total": 605,
      "created": "2026-02-12T07:46:18.000Z",
      "paidAt": "2026-02-12T07:46:21.000Z",
      "customerName": "UAB Example",
      "customerEmail": "info@example.lt",
      "customerTaxId": "LT123456789",
      "stripeHostedInvoiceUrl": "https://invoice.stripe.com/...",
      "stripeInvoicePdfUrl": "https://pay.stripe.com/.../pdf"
    }
  ],
  "count": 1
}

Get Invoice#

GET/api/v1/invoices/:invoiceId

Get detailed information about a specific invoice by its Stripe invoice ID.

Example

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/invoices/in_1abc123

Download Invoice (UBL)#

GET/api/v1/invoices/:invoiceId/ubl

Download invoice in UBL 2.1 XML format, compliant with Peppol BIS Billing 3.0 standard.

Peppol BIS Billing 3.0

UBL invoices are compliant with the European e-invoicing standard EN 16931 and can be used for automated invoice processing in accounting systems.

Example

curl -H "x-api-key: your_api_key_here" \
  https://api.jars.lt/api/v1/invoices/in_1abc123/ubl

Response

Returns XML document with Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>INV-0091</cbc:ID>
  <cbc:IssueDate>2026-02-12</cbc:IssueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>...</cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>...</cac:AccountingCustomerParty>
  <cac:TaxTotal>...</cac:TaxTotal>
  <cac:LegalMonetaryTotal>...</cac:LegalMonetaryTotal>
  <cac:InvoiceLine>...</cac:InvoiceLine>
</Invoice>

Rate Limits#

API request limits depend on your plan:

  • Free: 100 requests per month
  • Starter: 5,000 requests per month
  • Professional: 50,000 requests per month
  • Enterprise: 1,000,000 requests per month

When exceeding the limit, you will receive 429 Too Many Requests response.

Error Codes#

CodeDescription
400Invalid parameters
401Invalid API key
404Company not found
429Request limit exceeded
500Server error

Need Help?#

If you have questions or need help integrating the API, contact us:

Contact →
API Documentation | JARS.LT