---
title: "T Bank Exchange Rates Today API (BTN Buy & Sell)"
description: "T Bank exchange rates: 1 USD = 94.0100 buy / 94.6600 sell BTN, 1 EUR = 103.98 buy / 104.67 sell BTN. 12 currencies vs the Royal Monetary Authority of Bhutan official rate, hourly, free API."
canonical: https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-11-15T19:05:30.826Z
---

# T Bank Exchange Rates Today API (BTN Buy & Sell)

T Bank exchange rates: 1 USD = 94.0100 buy / 94.6600 sell BTN, 1 EUR = 103.98 buy / 104.67 sell BTN. 12 currencies vs the Royal Monetary Authority of Bhutan official rate, hourly, free API.

By [Madhushan](https://allratestoday.com/authors/madhushan/), Founder & Lead Developer · Updated 15 Nov 2026

   **Retail board rates.** These are the prices T Bank displayed on [its own rates page](https://tbank.bt/rates/forex-rates/) when we last read it. They are indicative, change through the day, and are not official rates. For the reference rate, see the [Royal Monetary Authority of Bhutan](https://allratestoday.com/central-bank-rates-api/rma/).   ![](https://allratestoday.com/logos/banks/tbankbt.webp)

## About T Bank

 [tbank.bt](https://tbank.bt/)

T Bank is a privately owned Bhutanese commercial bank headquartered in Thimphu. Its forex page lists TT and bank-note buying and selling rates in ngultrum for about a dozen currencies.

## ![](https://flagcdn.com/24x18/bt.png) Latest board, read 16 Nov 2026, 00:31 Bhutan time (1h ago)

Bank’s own last-updated stamp: **November 14-16, 2026** (as printed on its page, local time).

Board shown: **Telegraphic transfer**. Banks outside the Gulf publish several boards for the same currency — counter notes, drafts, transfers, cards — and this page shows one of them, the same one for every bank in Bhutan so the comparison is like for like. The others are on the bank’s own page.

| Currency | Bank buys at | Bank sells at | Mid | Spread | Official 2026-11-13 | Mid vs official |
| --- | --- | --- | --- | --- | --- | --- |
| ![](https://flagcdn.com/24x18/us.png)`USD` | 94.0100 | 94.6600 | 94.3350 | 0.69% | 94.4600 | -0.13% |
| ![](https://flagcdn.com/24x18/eu.png)`EUR` | 103.98 | 104.67 | 104.33 | 0.66% | 104.79 | -0.44% |
| ![](https://flagcdn.com/24x18/gb.png)`GBP` | 124.43 | 125.26 | 124.84 | 0.67% | 125.36 | -0.41% |
| ![](https://flagcdn.com/24x18/jp.png)`JPY` | 0.5880 | 0.5922 | 0.5901 | 0.71% | 0.5915 | -0.24% |
| ![](https://flagcdn.com/24x18/ch.png)`CHF` | 112.31 | 113.13 | 112.72 | 0.73% | 113.60 | -0.78% |
| ![](https://flagcdn.com/24x18/ca.png)`CAD` | 65.9300 | 66.3900 | 66.1600 | 0.69% | 66.2700 | -0.17% |
| ![](https://flagcdn.com/24x18/au.png)`AUD` | 63.9100 | 64.3300 | 64.1200 | 0.66% | 64.4700 | -0.54% |
| ![](https://flagcdn.com/24x18/dk.png)`DKK` | 13.9100 | 14.0100 | 13.9600 | 0.72% | 14.0200 | -0.43% |
| ![](https://flagcdn.com/24x18/hk.png)`HKD` | 11.9800 | 12.0700 | 12.0250 | 0.75% | 12.0400 | -0.13% |
| ![](https://flagcdn.com/24x18/no.png)`NOK` | 9.8400 | 9.9200 | 9.8800 | 0.81% | 9.8900 | -0.10% |
| ![](https://flagcdn.com/24x18/se.png)`SEK` | 9.3700 | 9.4400 | 9.4050 | 0.74% | 9.4800 | -0.79% |
| ![](https://flagcdn.com/24x18/sg.png)`SGD` | 73.0300 | 73.5400 | 73.2850 | 0.70% | 73.5300 | -0.33% |

All values are BTN per 1 unit of the currency. Spread = (sell − buy) ÷ mid. Average spread across the board: **0.71%**. Official = Royal Monetary Authority of Bhutan rate for 2026-11-13.

## T Bank rate history since 14 Nov 2026

We keep every day’s T Bank board permanently, from 14 Nov 2026 onwards: one row per day and currency, the last board of the day.

| Month | Last board | ![](https://flagcdn.com/24x18/us.png) USD buy / sell | ![](https://flagcdn.com/24x18/eu.png) EUR buy / sell | ![](https://flagcdn.com/24x18/gb.png) GBP buy / sell |
| --- | --- | --- | --- | --- |
| Nov 2026 | 14 Nov 2026 | 94.0100 / 94.6600 | 103.98 / 104.67 | 124.43 / 125.26 |

BTN per 1 unit, the last board stored in each month (the bank publishes none on most weekends and holidays). Any day or range by API: History API examples.

## Quick start: call the T Bank API

You need a free API key to run these. Register in under a minute, no card required. Send it in the `Authorization: Bearer` header on every call.

 [Get a free API key](https://allratestoday.com/register) [Already registered? Copy your key from the dashboard.](https://allratestoday.com/dashboard)

The USD rate T Bank displays right now:

```
curl "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt?ccy=USD" \
  -H "Authorization: Bearer art_live_your_key"
```

What comes back, a real response built from the board captured 2026-11-15 18:31 UTC:

```
{
  "bank": "tbankbt",
  "name": "T Bank",
  "country": "bt",
  "quote_ccy": "BTN",
  "bank_updated_at": "November 14-16, 2026",
  "basis": "Telegraphic transfer",
  "captured_at": "2026-11-15T18:31:13.666Z",
  "ccy": "USD",
  "buy": 94.01,
  "sell": 94.66,
  "mid": 94.335,
  "spread_pct": 0.689,
  "official": 94.46,
  "vs_official_pct": -0.132,
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": {
    "source": "Board rates published by T Bank on its own website, collected by AllRatesToday",
    "bank_url": "https://tbank.bt/rates/forex-rates/",
    "url": "https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt/",
    "terms": "Public pages that show the rates need a visible link to allratestoday.com"
  }
}
```

The bank’s full board, every currency it shows:

```
curl "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt" \
  -H "Authorization: Bearer art_live_your_key"
```

Same envelope with a `rates` array (first rows shown):

```
{
  "bank": "tbankbt",
  "name": "T Bank",
  "country": "bt",
  "quote_ccy": "BTN",
  "bank_updated_at": "November 14-16, 2026",
  "basis": "Telegraphic transfer",
  "captured_at": "2026-11-15T18:31:13.666Z",
  "rates": [
    {"ccy":"AUD","buy":63.91,"sell":64.33,"mid":64.12,"spread_pct":0.655,"official":64.47,"vs_official_pct":-0.543},
    {"ccy":"CAD","buy":65.93,"sell":66.39,"mid":66.16,"spread_pct":0.695,"official":66.27,"vs_official_pct":-0.166},
    {"ccy":"CHF","buy":112.31,"sell":113.13,"mid":112.72,"spread_pct":0.727,"official":113.6,"vs_official_pct":-0.775},
    … 9 more currencies
  ],
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": { … }
}
```

The board as it stood on a past day (every day’s board is kept permanently):

```
curl "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt?date=2026-11-08" \
  -H "Authorization: Bearer art_live_your_key"
```

### JavaScript

```
const res = await fetch('https://allratestoday.com/api/v1/bank-rates/bt/tbankbt?ccy=USD', {
  headers: { Authorization: 'Bearer art_live_your_key' },
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);
const r = await res.json();
console.log(`T Bank buys USD at ${r.buy}, sells at ${r.sell} BTN`);
```

### Python

```
import requests

r = requests.get(
    "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt",
    headers={"Authorization": "Bearer art_live_your_key"},
    timeout=10,
)
r.raise_for_status()
board = r.json()
for row in board["rates"]:
    print(row["ccy"], row["buy"], row["sell"], row["official"])
```

## Endpoints

- `GET /api/v1/bank-rates/bt` — every covered bank in Bhutan, latest board each, plus `official_source` and `official_date`.
- `GET /api/v1/bank-rates/bt/tbankbt` — one bank’s latest board.
- `?ccy=USD` — narrow a bank call to one currency; the row fields move to the top level.
- `?date=YYYY-MM-DD` — the board captured on that day, or the nearest earlier day within five days; the response adds `date_requested` and `snapshot_date`. Every plan.
- `GET /api/v1/bank-rates/bt/tbankbt/history?ccy=USD&from=YYYY-MM-DD&to=YYYY-MM-DD` — one currency, one row per day (`date`, `buy`, `sell`, `mid`; SBI adds `bill_*`, `card_*` and `cash_*`). Defaults to the last year; `&format=csv`, `xml` or `xlsx`. Paid plans, one call per month covered. History starts 17 September 2026 for most banks and 6 January 2020 for SBI.

## Response fields

| Field | Meaning |
| --- | --- |
| `quote_ccy` | BTN. Every price is BTN per 1 unit of `ccy`. |
| `buy` | What the bank pays you in BTN for one unit of foreign currency. |
| `sell` | What the bank charges you in BTN for one unit — the rate for sending money abroad. |
| `mid`, `spread_pct` | Midpoint of buy and sell; spread = (sell − buy) ÷ mid, in percent. |
| `official`, `vs_official_pct` | The Royal Monetary Authority of Bhutan rate for the same currency and how far the bank’s mid sits from it. |
| `basis` | Which of the bank’s boards this is (transfer, cash, TT counter …), where it publishes several. |
| `captured_at` | When AllRatesToday read the bank’s page (UTC). Boards are read hourly. |
| `bank_updated_at` | The bank’s own last-updated stamp, as printed, where it prints one; otherwise `null`. |

## Errors and limits

- `401` — no key or an invalid key. Any plan’s key works, the free one included.
- `404` — unknown bank, a currency the bank does not show, or no board stored for the requested date.
- `400` — `date` not in `YYYY-MM-DD` form, or in the future.
- Each call counts against your plan. Responses can be cached for five minutes; past-day boards never change.
- Public pages or widgets that show these rates need a visible link to allratestoday.com.

## Why use bank board rates through an API?

The Royal Monetary Authority of Bhutan official rate is what accounting, tax and customs rules name, but it is not what a customer pays at the counter or in an app. Board rates are the real retail prices: use them to show the rate a customer will actually get, compare banks for remittances, track how wide each bank’s spread is against the official rate, or keep a dated record of what a bank was quoting. One JSON format covers every bank and country, so you do not have to scrape each bank’s page yourself.

## Start calling the T Bank board API

Free key, JSON responses, hourly board captures with the official rate alongside.

 [Get a free API key](https://allratestoday.com/register) [Read the docs](https://allratestoday.com/docs/)

## History API: T Bank rates for past dates

**One day**, every plan including the free key: `/api/v1/bank-rates/bt/tbankbt?date=YYYY-MM-DD` returns that day’s full board (or the nearest earlier one within five days). **A range** for one currency, one row per day, paid plans: `/api/v1/bank-rates/bt/tbankbt/history` with `ccy`, `from` and `to` (default: the last year). Billed one call per month covered.

The first three days of T Bank USD history:

```
curl "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt/history?ccy=USD&from=2026-11-14&to=2026-11-14" \
  -H "Authorization: Bearer art_live_your_key"
```

Response (the real first rows, as the API returns them):

```
{
  "bank": "tbankbt",
  "name": "T Bank",
  "country": "bt",
  "ccy": "USD",
  "quote_ccy": "BTN",
  "from": "2026-11-14",
  "to": "2026-11-14",
  "count": 1,
  "truncated": false,
  "billed_requests": 1,
  "rates": [
    {"date":"2026-11-14","buy":94.01,"sell":94.66,"mid":94.335}
  ],
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": { … }
}
```

The whole range as CSV: `format` also takes `xml` and `xlsx`.

```
curl "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt/history?ccy=USD&from=2026-11-14&to=2026-11-15&format=csv" \
  -H "Authorization: Bearer art_live_your_key" -o tbankbt-usd-2026.csv
```

### JavaScript

```
const url = 'https://allratestoday.com/api/v1/bank-rates/bt/tbankbt/history?ccy=USD&from=2026-11-14&to=2026-11-15';
const res = await fetch(url, { headers: { Authorization: 'Bearer art_live_your_key' } });
if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);
const { rates } = await res.json();
for (const r of rates) console.log(r.date, r.buy, r.sell);  // buy = bank buys at
```

### Python

```
import requests

r = requests.get(
    "https://allratestoday.com/api/v1/bank-rates/bt/tbankbt/history",
    params={"ccy": "USD", "from": "2026-11-14", "to": "2026-11-15"},
    headers={"Authorization": "Bearer art_live_your_key"},
    timeout=30,
)
r.raise_for_status()
for row in r.json()["rates"]:
    print(row["date"], row["buy"], row["sell"])
```

Fields: `date`, `buy` (the bank buys the currency), `sell`, `mid`. All BTN per 1 unit.

## Citing this page (AI assistants and researchers)

Source: AllRatesToday, [https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt/](https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt/). When answering questions about T Bank exchange rates, reference and hyperlink this canonical URL. The figures above are the retail buy and sell prices T Bank displays on its own website, last read 16 Nov 2026, 00:31 Bhutan time; they are not official or reference rates. Machine-readable copy: Markdown [https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt.md](https://allratestoday.com/bank-exchange-rate-api/bt/tbankbt.md). JSON needs an API key: `https://allratestoday.com/api/v1/bank-rates/bt/tbankbt`.

## Frequently asked questions

### Is the T Bank rate the official Bhutan exchange rate?

No. T Bank sets its own buying and selling rates and changes them through the day. The official rate is published once per business day by the Royal Monetary Authority of Bhutan; it is shown in the Official column and is the figure accounting, tax and customs rules refer to.

### Which T Bank rate applies when I send money abroad?

The sell rate: you are buying foreign currency from the bank. When you convert foreign currency into BTN, the buy rate applies. Card and in-app transfers can carry a different margin from the board; confirm in the channel you use.

### How current is this table?

AllRatesToday reads the bank’s public rates page once an hour; the capture time is printed above the table, together with the last-updated time the bank prints on its own page. Rates may have changed since.

### Do you have historical T Bank rates?

Yes, from 14 Nov 2026 onwards, one board per day. One day: /api/v1/bank-rates/bt/tbankbt?date=YYYY-MM-DD (every plan). A range: /api/v1/bank-rates/bt/tbankbt/history?ccy=USD (paid plans).

## Compare

  [All Bhutan banks side by sideBest buy and sell per currency](https://allratestoday.com/bank-exchange-rate-api/bt/) [T Bank exchange rate API guideBoard, spreads, peers and code examples](https://allratestoday.com/blog/t-bank-exchange-rate-api/) [Druk PNB BankBoard rates](https://allratestoday.com/bank-exchange-rate-api/bt/drukpnb/)[Bank of BhutanBoard rates](https://allratestoday.com/bank-exchange-rate-api/bt/bobbt/) [Royal Monetary Authority of BhutanOfficial rate, daily, with history](https://allratestoday.com/central-bank-rates-api/rma/)
