BYTETOOLS

Norges Bank API

Free Norges Bank API with no key: official Norwegian krone exchange rates, policy interest rates and government bond yields in SDMX-JSON. Tested example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the Norges Bank API?

The Norges Bank API is a free, key-free official API from Norway's central bank providing krone exchange rates, the policy interest rate, government bond yields and other Norwegian monetary statistics.

As with the ECB, this is primary central bank data — the official reference rates used for Norwegian accounting rather than market mid-rates from a commercial aggregator.

It serves SDMX-JSON, the international statistical exchange standard, which separates observations from their dimension labels. That makes the response structure unfamiliar: you join positional observation keys against a structure block to recover dates and currencies.

Quick facts

Base URL
https://data.norges-bank.no/api/data
Authentication
No API key required.
Rate limit
No published hard limit; fair use expected.
Pricing
Free official central bank data.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Norges Bank API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Fetch the official USD/NOK rate

GET https://data.norges-bank.no/api/data/EXR/B.USD.NOK.SP?format=sdmx-json&lastNObservations=1

curl
curl 'https://data.norges-bank.no/api/data/EXR/B.USD.NOK.SP?format=sdmx-json&lastNObservations=1'
JavaScript (fetch)
const res = await fetch("https://data.norges-bank.no/api/data/EXR/B.USD.NOK.SP?format=sdmx-json&lastNObservations=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://data.norges-bank.no/api/data/EXR/B.USD.NOK.SP?format=sdmx-json&lastNObservations=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "meta": {
    "id": "IREF083835",
    "prepared": "2026-08-20T06:46:22",
    "test": false,
    "datasetId": "7c209ca8-f358-4d8b-8186-5a6c09f6a5ac",
    "sender": {
      "id": "Unknown"
    },
    "receiver": {
      "id": "guest"
    },
    "links": [
      {
        "rel": "self",
        "href": "/data/EXR/B.USD.NOK.SP?format=sdmx-json&lastNObservations=1",
        "uri": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/data-message/tools/schemas/1.0/sdmx-json-data-schema.json"
      }
    ]
  },
  "data": {
    "dataSets": [
      {
        "links": [
          {
            "rel": "dataflow",
            "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=NB:EXR(1.0)"
          }
        ],
        "reportingBegin": "2026-08-19T00:00:00",
        "reportingEnd": "2026-08-19T23:59:59",
        "action": "Information",
        "series": {
          "0:0:0:0": {
            "attributes": [
              0,
              0,
              0,
              0
            ],
            "observations": {
              "0": [
                "9.4016"
              ]
            }
          }
        }
      }
    ],
    "structure": {
      "links": [
        {
          "rel": "dataflow",
          "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=NB:EXR(1.0)"
        },
        {
          "rel": "datastructure",
          "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=NB:DSD_EXR(1.0)"
        }
      ],
      "name": "Exchange rates",
      "names": {
        "en": "Exchange rates",
        "no": "Valutakurser"
      },

Parameters

ParameterTypeRequiredDescription
EXR/<key>pathRequiredDataset and dot-separated series key. EXR/B.USD.NOK.SP
formatstringRequiredsdmx-json or csv. sdmx-json
lastNObservationsintegerOptionalReturn only the most recent N points. 1
startPeriod / endPeriodstringOptionalDate range. 2026-01-01

Response fields

metaobject
Response metadata including preparation time and dataset id.
data.dataSets[].seriesobject
Observations keyed positionally, not by name.
data.structures[].dimensionsobject
Labels needed to interpret the positional keys.
data.structures[].dimensions.observationarray
Time periods for each observation index.

What you can build with the Norges Bank API

  • Convert to Norwegian krone using official rates
  • Chart Norwegian policy interest rates over time
  • Support Norwegian accounting and compliance reporting
  • Analyse Nordic monetary policy at source

Common errors and how to fix them

Positional observation keys

SDMX separates values from labels.

Fix: Join dataSets[].series against structures[].dimensions to map keys to dates and currencies.

404 on the series key

Series keys are strict dot-separated dimension codes.

Fix: Use the query builder on Norges Bank's site to construct valid keys — B.USD.NOK.SP is the daily USD rate.

Empty observations

No data for that period.

Fix: Rates publish on working days; weekends and Norwegian holidays have no observation.

Norges Bank API — frequently asked questions

Is the Norges Bank API free?

Yes, completely free with no API key. It is Norway's central bank official data service.

Why is the response structure so unusual?

It uses SDMX-JSON, the international statistical standard. Observations are keyed positionally and joined against a separate dimensions structure to recover dates and labels.

How do I find the right series key?

Use the query builder on Norges Bank's website. B.USD.NOK.SP is the daily US dollar spot rate against the krone.

Should I use this or a commercial FX API?

Use Norges Bank when you need officially recognised rates for Norwegian accounting. A commercial API is simpler for general display purposes.

Tools that pair with this API

Norges Bank is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.