{"openapi":"3.1.0","info":{"title":"Narodowy Bank Polski (Poland) FX & Gold API","version":"1.0.0","description":"Live official Polish foreign-exchange and gold data, served straight from the National Bank of Poland's open API — no key, nothing cached. The rates endpoint returns the NBP daily fixing: the official mid rate of every world currency against the zloty (PLN), table A for the common currencies and table B for the exotic ones, with the bulletin number and date. The currency endpoint returns one currency's mid rate, its bid and ask from the trading table, and its recent history — the US dollar fixed at about 3.69 zloty in mid-2026. The bidask endpoint returns the full trading table (table C): every currency with its buy and sell rate and the spread between them. The gold endpoint returns the NBP accounting price of gold — one gram of pure gold in zloty — with recent history, around 509 zloty a gram. The convert endpoint turns an amount from any currency into any other, crossed through the zloty at the official fixing, so you can convert USD to EUR or JPY to PLN in one call. Everything is the central bank's own published data, live, nothing stored. This is the Polish zloty FX-and-gold layer for any forex, payments, e-commerce or treasury app operating in Poland and Central Europe. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England and Brazil central-bank APIs — this is the zloty, its bid/ask trading table and the NBP gold price. 6 endpoints, no key on our side.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/nbp-api","description":"oanor gateway"}],"tags":[{"name":"NBP"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/bidask":{"get":{"operationId":"get_v1_bidask","tags":["NBP"],"summary":"Full trading table C (bid/ask/spread)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"PLN","note":"bid/ask = PLN per 1 unit of the listed currency","count":13,"rates":[{"ask":3.7138,"bid":3.6402,"code":"USD","spread":0.0736,"currency":"dolar amerykański"},{"ask":2.621,"bid":2.569,"code":"AUD","spread":0.052,"currency":"dolar australijski"},{"ask":2.6642,"bid":2.6114,"code":"CAD","spread":0.0528,"currency":"dolar kanadyjski"},{"ask":4.2862,"bid":4.2014,"code":"EUR","spread":0.0848,"currency":"euro"},{"ask":0.012046,"bid":0.011808,"code":"HUF","spread":0.0002,"currency":"forint (Węgry)"},{"ask":4.6633,"bid":4.5709,"code":"CHF","spread":0.0924,"currency":"frank szwajcarski"},{"ask":4.9583,"bid":4.8601,"code":"GBP","spread":0.0982,"currency":"funt szterling"},{"ask":0.023206,"bid":0.022746,"code":"JPY","spread":0.0005,"currency":"jen (Japonia)"},{"ask":0.1769,"bid":0.1733,"code":"CZK","spread":0.0036,"currency":"korona czeska"},{"ask":0.5735,"bid":0.5621,"code":"DKK","spread":0.0114,"currency":"korona duńska"},{"ask":0.3927,"bid":0.3849,"code":"NOK","spread":0.0078,"currency":"korona norweska"},{"ask":0.3942,"bid":0.3864,"code":"SEK","spread":0.0078,"currency":"korona szwedzka"},{"ask":5.0402,"bid":4.9404,"code":"XDR","spread":0.0998,"currency":"SDR (MFW)"}],"table":"C","source":"Narodowy Bank Polski","bulletin_no":"109/C/NBP/2026","trading_date":"2026-06-08","effective_date":"2026-06-09"},"meta":{"timestamp":"2026-06-09T11:38:24.124Z","request_id":"fd6bb4db-7c94-4de6-8b14-148eaa2b5e57"},"status":"ok","message":"Bid/ask table retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/convert":{"get":{"operationId":"get_v1_convert","tags":["NBP"],"summary":"Convert between currencies via PLN","description":"","parameters":[{"name":"from","in":"query","required":true,"description":"Source currency","schema":{"type":"string"},"example":"USD"},{"name":"to","in":"query","required":true,"description":"Target currency","schema":{"type":"string"},"example":"EUR"},{"name":"amount","in":"query","required":false,"description":"Amount (default 1)","schema":{"type":"string"},"example":"100"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"to":"EUR","via":"PLN","from":"USD","note":"crossed through PLN at the NBP table-A mid fixing","rate":0.865719,"amount":100,"result":86.571921,"source":"Narodowy Bank Polski","to_pln":4.2359,"from_pln":3.6671},"meta":{"timestamp":"2026-06-09T11:38:24.332Z","request_id":"cd6cb0f0-2aa6-42e7-9468-d3b656d7f06a"},"status":"ok","message":"Conversion retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/currency":{"get":{"operationId":"get_v1_currency","tags":["NBP"],"summary":"One currency mid + bid/ask + history","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"Currency code","schema":{"type":"string"},"example":"USD"},{"name":"history","in":"query","required":false,"description":"Number of past fixings (default 10)","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"ask":3.7138,"bid":3.6402,"mid":3.6671,"base":"PLN","code":"USD","note":"mid/bid/ask = PLN per 1 USD","source":"Narodowy Bank Polski","spread":0.0736,"history":[{"mid":3.6358,"date":"2026-06-02"},{"mid":3.6553,"date":"2026-06-03"},{"mid":3.6392,"date":"2026-06-05"},{"mid":3.6898,"date":"2026-06-08"},{"mid":3.6671,"date":"2026-06-09"}],"currency":"dolar amerykański","bulletin_no":"109/A/NBP/2026","effective_date":"2026-06-09"},"meta":{"timestamp":"2026-06-09T11:38:24.529Z","request_id":"1adf6512-cbd7-4b23-a39f-1a86a42dea4a"},"status":"ok","message":"Currency retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/gold":{"get":{"operationId":"get_v1_gold","tags":["NBP"],"summary":"NBP gold price (PLN per gram)","description":"","parameters":[{"name":"history","in":"query","required":false,"description":"Number of past days (default 30)","schema":{"type":"string"},"example":"7"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"date":"2026-06-09","unit":"1 gram of pure gold (1000 millesimal fineness)","asset":"Gold","price":508.68,"source":"Narodowy Bank Polski","history":[{"date":"2026-05-29","price":514.16},{"date":"2026-06-01","price":528.2},{"date":"2026-06-02","price":525.1},{"date":"2026-06-03","price":529.05},{"date":"2026-06-05","price":522.16},{"date":"2026-06-08","price":522.08},{"date":"2026-06-09","price":508.68}],"currency":"PLN"},"meta":{"timestamp":"2026-06-09T11:38:24.649Z","request_id":"35cb623c-14bd-4fc9-a0c0-c5f68b611a28"},"status":"ok","message":"Gold price retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/rates":{"get":{"operationId":"get_v1_rates","tags":["NBP"],"summary":"NBP daily fixing (all currencies vs PLN)","description":"","parameters":[{"name":"table","in":"query","required":false,"description":"A (common, default) or B (exotic)","schema":{"type":"string"},"example":"A"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"PLN","note":"mid = units of PLN per 1 unit of the listed currency","count":32,"rates":[{"mid":0.1116,"code":"THB","currency":"bat (Tajlandia)"},{"mid":3.6671,"code":"USD","currency":"dolar amerykański"},{"mid":2.5863,"code":"AUD","currency":"dolar australijski"},{"mid":0.468,"code":"HKD","currency":"dolar Hongkongu"},{"mid":2.6312,"code":"CAD","currency":"dolar kanadyjski"},{"mid":2.1384,"code":"NZD","currency":"dolar nowozelandzki"},{"mid":2.8519,"code":"SGD","currency":"dolar singapurski"},{"mid":4.2359,"code":"EUR","currency":"euro"},{"mid":0.011928,"code":"HUF","currency":"forint (Węgry)"},{"mid":4.6042,"code":"CHF","currency":"frank szwajcarski"},{"mid":4.9069,"code":"GBP","currency":"funt szterling"},{"mid":0.0817,"code":"UAH","currency":"hrywna (Ukraina)"},{"mid":0.022895,"code":"JPY","currency":"jen (Japonia)"},{"mid":0.1752,"code":"CZK","currency":"korona czeska"},{"mid":0.5667,"code":"DKK","currency":"korona duńska"},{"mid":0.029539,"code":"ISK","currency":"korona islandzka"},{"mid":0.3871,"code":"NOK","currency":"korona norweska"},{"mid":0.3891,"code":"SEK","currency":"korona szwedzka"},{"mid":0.8086,"code":"RON","currency":"lej rumuński"},{"mid":0.0795,"code":"TRY","currency":"lira turecka"},{"mid":1.2484,"code":"ILS","currency":"nowy izraelski szekel"},{"mid":0.003973,"code":"CLP","currency":"peso chilijskie"},{"mid":0.0596,"code":"PHP","currency":"peso filipińskie"},{"mid":0.2107,"code":"MXN","currency":"peso meksykańskie"},{"mid":0.2228,"code":"ZAR","currency":"rand (Republika Południowej Afryki)"},{"mid":0.7062,"code":"BRL","currency":"real (Brazylia)"},{"mid":0.9021,"code":"MYR","currency":"ringgit (Malezja)"},{"mid":0.00020311,"code":"IDR","currency":"rupia indonezyjska"},{"mid":0.038486,"code":"INR","currency":"rupia indyjska"},{"mid":0.002412,"code":"KRW","currency":"won południowokoreański"},{"mid":0.5417,"code":"CNY","currency":"yuan renminbi (Chiny)"},{"mid":5.0025,"code":"XDR","currency":"SDR (MFW)"}],"table":"A","source":"Narodowy Bank Polski","bulletin_no":"109/A/NBP/2026","effective_date":"2026-06-09"},"meta":{"timestamp":"2026-06-09T11:38:24.797Z","request_id":"dfafc25d-4957-415b-a969-29be06085233"},"status":"ok","message":"Rates retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"Narodowy Bank Polski Web API (live)","service":"nbp-api","endpoints":{"GET /v1/gold":"NBP gold price (PLN per gram) + history (history=N).","GET /v1/meta":"This document.","GET /v1/rates":"NBP daily fixing — every currency's mid vs PLN (table=A default, or B for exotics).","GET /v1/bidask":"Full trading table C — every currency's bid, ask and spread.","GET /v1/convert":"Convert between any two currencies via PLN (from=USD&to=EUR&amount=100).","GET /v1/currency":"One currency's mid + bid/ask + history (code=USD)."},"description":"Live official Polish FX and gold data from the National Bank of Poland: the daily fixing (mid rate of every world currency vs the zloty, tables A and B); one currency's mid, bid and ask with recent history; the full trading table (table C) with bid, ask and spread; the NBP gold price (one gram of pure gold in zloty) with history; and currency conversion between any two currencies crossed through the zloty. Live, no key, nothing stored. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England and Brazil central-bank APIs — this is the zloty, its bid/ask table and the NBP gold price.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-09T11:38:24.940Z","request_id":"5f29e829-e971-41ce-8f0b-eaa2200dcf2a"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1500,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1000,"monthly_call_quota":25000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2600,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6200,"monthly_call_quota":850000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/nbp-api"}