BYTETOOLS

Bank of Lithuania FX Rates API

Free Bank of Lithuania FX rates web service with no key: official euro reference rates for every quoted currency as XML, current or for any past date.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Bank of Lithuania FX Rates API?

The Bank of Lithuania exposes its official euro reference rates through a free XML web service with no key. Each rate arrives as a pair of currency-and-amount blocks, expressing how much of a currency equals one euro.

The response shape here is genuinely unusual and worth understanding before you write a parser. Instead of a rate attribute, each `FxRate` element contains two `CcyAmt` blocks: the first is always `EUR` with amount `1`, the second is the quoted currency with the equivalent amount. The rate is the second amount divided by the first — which sounds pedantic until you meet a series where the base amount is not 1.

Two rate types share the endpoint and the `tp` parameter selects between them. `EU` returns the euro foreign exchange reference rates that originate with the ECB, while `LT` returns the Bank of Lithuania's own accounting rates for currencies the ECB does not quote. They overlap in name but not in coverage, so choose according to which currency you actually need rather than which returns data first.

Quick facts

Base URL
https://www.lb.lt/webservices/FxRates
Authentication
No key or registration. The service is published by the Bank of Lithuania as open data.
Rate limit
No documented limit. Reference rates are published once per working day.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Bank of Lithuania FX Rates API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Current euro reference rates for every quoted currency

GET https://www.lb.lt/webservices/FxRates/FxRates.asmx/getCurrentFxRates?tp=EU

curl
curl 'https://www.lb.lt/webservices/FxRates/FxRates.asmx/getCurrentFxRates?tp=EU'
JavaScript (fetch)
const res = await fetch("https://www.lb.lt/webservices/FxRates/FxRates.asmx/getCurrentFxRates?tp=EU");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.lb.lt/webservices/FxRates/FxRates.asmx/getCurrentFxRates?tp=EU", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
<?xml version="1.0" encoding="utf-8"?>
<FxRates xmlns="http://www.lb.lt/WebServices/FxRates">
  <FxRate>
    <Tp>EU</Tp>
    <Dt>2026-08-20</Dt>
    <CcyAmt>
      <Ccy>EUR</Ccy>
      <Amt>1</Amt>
    </CcyAmt>
    <CcyAmt>
      <Ccy>AUD</Ccy>
      <Amt>1.6438</Amt>
    </CcyAmt>
  </FxRate>
  <FxRate>
    <Tp>EU</Tp>
    <Dt>2026-08-20</Dt>
    <CcyAmt>
      <Ccy>EUR</Ccy>

Parameters

ParameterTypeRequiredDescription
tpqueryRequiredRate type: `EU` for euro foreign exchange reference rates, `LT` for the bank's own accounting rates. EU
dtqueryOptionalDate in `YYYY-MM-DD` on the `getFxRates` operation, for a historical list. 2026-08-20
ccyqueryOptionalISO 4217 code on the single-currency operations. USD

Response fields

FxRate/Tpelement
Echo of the rate type you requested.
FxRate/Dtelement
Date the rate applies to, ISO formatted.
FxRate/CcyAmt[1]element
Base side of the quote — `EUR` with an `Amt` of 1.
FxRate/CcyAmt[2]element
Quoted side — the ISO code and the amount equal to the base. This amount divided by the base amount is the rate.

What you can build with the Bank of Lithuania FX Rates API

  • Convert euro amounts for Lithuanian accounting and VAT reporting
  • Fetch a historical euro reference rate for a specific booking date
  • Cover currencies the ECB does not publish by switching `tp` to `LT`
  • Feed a nightly rates table from an official euro-area source

Common errors and how to fix them

Empty FxRates element

No publication for the requested date, or a `tp` value with no data for it.

Fix: Weekends and Lithuanian public holidays have no rates. Fall back to the previous working day.

Parser finds no rate attribute

The rate is not an attribute — it is the second `CcyAmt/Amt` element.

Fix: Read both `CcyAmt` blocks and divide the quoted amount by the base amount rather than looking for a single field.

SOAP fault

A `.asmx` operation was called with a missing required parameter.

Fix: Every operation needs its parameters even when they look optional; `tp` in particular is always required.

Bank of Lithuania FX Rates API — frequently asked questions

Is the Bank of Lithuania FX rates service free?

Yes. The web service needs no key or account and serves both the current list and historical dates. Responses are XML.

What is the difference between the EU and LT rate types?

`EU` returns the euro foreign exchange reference rates that come from the ECB. `LT` returns the Bank of Lithuania's own accounting rates, which cover additional currencies the ECB does not quote.

Why does each rate have two currency blocks?

The service expresses a quote as a pair: a base amount in euro and an equivalent amount in the quoted currency. Divide the second amount by the first to get the rate, rather than assuming the base is always 1.

Is there a JSON endpoint?

No, the service is a classic ASMX web service returning XML. Convert once at your boundary and cache — the rates only change on working days.

Tools that pair with this API

Bank of Lithuania FX Rates is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.