Central Bank of Türkiye (TCMB) API
Free Central Bank of Türkiye exchange rate feed with no key: official lira buying and selling rates, forex and banknote, for any working day back to 1996.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Central Bank of Türkiye (TCMB) API?
The Central Bank of the Republic of Türkiye publishes its daily exchange rate bulletin as free XML with no key. Each currency carries four rates — forex buying and selling, banknote buying and selling — plus cross rates against the US dollar.
TCMB is one of the few central banks that separates forex rates from banknote rates in the same bulletin, and the distinction is real money. `ForexBuying` and `ForexSelling` apply to transfers and account transactions; `BanknoteBuying` and `BanknoteSelling` apply to physical cash and are always slightly worse. Picking the wrong pair will not error, it will just give you a number that does not match the transaction being reconciled.
URLs are date-addressed rather than parameterised: the file for 20 August 2026 lives at `/kurlar/202608/20082026.xml`. Note the month directory is `YYYYMM` while the filename is `DDMMYYYY` — the same date in two different orders, in one path. There is no file at all on weekends and Turkish public holidays, so a scheduled job must handle 404 as a normal outcome and step back to the previous working day.
Quick facts
- Base URL
https://www.tcmb.gov.tr/kurlar- Authentication
- No key or registration. The bulletin is a public TCMB publication.
- Rate limit
- No documented limit. One bulletin is published per working day at around 15:30 Istanbul time.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Central Bank of Türkiye (TCMB) 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. Official TRY exchange rate bulletin for 20 August 2026
GET https://www.tcmb.gov.tr/kurlar/202608/20082026.xml
curl 'https://www.tcmb.gov.tr/kurlar/202608/20082026.xml'const res = await fetch("https://www.tcmb.gov.tr/kurlar/202608/20082026.xml");
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.tcmb.gov.tr/kurlar/202608/20082026.xml", timeout=20)
res.raise_for_status()
print(res.json())<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="isokur.xsl"?>
<Tarih_Date Tarih="20.08.2026" Date="08/20/2026" Bulten_No="2026/155" >
<Currency CrossOrder="0" Kod="USD" CurrencyCode="USD">
<Unit>1</Unit>
<Isim>ABD DOLARI</Isim>
<CurrencyName>US DOLLAR</CurrencyName>
<ForexBuying>47.8642</ForexBuying>
<ForexSelling>47.9504</ForexSelling>
<BParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
YYYYMM | path segment | Required | Year and month directory for the bulletin. 202608 |
DDMMYYYY.xml | path segment | Required | Filename for the specific day — note the reversed component order compared with the directory. 20082026.xml |
today.xml | path segment | Optional | `/kurlar/today.xml` always serves the most recent bulletin without date arithmetic. today.xml |
Response fields
Tarih_Date@Tarih / @Dateattribute- Bulletin date in Turkish `DD.MM.YYYY` and US `MM/DD/YYYY` formats respectively.
Tarih_Date@Bulten_Noattribute- Sequential bulletin number within the year.
Currency@CurrencyCodeattribute- ISO 4217 code.
Currency/Unitelement- Units the rate applies to — 1 for most currencies, 100 for JPY and a few others.
Currency/ForexBuying / ForexSellingelement- Rates for transfers and account transactions, in lira per `Unit`.
Currency/BanknoteBuying / BanknoteSellingelement- Rates for physical cash, which are always slightly wider than the forex pair.
Currency/CrossRateUSD / CrossRateOtherelement- Cross rate against the US dollar, populated on one side or the other depending on the currency.
What you can build with the Central Bank of Türkiye (TCMB) API
- Convert lira amounts using the official rate for a specific transaction date
- Distinguish transfer rates from cash rates when reconciling travel expenses
- Backfill a Turkish lira history by walking working days back through the archive
- Cross-check a bank's applied rate against the published bulletin
Common errors and how to fix them
404
No bulletin exists for that date.
Fix: Weekends and Turkish public holidays are skipped entirely. Catch the 404 and step back a day, or use `/kurlar/today.xml`.
Empty rate elements
Some currencies have no banknote quote.
Fix: Banknote fields can be blank for currencies TCMB does not deal in physically. Fall back to the forex rate and label it clearly.
Rate off by 100x
`Unit` was ignored.
Fix: The Japanese yen and several others are quoted per 100 units. Divide by the `Unit` element.
Central Bank of Türkiye (TCMB) API — frequently asked questions
Is the TCMB exchange rate data free to use?
Yes. The daily bulletin is published as open XML with no key, no registration and no documented rate limit.
What is the difference between forex and banknote rates?
Forex rates apply to transfers and account transactions; banknote rates apply to physical cash and carry a slightly wider spread. Reconciling a card transaction against a banknote rate will produce a small persistent discrepancy.
How do I get the latest rates without knowing the date?
Request `/kurlar/today.xml`, which always serves the most recent published bulletin. That avoids having to model Turkish public holidays in your own code.
How far back does the archive go?
Daily bulletins are available from 1996 onwards, one file per working day, all at the same date-addressed URL pattern. Because there is no index endpoint, backfilling means walking working days yourself and treating 404 as a normal skip rather than a failure.
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.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
Alternatives to Central Bank of Türkiye (TCMB) API
If Central Bank of Türkiye (TCMB) 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 |
| US Treasury Yield Curve | Free US Treasury daily yield curve feed with no key: par yields for every maturity from 1 month to 30 years, one XML document per month. Tested example and live response. | No key | Yes | 21 Aug 2026 |
| UK Trade Tariff | Free UK Trade Tariff API with no key: look up any commodity code for duty rates, import measures, VAT treatment, quotas and the full goods nomenclature tree. Tested example. | No key | Yes | 21 Aug 2026 |
Central Bank of Türkiye (TCMB) 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.