Best Exchange Rates API Online
Where to buy or sell one currency for PLN in one city right now: the offices with the best RETAIL rates, ranked, next to the official NBP reference rate. Only rates no older than 6 hours compete, and quotes far off the city median are left out as likely errors. Wholesale rates never enter the ranking.
GET https://nakordoni.eu/api/v2/data/exchange-best-rates
— quota class: cheap
| Parameter | Description |
|---|---|
city | City id from exchange-cities, e.g. warszawa (required) |
currency | Currency to compare against PLN, ISO 4217 code such as EUR (required) |
limit | Offices per list, 1-20 (default 5) |
lang | Language for city name and page links (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.best_to_buy_currency[] | Offices with the LOWEST sell rate — where you buy the currency cheapest. rate is that sell rate in PLN per 1 unit. |
data.best_to_sell_currency[] | Offices with the HIGHEST buy rate — where you get the most PLN for the currency. |
data.best_to_buy_currency[].vs_nbp_pct | Difference between rate and the NBP mid rate, in percent. |
data.best_to_buy_currency[].rate_time | When the rate was valid, ISO 8601 with the Polish UTC offset; also office_id, name, address, lat, lon, buy, sell, spread_pct and url. |
data.candidates | Offices with a recent enough rate; fewer than 2 means both lists are empty — there is nothing to compare. |
data.nbp | National Bank of Poland reference rate: mid (table A), bid/ask (table C) where published, table and effective_date; null for a currency NBP does not publish. |
data.max_rate_age_minutes | Oldest rate allowed into the ranking (360). |
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-best-rates",
"data": {
"city": "warszawa",
"currency": "EUR",
"quote_currency": "PLN",
"kind": "retail",
"candidates": 51,
"best_to_buy_currency": [
{ "office_id": 197, "name": "Kantor …", "rate": 4.38, "buy": 4.365, "sell": 4.38,
"spread_pct": 0.34, "vs_nbp_pct": 0.22, "rate_time": "2026-10-14T21:50:35+02:00",
"url": "https://nakordoni.eu/en/exchange/warszawa/…" }
],
"best_to_sell_currency": [ "…" ],
"nbp": { "currency": "EUR", "mid": 4.3706, "bid": null, "ask": null,
"table": "200/A/NBP/2026", "effective_date": "2026-10-14" }
}
}
curl "https://nakordoni.eu/api/v2/data/exchange-best-rates?city=warszawa¤cy=EUR&limit=5" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Updated