Exchange Office Rates API Online
One exchange office with its current buy and sell rates against PLN. Retail and wholesale rates are returned separately: wholesale applies only from min_amount_pln and must not be compared with retail. Every rate carries its own time, so an old quote is never presented as today's.
GET https://nakordoni.eu/api/v2/data/exchange-office
— quota class: cheap
| Parameter | Description |
|---|---|
id | Office id from exchange-offices (required) |
lang | Language for city name and page link (default en) |
Response fields — inside the data object of the envelope. [] marks a list, so data.items[].name is the name field of each element. A field is null, absent or an empty list when we hold no value for it — never a placeholder.
| Field | Description |
|---|---|
data.office | Every field of an exchange-offices row, plus rates. |
data.office.rates.retail[].currency | ISO 4217 code; buy and sell are PLN per 1 unit (buy = what the office pays you, sell = what you pay the office). |
data.office.rates.retail[].rate_time | When this rate was valid, ISO 8601 with the Polish UTC offset (e.g. 2026-10-14T15:47:00+02:00). |
data.office.rates.retail[].is_current | false = the rate is older than 72 hours; show it only together with rate_time. |
data.office.rates.wholesale[].min_amount_pln | Smallest transaction (in PLN) the wholesale rate applies to; null when the office does not state one. Other fields as in retail. |
data.office.rates.quote_currency | Currency every rate is quoted in (PLN). |
Where the data comes from
Office listings and their rates are collected by Nakordoni from public information the exchange offices publish, checked for errors and shown next to the official National Bank of Poland (NBP) reference rate. Every rate carries the time it was valid; a rate older than 72 hours is marked is_current: false and never ranked.
Exchange offices can see what our reader collects, stop it, or correct or remove their listing at any time. Listings an owner asked us to remove disappear from these products too. NakordoniBot for exchange offices — information and opt-out
Each office row carries url — its page on nakordoni.eu. Link it where you show the data.
Example answer
{
"ok": true,
"product": "exchange-office",
"data": {
"office": {
"id": 3, "name": "Kantor …", "city": "przemysl", "address": "…, 37-700 Przemyśl",
"lat": 49.78449, "lon": 22.776614, "open_now": false, "has_wholesale": true,
"hours": [ { "day": "mo", "open": "08:00", "close": "17:00" } ],
"rates": {
"quote_currency": "PLN",
"retail": [ { "currency": "EUR", "buy": 4.33, "sell": 4.41,
"rate_time": "2026-10-14T15:47:00+02:00", "is_current": true } ],
"wholesale": [ { "currency": "EUR", "buy": 4.36, "sell": 4.385, "min_amount_pln": 4000,
"rate_time": "2026-10-14T15:47:00+02:00", "is_current": true } ]
}
}
}
}
curl "https://nakordoni.eu/api/v2/data/exchange-office?id=3" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Updated