{"openapi":"3.1.0","info":{"title":"Swiss National Bank (SNB) FX & Rates API","version":"1.0.0","description":"Live official Swiss monetary data, served straight from the Swiss National Bank's open data portal — no key, nothing cached. The Swiss franc is one of the world's premier safe-haven and reserve currencies, and this exposes the SNB's own published numbers as clean JSON. The rates endpoint returns the SNB foreign-exchange fixing — the monthly-average value in francs of around 25 world currencies (the euro fixed near 0.92 francs in mid-2026), each normalised to the franc value of a single unit. The currency endpoint returns one currency's franc rate with its recent history. The policy-rate endpoint returns the SNB policy rate, the headline interest rate the Swiss National Bank sets to steer the economy, with its history. The saron endpoint returns SARON, the Swiss Average Rate Overnight — the franc benchmark that replaced CHF LIBOR and underpins Swiss financial contracts — with its recent path. Everything is the central bank's own published data, live, nothing stored; figures are monthly. This is the Swiss franc rates-and-FX layer for any forex, treasury, payments or macro app exposed to Switzerland. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England, Brazil, Poland and Czech central-bank APIs — this is the franc, the SNB policy rate and SARON. 5 endpoints, no key on our side.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/snb-api","description":"oanor gateway"}],"tags":[{"name":"SNB"},{"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/currency":{"get":{"operationId":"get_v1_currency","tags":["SNB"],"summary":"One currency CHF rate + history","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"Currency code","schema":{"type":"string"},"example":"EUR"},{"name":"history","in":"query","required":false,"description":"Number of past months (default 12)","schema":{"type":"string"},"example":"6"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"CHF","code":"EUR","date":"2026-05","label":"Europe - EUR 1","amount":1,"source":"Schweizerische Nationalbank","history":[{"date":"2025-12","value_chf":0.93313,"unit_rate_chf":0.93313},{"date":"2026-01","value_chf":0.92732,"unit_rate_chf":0.92732},{"date":"2026-02","value_chf":0.91406,"unit_rate_chf":0.91406},{"date":"2026-03","value_chf":0.90912,"unit_rate_chf":0.90912},{"date":"2026-04","value_chf":0.92116,"unit_rate_chf":0.92116},{"date":"2026-05","value_chf":0.91503,"unit_rate_chf":0.91503}],"frequency":"monthly average","value_chf":0.91503,"unit_rate_chf":0.91503},"meta":{"timestamp":"2026-06-09T11:38:14.793Z","request_id":"bfda0658-392c-474a-a14e-f521cbcc9e93"},"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/policy_rate":{"get":{"operationId":"get_v1_policy_rate","tags":["SNB"],"summary":"SNB policy rate","description":"","parameters":[{"name":"history","in":"query","required":false,"description":"Number of past months (default 12)","schema":{"type":"string"},"example":"6"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"date":"2026-04","unit":"% per year","source":"Schweizerische Nationalbank","country":"Switzerland","history":[{"date":"2025-11","rate_pct":0},{"date":"2025-12","rate_pct":0},{"date":"2026-01","rate_pct":0},{"date":"2026-02","rate_pct":0},{"date":"2026-03","rate_pct":0},{"date":"2026-04","rate_pct":0}],"rate_pct":0,"frequency":"monthly","indicator":"SNB policy rate"},"meta":{"timestamp":"2026-06-09T11:38:15.006Z","request_id":"4d6fea79-10bb-4941-b58a-07356030a008"},"status":"ok","message":"Policy 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/rates":{"get":{"operationId":"get_v1_rates","tags":["SNB"],"summary":"SNB FX fixing (all currencies in CHF)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"CHF","note":"value_chf = CHF per `amount` units; unit_rate_chf = CHF per 1 unit of the currency","as_of":"2026-05","count":26,"rates":[{"code":"ARS","date":"2026-05","amount":1,"value_chf":0.00056,"unit_rate_chf":0.00056},{"code":"AUD","date":"2026-05","amount":1,"value_chf":0.56248,"unit_rate_chf":0.56248},{"code":"BRL","date":"2026-05","amount":100,"value_chf":15.74908,"unit_rate_chf":0.157491},{"code":"CAD","date":"2026-05","amount":1,"value_chf":0.57107,"unit_rate_chf":0.57107},{"code":"CNY","date":"2026-05","amount":100,"value_chf":11.52706,"unit_rate_chf":0.115271},{"code":"CZK","date":"2026-05","amount":100,"value_chf":3.76308,"unit_rate_chf":0.037631},{"code":"DKK","date":"2026-05","amount":100,"value_chf":12.24504,"unit_rate_chf":0.12245},{"code":"EUR","date":"2026-05","amount":1,"value_chf":0.91503,"unit_rate_chf":0.91503},{"code":"GBP","date":"2026-05","amount":1,"value_chf":1.05676,"unit_rate_chf":1.05676},{"code":"HKD","date":"2026-05","amount":100,"value_chf":10.00526,"unit_rate_chf":0.100053},{"code":"HUF","date":"2026-05","amount":100,"value_chf":0.25534,"unit_rate_chf":0.002553},{"code":"JPY","date":"2026-05","amount":100,"value_chf":0.49554,"unit_rate_chf":0.004955},{"code":"KRW","date":"2026-05","amount":100,"value_chf":0.05261,"unit_rate_chf":0.000526},{"code":"MXN","date":"2026-05","amount":100,"value_chf":4.52617,"unit_rate_chf":0.045262},{"code":"MYR","date":"2026-05","amount":100,"value_chf":19.82605,"unit_rate_chf":0.19826},{"code":"NOK","date":"2026-05","amount":100,"value_chf":8.46781,"unit_rate_chf":0.084678},{"code":"NZD","date":"2026-05","amount":1,"value_chf":0.46239,"unit_rate_chf":0.46239},{"code":"PLN","date":"2026-05","amount":100,"value_chf":21.56953,"unit_rate_chf":0.215695},{"code":"RUB","date":"2026-05","amount":1,"value_chf":0.01077,"unit_rate_chf":0.01077},{"code":"SEK","date":"2026-05","amount":100,"value_chf":8.42272,"unit_rate_chf":0.084227},{"code":"SGD","date":"2026-05","amount":1,"value_chf":0.61443,"unit_rate_chf":0.61443},{"code":"THB","date":"2026-05","amount":100,"value_chf":2.40977,"unit_rate_chf":0.024098},{"code":"TRY","date":"2026-05","amount":100,"value_chf":1.72092,"unit_rate_chf":0.017209},{"code":"USD","date":"2026-05","amount":1,"value_chf":0.78369,"unit_rate_chf":0.78369},{"code":"XDR","date":"2026-05","amount":1,"value_chf":1.07401,"unit_rate_chf":1.07401},{"code":"ZAR","date":"2026-05","amount":1,"value_chf":0.04753,"unit_rate_chf":0.04753}],"source":"Schweizerische Nationalbank","frequency":"monthly average"},"meta":{"timestamp":"2026-06-09T11:38:15.376Z","request_id":"f18e10e6-b7da-4d9c-9874-eea5619128bc"},"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/saron":{"get":{"operationId":"get_v1_saron","tags":["SNB"],"summary":"SARON overnight benchmark","description":"","parameters":[{"name":"history","in":"query","required":false,"description":"Number of past months (default 12)","schema":{"type":"string"},"example":"6"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"date":"2026-05","unit":"% per year","source":"Schweizerische Nationalbank","country":"Switzerland","history":[{"date":"2025-12","rate_pct":-0.079228},{"date":"2026-01","rate_pct":-0.074428},{"date":"2026-02","rate_pct":-0.076166},{"date":"2026-03","rate_pct":-0.066425},{"date":"2026-04","rate_pct":-0.046989},{"date":"2026-05","rate_pct":-0.055974}],"rate_pct":-0.055974,"frequency":"monthly","indicator":"SARON — Swiss Average Rate Overnight (1 day)"},"meta":{"timestamp":"2026-06-09T11:38:15.643Z","request_id":"0f701ea8-dc35-4f98-b8d5-7f602ad46360"},"status":"ok","message":"SARON 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":"Schweizerische Nationalbank data portal (live)","service":"snb-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/rates":"SNB FX fixing — all currencies in CHF (monthly average).","GET /v1/saron":"SARON overnight benchmark + history.","GET /v1/currency":"One currency's CHF rate + history (code=EUR).","GET /v1/policy_rate":"SNB policy rate + history."},"description":"Live official Swiss monetary data from the Swiss National Bank's open data portal: the SNB foreign-exchange fixing (monthly-average franc value of ~25 world currencies, normalised to the franc value of a single unit); one currency's franc rate with history; the SNB policy rate with history; and SARON, the Swiss franc overnight benchmark that replaced CHF LIBOR, with its recent path. Live, no key, nothing stored; figures are monthly. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England, Brazil, Poland and Czech central-bank APIs — this is the franc, the SNB policy rate and SARON.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-09T11:38:16.015Z","request_id":"cf5011a2-6bea-446c-a704-b1813aa5b22f"},"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":1800,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":800,"monthly_call_quota":28000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2200,"monthly_call_quota":160000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5400,"monthly_call_quota":880000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/snb-api"}