News submission and NakBus fleet are now in the partner dashboard
Connect your developer account to a Nakordoni Partners account with the same email and manage news and your bus fleet (NakDriver / NakManager) there, with team roles. Your API keys, endpoints and apps are unchanged, and the pages here keep working. Open Nakordoni Partners

← All endpoints

Exchange Offices API Online

Directory of currency exchange offices (kantors) in Poland: name, address, coordinates, opening hours, phone, website and whether the office also quotes wholesale rates. Filter by city, by a currency the office quotes, or to offices open right now (Polish local time).

GET https://nakordoni.eu/api/v2/data/exchange-offices — quota class: cheap

ParameterDescription
cityCity id from exchange-cities, e.g. warszawa (optional; omit for every city)
currencyOnly offices that quote this currency, ISO 4217 code such as EUR (optional)
open_now1 = only offices open right now, by their published hours in Polish local time (optional)
limitMax offices returned, 1-300 (default 100)
langLanguage for city names 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.

FieldDescription
data.offices[].idOffice id — the value exchange-office and exchange-history take.
data.offices[].nameOffice name, with address, postal_code, city and city_name.
data.offices[].latCoordinates (lat, lon); null when unknown.
data.offices[].hours[]Opening hours, one row per opening: day (mo..su), open, close (HH:MM, Polish local time). A day with no row is closed.
data.offices[].open_nowWhether the office is open now by its published hours; null when no hours are known.
data.offices[].phones[]Phone numbers as published, with website.
data.offices[].has_wholesaletrue = the office also quotes wholesale rates, which apply from a minimum amount (see exchange-office).
data.offices[].has_current_ratestrue = at least one rate was updated in the last 72 hours.
data.offices[].currencies[]Currencies the office quotes at retail.
data.offices[].urlThe office page on nakordoni.eu — link it where you show the data.
data.countOffices returned; total is the number matching the filters and truncated is true when limit cut the list.

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.

curl "https://nakordoni.eu/api/v2/data/exchange-offices?city=krakow&currency=EUR&open_now=1" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
🔑 Log in as a developer to try this endpoint live in the sandbox — 50 free test calls a day. Log in

Updated