{"openapi":"3.1.0","info":{"title":"National Bank of North Macedonia (NBRM) FX API","version":"1.0.0","description":"Official Macedonian denar (MKD) exchange rates from the National Bank of the Republic of North Macedonia (NBRM), with no key. Get the latest official rate for every quoted currency, a single-currency rate, a currency converter and the list of quoted currencies. The bank publishes a nominal (1 or 100 units) and a middle rate, so every rate is normalised to a per-unit MKD value (middle rate ÷ nominal) and conversions are correct. The North-Macedonia-FX layer for treasury, pricing and FX dashboards.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/macedonia-fx-api","description":"oanor gateway"}],"tags":[{"name":"FX"},{"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/convert":{"get":{"operationId":"get_v1_convert","tags":["FX"],"summary":"Convert an amount between two currencies via MKD","description":"","parameters":[{"name":"from","in":"query","required":true,"description":"Source ISO code (or MKD)","schema":{"type":"string"},"example":"EUR"},{"name":"to","in":"query","required":true,"description":"Target ISO code (or MKD)","schema":{"type":"string"},"example":"MKD"},{"name":"amount","in":"query","required":false,"description":"Amount to convert","schema":{"type":"string"},"example":"100"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"to":"MKD","base":"MKD","date":"2026-06-15","from":"EUR","rate":61.6327,"amount":100,"result":6163.27},"meta":{"timestamp":"2026-06-15T11:15:35.391Z","request_id":"7b615e9e-cc47-4962-85eb-8f22bcb46cd7"},"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/currencies":{"get":{"operationId":"get_v1_currencies","tags":["FX"],"summary":"All currencies quoted by the NBRM","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"MKD","date":"2026-06-15","count":31,"currencies":["AUD","BRL","CAD","CHF","CNY","CZK","DKK","EUR","GBP","HKD","HUF","IDR","ILS","INR","JPY","KRW","MXN","MYR","NOK","NZD","PHP","PLN","RON","RSD","RUB","SEK","SGD","THB","TRY","USD","ZAR"]},"meta":{"timestamp":"2026-06-15T11:15:35.456Z","request_id":"4478f797-28e3-4f8f-b73f-4f50105bb0fc"},"status":"ok","message":"Currencies 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/latest":{"get":{"operationId":"get_v1_latest","tags":["FX"],"summary":"Latest official MKD rates (all or selected)","description":"","parameters":[{"name":"symbols","in":"query","required":false,"description":"Comma-separated ISO codes","schema":{"type":"string"},"example":"EUR,USD,GBP"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"MKD","date":"2026-06-15","count":3,"rates":[{"iso":"EUR","name":"Euro","nominal":1,"middle_rate":61.6327,"per_unit_mkd":61.6327},{"iso":"USD","name":"US dollar","nominal":1,"middle_rate":53.2832,"per_unit_mkd":53.2832},{"iso":"GBP","name":"Pound sterling","nominal":1,"middle_rate":71.4127,"per_unit_mkd":71.4127}]},"meta":{"timestamp":"2026-06-15T11:15:35.545Z","request_id":"61b79a9b-30c2-4f63-89ec-d6e91814e2b7"},"status":"ok","message":"Latest 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/rate":{"get":{"operationId":"get_v1_rate","tags":["FX"],"summary":"Single-currency MKD rate","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"3-letter ISO code","schema":{"type":"string"},"example":"EUR"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"iso":"EUR","base":"MKD","date":"2026-06-15","name":"Euro","nominal":1,"middle_rate":61.6327,"per_unit_mkd":61.6327},"meta":{"timestamp":"2026-06-15T11:15:35.648Z","request_id":"49ece549-ebc2-42be-953d-8ddf8a934462"},"status":"ok","message":"Rate 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":"Bank metadata & endpoint guide","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bank":"National Bank of the Republic of North Macedonia (NBRM)","note":"per_unit_mkd = middle_rate / nominal, so conversions are correct even when the NBRM quotes a currency per 100 units.","source":"NBRM XML service (nbrm.mk/KLServiceNOV/GetExchangeRate), keyless","country":"North Macedonia","examples":{"rate":"/v1/rate?symbol=EUR","latest":"/v1/latest?symbols=EUR,USD,GBP","convert":"/v1/convert?from=EUR&to=MKD&amount=100","currencies":"/v1/currencies"},"endpoints":{"/v1/rate":"single-currency rate with nominal, middle rate and per-unit MKD value (symbol=EUR)","/v1/latest":"latest official MKD rates for all (or selected) currencies (symbols optional)","/v1/convert":"convert an amount between any two quoted currencies via MKD (from, to, amount)","/v1/currencies":"all currencies quoted by the NBRM"},"cache_ttl_ms":300000,"base_currency":"MKD"},"meta":{"timestamp":"2026-06-15T11:15:35.745Z","request_id":"dad23c06-da25-4bb7-bb4a-0190b46d6015"},"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":1340,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":950,"monthly_call_quota":40500,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2890,"monthly_call_quota":165000,"rps_limit":15,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":6240,"monthly_call_quota":682000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/macedonia-fx-api"}