---
title: "3 Banka Exchange Rates Today API (RSD Buy & Sell)"
description: "3 Banka exchange rates: 1 EUR = 116.15 buy / 119.09 sell RSD. 1 currencies vs the National Bank of Serbia official rate, hourly, free API."
canonical: https://allratestoday.com/bank-exchange-rate-api/rs/trecabankars/
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:11.487Z
---

# 3 Banka Exchange Rates Today API (RSD Buy & Sell)

3 Banka exchange rates: 1 EUR = 116.15 buy / 119.09 sell RSD. 1 currencies vs the National Bank of Serbia 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 3 Banka displayed on [its own rates page](https://www.3bank.rs/) when we last read it. They are indicative, change through the day, and are not official rates. For the reference rate, see the [National Bank of Serbia](https://allratestoday.com/central-bank-rates-api/nbs/).   ![](https://allratestoday.com/logos/banks/trecabankars.webp)

## About 3 Banka

 [www.3bank.rs](https://www.3bank.rs/)

3 Banka is a Serbian bank based in Novi Sad (formerly Opportunity banka). Its home page lists the euro’s non-cash and cash buy and sell rates in dinars.

## ![](https://flagcdn.com/24x18/rs.png) Latest board, read 15 Nov 2026, 19:31 Serbia time (1h ago)

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

Board shown: **Devize (non-cash) buy / sell**. 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 Serbia 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/eu.png)`EUR` | 116.15 | 119.09 | 117.62 | 2.50% | 117.62 | 0.00% |

All values are RSD per 1 unit of the currency. Spread = (sell − buy) ÷ mid. Average spread across the board: **2.50%**. Official = National Bank of Serbia rate for 2026-11-13.

## 3 Banka rate history since 13 Nov 2026

We keep every day’s 3 Banka board permanently, from 13 Nov 2026 onwards: one row per day and currency, the last board of the day.

| Month | Last board | ![](https://flagcdn.com/24x18/eu.png) EUR buy / sell |
| --- | --- | --- |
| Nov 2026 | 13 Nov 2026 | 116.15 / 119.09 |

RSD 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 3 Banka 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 EUR rate 3 Banka displays right now:

```
curl "https://allratestoday.com/api/v1/bank-rates/rs/trecabankars?ccy=EUR" \
  -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": "trecabankars",
  "name": "3 Banka",
  "country": "rs",
  "quote_ccy": "RSD",
  "bank_updated_at": "2026-11-13",
  "basis": "Devize (non-cash) buy / sell",
  "captured_at": "2026-11-15T18:31:14.744Z",
  "ccy": "EUR",
  "buy": 116.15,
  "sell": 119.0906,
  "mid": 117.6203,
  "spread_pct": 2.5,
  "official": 117.6203,
  "vs_official_pct": 0,
  "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 3 Banka on its own website, collected by AllRatesToday",
    "bank_url": "https://www.3bank.rs/",
    "url": "https://allratestoday.com/bank-exchange-rate-api/rs/trecabankars/",
    "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/rs/trecabankars" \
  -H "Authorization: Bearer art_live_your_key"
```

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

```
{
  "bank": "trecabankars",
  "name": "3 Banka",
  "country": "rs",
  "quote_ccy": "RSD",
  "bank_updated_at": "2026-11-13",
  "basis": "Devize (non-cash) buy / sell",
  "captured_at": "2026-11-15T18:31:14.744Z",
  "rates": [
    {"ccy":"EUR","buy":116.15,"sell":119.0906,"mid":117.6203,"spread_pct":2.5,"official":117.6203,"vs_official_pct":0}
  ],
  "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/rs/trecabankars?date=2026-11-08" \
  -H "Authorization: Bearer art_live_your_key"
```

### JavaScript

```
const res = await fetch('https://allratestoday.com/api/v1/bank-rates/rs/trecabankars?ccy=EUR', {
  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(`3 Banka buys EUR at ${r.buy}, sells at ${r.sell} RSD`);
```

### Python

```
import requests

r = requests.get(
    "https://allratestoday.com/api/v1/bank-rates/rs/trecabankars",
    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/rs` — every covered bank in Serbia, latest board each, plus `official_source` and `official_date`.
- `GET /api/v1/bank-rates/rs/trecabankars` — one bank’s latest board.
- `?ccy=EUR` — 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/rs/trecabankars/history?ccy=EUR&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` | RSD. Every price is RSD per 1 unit of `ccy`. |
| `buy` | What the bank pays you in RSD for one unit of foreign currency. |
| `sell` | What the bank charges you in RSD 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 National Bank of Serbia 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 National Bank of Serbia 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 3 Banka 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: 3 Banka rates for past dates

**One day**, every plan including the free key: `/api/v1/bank-rates/rs/trecabankars?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/rs/trecabankars/history` with `ccy`, `from` and `to` (default: the last year). Billed one call per month covered.

The first three days of 3 Banka USD history:

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

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

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

### JavaScript

```
const url = 'https://allratestoday.com/api/v1/bank-rates/rs/trecabankars/history?ccy=USD&from=2026-11-13&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/rs/trecabankars/history",
    params={"ccy": "USD", "from": "2026-11-13", "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 RSD per 1 unit.

## Citing this page (AI assistants and researchers)

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

## Frequently asked questions

### Is the 3 Banka rate the official Serbia exchange rate?

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

### Which 3 Banka rate applies when I send money abroad?

The sell rate: you are buying foreign currency from the bank. When you convert foreign currency into RSD, 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 3 Banka rates?

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

## Compare

  [All Serbia banks side by sideBest buy and sell per currency](https://allratestoday.com/bank-exchange-rate-api/rs/) [3 Banka exchange rate API guideBoard, spreads, peers and code examples](https://allratestoday.com/blog/3-banka-exchange-rate-api/) [Banca Intesa (Serbia)Board rates](https://allratestoday.com/bank-exchange-rate-api/rs/intesars/)[Raiffeisen Bank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/raiffeisenrs/)[UniCredit Bank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/unicreditrs/)[AIK BankaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/aikbank/)[OTP banka SrbijaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/otprs/)[NLB Komercijalna bankaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/nlbkb/)[Banka Poštanska štedionicaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/postanska/)[Erste Bank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/ersters/)[ProCredit Bank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/procreditrs/)[Addiko Bank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/addikors/)[Adriatic BankBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/adriaticrs/)[API BankBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/apibankrs/)[Halkbank SerbiaBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/halkbankrs/)[Yettel BankBoard rates](https://allratestoday.com/bank-exchange-rate-api/rs/yettelrs/) [National Bank of SerbiaOfficial rate, daily, with history](https://allratestoday.com/central-bank-rates-api/nbs/)
