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.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
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 21 Aug 2026, 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 'https://www.lb.lt/webservices/FxRates/FxRates.asmx/getCurrentFxRates?tp=EU'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);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())<?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
| Parameter | Type | Required | Description |
|---|---|---|---|
tp | query | Required | Rate type: `EU` for euro foreign exchange reference rates, `LT` for the bank's own accounting rates. EU |
dt | query | Optional | Date in `YYYY-MM-DD` on the `getFxRates` operation, for a historical list. 2026-08-20 |
ccy | query | Optional | ISO 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
XML to JSON Converter
Convert XML to JSON online. Elements become objects, attributes are prefixed with @, text is preserved, and parse errors are reported clearly — in-browser.
XML Formatter
Format and beautify XML online with proper indentation, or minify it to a single line. Parse errors are reported clearly — free, fast and fully private.
VAT Calculator
Add VAT to a net price or extract VAT from a gross amount. Preset 5%, 10%, 20% and 23% rates plus custom, showing net, VAT and gross values instantly.
Alternatives to Bank of Lithuania FX Rates API
If Bank of Lithuania FX Rates does not fit, these finance & crypto apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| CoinGecko | Free cryptocurrency price API covering 10,000+ coins. Live prices, market cap and volume in any currency, no API key on the public tier. Tested curl example. | No key | Yes | 19 Aug 2026 |
| Binance Public API | Binance public market data API needs no API key: live ticker prices, order books, klines and 24h stats for every trading pair. Tested curl example and response. | No key | Yes | 19 Aug 2026 |
| Coinbase Exchange Rates | Coinbase public exchange rates API with no key: convert any cryptocurrency to 100+ fiat currencies in a single request. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Frankfurter | Free currency exchange rate API with no key, built on European Central Bank data. Latest and historical rates, time series and conversion. Tested curl example. | No key | Yes | 19 Aug 2026 |
| Banco Central do Brasil PTAX | Free Banco Central do Brasil PTAX API with no key: the official BRL/USD buying and selling rate for any date, plus every quoted currency. OData interface, tested example. | No key | Yes | 21 Aug 2026 |
| Banco Central do Brasil SGS | Free Banco Central do Brasil SGS API with no key: Selic rate, IPCA inflation, CDI and thousands of other Brazilian economic time series by series code. Tested example. | No key | Yes | 21 Aug 2026 |
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 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.