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 2026-08-21
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 2026-08-21, 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.
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 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.