---
title: "United Commercial Bank Exchange Rate API: BDT Buy and Sell Rates as JSON"
description: "United Commercial Bank's TT clean buy / TT & OD sell rates for 7 currencies against the Bangladeshi taka, read hourly from the bank's own page and served as JSON with the Bangladesh Bank official rate alongside. REST, JavaScript and Python examples."
canonical: https://allratestoday.com/blog/united-commercial-bank-exchange-rate-api/
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:06:24.535Z
---

United Commercial Bank is one of the largest private commercial banks in Bangladesh, founded in 1983. Its FX rates page embeds a daily rate sheet with TT clean, TT doc and OD buying and TT & OD and BC selling rates for 7 currencies. This guide shows how to read that board as JSON: what the rates mean, how they compare with the Bangladesh Bank official rate and with other banks in Bangladesh, and the calls that return them.

## What the UCB board shows

- **7 currencies against the Bangladeshi taka**: AED, CNY, EUR, GBP, JPY, SAR and USD. Every value is BDT per 1 unit of the foreign currency.
- **The TT clean buy / TT & OD sell pair.** Bangladeshi banks set their own daily taka buying and selling rates within the framework Bangladesh Bank sets, and each treasury issues a daily rate sheet with separate TT, OD/bill and cash-note rates. Bangladesh’s weekend is Friday and Saturday, so the newest sheet on a Friday is Thursday’s. Bangladesh Bank sets the official rate.
- **USD on 15 November 2026**: UCB bought at 123.75 and sold at 125.15 BDT, a spread of 1.13%. The Bangladesh Bank official rate was 124.75, so the bank's mid sat -0.24% from it.
- **The bank's own timestamp.** The page prints a last-updated stamp (`2026-11-15` on the board above), returned as `bank_updated_at` next to our `captured_at`.
- **Every day's board is kept permanently, from 12 November 2026.** Read one past day with `?date=`, or a range for one currency with the `/history` endpoint (paid plans).

## Spreads across the board

On the 15 November 2026 board the tightest spreads were USD (1.13%), AED (1.72%), SAR (1.74%) and the widest JPY (3.95%), EUR (3.25%), GBP (2.97%). Spread is (sell − buy) ÷ mid: what a round trip through the bank costs, before any fees. The API returns it on every row as `spread_pct`, so you can rank currencies or alert when a bank widens its board.

## USD at UCB and other banks in Bangladesh

USD on the 23 boards AllRatesToday reads in Bangladesh, all captured on 15 November 2026 (the Bangladesh Bank official rate was 124.75):

| Bank | Buy | Sell | Spread | Mid vs official |
| --- | --- | --- | --- | --- |
| Dutch-Bangla Bank | 123.75 | 124.95 | 0.96% | -0.32% |
| Standard Chartered Bangladesh | 123.79 | 124.99 | 0.96% | -0.29% |
| Eastern Bank PLC | 123.99 | 124.99 | 0.80% | -0.21% |
| BRAC Bank PLC | 123.99 | 124.99 | 0.80% | -0.21% |
| Prime Bank PLC | 123.79 | 124.99 | 0.96% | -0.29% |
| City Bank PLC | 123.78 | 124.98 | 0.96% | -0.30% |
| AB Bank PLC | 124.2 | 125.2 | 0.80% | -0.04% |
| Pubali Bank PLC | 123.49 | 124.99 | 1.21% | -0.41% |
| Trust Bank | 123.5 | 125.1 | 1.29% | -0.36% |
| Bank Asia | 123.9 | 125.1 | 0.96% | -0.20% |
| Bangladesh Commerce Bank | 122.65 | 123.65 | 0.81% | -1.28% |
| BASIC Bank | 124 | 124.95 | 0.76% | -0.22% |
| **United Commercial Bank** | 123.75 | 125.15 | 1.13% | -0.24% |
| Midland Bank | 123.6 | 124.99 | 1.12% | -0.36% |
| The Premier Bank | 123.95 | 124.95 | 0.80% | -0.24% |
| Standard Islami Bank | 123.75 | 124.75 | 0.81% | -0.40% |
| EXIM Bank Bangladesh | 123.75 | 125 | 1.00% | -0.30% |
| NRB Bank | 123.6 | 125.35 | 1.41% | -0.22% |
| NRBC Bank | 124.02 | 125.12 | 0.88% | -0.14% |
| Mutual Trust Bank | 123.7 | 125.13 | 1.15% | -0.27% |
| Jamuna Bank | 125.5 | 126.5 | 0.79% | +1.00% |
| Mercantile Bank | 125 | 126.5 | 1.19% | +0.80% |
| Shimanto Bank | 123.99 | 124.99 | 0.80% | -0.21% |

UCB had the 18th narrowest USD spread of the 23. One call to `/api/v1/bank-rates/bd` returns every board in the table at once.

## Get the board (REST)

You need an API key; the [free key](https://allratestoday.com/register/) works. The full board:

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

What comes back (the 15 November 2026 board, first three rows):

```
{
  "bank": "ucbbd",
  "name": "United Commercial Bank",
  "country": "bd",
  "quote_ccy": "BDT",
  "bank_updated_at": "2026-11-15",
  "basis": "TT clean buy / TT & OD sell",
  "captured_at": "2026-11-15T09:00:34.348Z",
  "rates": [
    {"ccy":"AED","buy":33.6158,"sell":34.2005,"mid":33.90815,"spread_pct":1.724,"official":null,"vs_official_pct":null},
    {"ccy":"CNY","buy":18.5102,"sell":18.8465,"mid":18.67835,"spread_pct":1.8,"official":null,"vs_official_pct":null},
    {"ccy":"EUR","buy":135.6795,"sell":140.1555,"mid":137.9175,"spread_pct":3.245,"official":138.3602,"vs_official_pct":-0.32},
    … 4 more currencies
  ],
  "disclaimer": "…",
  "attribution": { … }
}
```

One currency, with the row fields at the top level:

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

```
{
  "bank": "ucbbd",
  "name": "United Commercial Bank",
  "country": "bd",
  "quote_ccy": "BDT",
  "bank_updated_at": "2026-11-15",
  "basis": "TT clean buy / TT & OD sell",
  "captured_at": "2026-11-15T09:00:34.348Z",
  "ccy": "USD",
  "buy": 123.75,
  "sell": 125.15,
  "mid": 124.45,
  "spread_pct": 1.125,
  "official": 124.75,
  "vs_official_pct": -0.24,
  "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 United Commercial Bank on its own website, collected by AllRatesToday",
    "bank_url": "https://www.ucb.com.bd/rates/fx-interest-rates/",
    "url": "https://allratestoday.com/bank-exchange-rate-api/bd/ucbbd/",
    "terms": "Public pages that show the rates need a visible link to allratestoday.com"
  }
}
```

The board as it stood on a past day:

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

One currency over a date range, one row per day (paid plans; add `&format=csv`, `xml` or `xlsx` for a file):

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

## JavaScript

```
npm install @allratestoday/sdk
```

```
import { AllRatesToday } from '@allratestoday/sdk';

const client = new AllRatesToday({ apiKey: 'art_live_your_key' });

// United Commercial Bank's USD row
const r = await client.bankRates('bd', { bank: 'ucbbd', ccy: 'USD' });
console.log(`UCB buys USD at ${r.buy}, sells at ${r.sell} BDT`);

// The board as it stood on a past day
const past = await client.bankRates('bd', { bank: 'ucbbd', date: '2026-11-12' });
console.log(past.snapshot_date, past.rates.length);
```

## Python

```
import requests

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

## Board rate or official rate?

The Bangladesh Bank rate is the one tax, accounting and customs rules in Bangladesh name; nobody transacts at it. UCB's board is the price a customer actually gets. The API puts both on every row: `official` is the central bank's rate for the same currency and `vs_official_pct` is how far the bank's mid sits from it. Use the board to show customers a real price, compare banks for a remittance, or keep a dated record of what the bank quoted; use the [Bangladesh Bank endpoint](https://allratestoday.com/central-bank-rates-api/bb/) when a rule asks for the official rate.

## FAQ

### Where do the United Commercial Bank rates come from?

From the bank's own public rates page (https://www.ucb.com.bd/rates/fx-interest-rates/), read hourly. AllRatesToday does not change the numbers: each row is the buy and sell price UCB shows, with the mid, the spread and the Bangladesh Bank rate added.

### Are these the official BDT exchange rates?

No. They are UCB's retail prices for customers. The official rate in Bangladesh is the Bangladesh Bank rate, which the API returns as `official` on each row where the central bank has one, and in full from the central-bank endpoint.

### How often is the UCB board updated?

AllRatesToday reads the page every hour. The bank's own last-updated stamp is returned as `bank_updated_at`, so you can tell a fresh read of an unchanged board from a new board.

### Can I get UCB rates for a past date?

Yes, from 12 November 2026 onward; every day's board is kept permanently. Add `?date=YYYY-MM-DD` for one day: the response is the board captured that day, or the nearest earlier day within five days, with `date_requested` and `snapshot_date` added. For a range, `/history?ccy=USD&from=…&to=…` returns one row per day as JSON, CSV, XML or XLSX on paid plans.

### Do I need an API key?

Yes. Commercial bank boards need an API key; any plan works, the free key included, and each call counts against the plan. Public pages or widgets that show the rates need a visible link to allratestoday.com.

## United Commercial Bank rates, as JSON

Free API key, hourly board captures, the official rate alongside.

 [Get your free API key](https://allratestoday.com/register/)

## Related

- [United Commercial Bank live board rates](https://allratestoday.com/bank-exchange-rate-api/bd/ucbbd/)
- [All banks in Bangladesh side by side](https://allratestoday.com/bank-exchange-rate-api/bd/)
- [Bangladesh Bank official rates API](https://allratestoday.com/central-bank-rates-api/bb/)
- [Dutch-Bangla Bank exchange rate API guide](https://allratestoday.com/blog/dutch-bangla-bank-exchange-rate-api/)
- [Standard Chartered Bangladesh exchange rate API guide](https://allratestoday.com/blog/standard-chartered-bangladesh-exchange-rate-api/)
- [Eastern Bank PLC exchange rate API guide](https://allratestoday.com/blog/eastern-bank-plc-exchange-rate-api/)
- [BRAC Bank PLC exchange rate API guide](https://allratestoday.com/blog/brac-bank-plc-exchange-rate-api/)
- [Prime Bank PLC exchange rate API guide](https://allratestoday.com/blog/prime-bank-plc-exchange-rate-api/)
- [City Bank PLC exchange rate API guide](https://allratestoday.com/blog/city-bank-plc-exchange-rate-api/)
- [AB Bank PLC exchange rate API guide](https://allratestoday.com/blog/ab-bank-plc-exchange-rate-api/)
- [Pubali Bank PLC exchange rate API guide](https://allratestoday.com/blog/pubali-bank-plc-exchange-rate-api/)
- [Trust Bank exchange rate API guide](https://allratestoday.com/blog/trust-bank-exchange-rate-api/)
- [Bank Asia exchange rate API guide](https://allratestoday.com/blog/bank-asia-exchange-rate-api/)
- [Bangladesh Commerce Bank exchange rate API guide](https://allratestoday.com/blog/bangladesh-commerce-bank-exchange-rate-api/)
- [BASIC Bank exchange rate API guide](https://allratestoday.com/blog/basic-bank-exchange-rate-api/)
- [Every bank exchange rate API guide, by country](https://allratestoday.com/blog/bank-exchange-rate-api-guides/)
- [Commercial bank rates API: every bank and country](https://allratestoday.com/bank-exchange-rate-api/)
