Öppet API för valutakurser
Riksbankens dagliga kurser mot svenska kronor, samma data som på sajten, som JSON, text, CSV och Excel. Ingen nyckel och ingen registrering.
| Adress | Innehåll | Cache |
|---|---|---|
/latest.json | Senaste kurs för alla valutor, var och en med sitt date_used. | 15 minuter |
/{valuta}/{datum}.json | Kursen för ett datum, till exempel /eur/2024-03-01.json. | 1 år när datumet har passerat |
/{valuta}/{datum}.txt | Bara talet, med punkt som decimaltecken. | 1 år när datumet har passerat |
/{valuta}/{år}.json | Årets dagliga kurser, månads- och årsgenomsnitt, och Riksbankens publicerade årsgenomsnitt. | 1 dag för innevarande år, annars 1 år |
/{valuta}/{år}.csv | Årets dagliga kurser. ?locale=sv ger semikolon och decimalkomma. | 1 dag för innevarande år, annars 1 år |
/{valuta}/{år}.xlsx | Excel med dagliga kurser, månadsgenomsnitt och ett källblad. | Byggs när ny data publiceras |
/averages/{år}.json | Års- och månadsgenomsnitt för alla valutor ett år. | 1 dag för innevarande år, annars 1 år |
/meta.json | Serier, enheter, historikens start, dataset- och metodversion. | 1 dag |
Valutor: eur, usd, gbp, nok, dkk, chf, pln, thb, try, aud, brl, cad, cny, czk, hkd, huf, idr, ils, inr, isk, jpy, krw, mxn, myr, nzd, php, ron, sgd, zar. Maskinläsbar beskrivning: OpenAPI 3.1.
Kurser och enheter
Varje kurs anges i svenska kronor per 1 enhet av valutan, exakt som Riksbanken publicerade den, med högst fem decimaler. Inget avrundas av oss. API:t har alla 29 valutor som Riksbanken publicerar i dag, även de som saknar egna sidor här. Historiken börjar 4 januari 1993 för de flesta valutor och senare för andra, som 2023 för ILS, PHP och RON. Se meta.json för exakta datum.
Datum utan kurs: date_used
Riksbanken publicerar kurser bara på bankdagar. Frågar du efter en helg, en helgdag eller ett datum efter den senaste kursen får du kursen från närmast föregående bankdag. Fältet date_used och rubriken X-Date-Used anger alltid vilket datum kursen gäller. Jämför det med requested_date om du behöver veta att en ersättning har skett.
Svar för söndagen 3 mars 2024:
{
"currency": "EUR",
"requested_date": "2024-03-03",
"date_used": "2024-03-01",
"value": 11.1948,
"unit": "SEK per 1 EUR",
"revision": 0,
"source": "Sveriges riksbank",
"dataset_version": 60
}Kursunderlag
/api/v1/kursunderlag/{valuta}/{datum}/v{version}.json ger en enskild kurs låst till en viss datasetversion, med en SHA-256-hash över fälten. Fälten som hashen täcker, currency till och med citation, är alltid desamma på samma adress, även efter att nyare data publicerats. Fältet superseded_by ligger utanför hashen och kan dyka upp senare: har kursen för datumet ändrats i en senare datasetversion pekar det på motsvarande underlag från senaste datasetversionen. Se kursunderlag för hur man hittar rätt adress.
Bokslutspaket
/api/v1/bokslutspaket/{datum}/{valutor}/v{version}.json och samma adress med .xlsx ger kurserna för flera valutor en balansdag i ett svep, med förra årets kurs som jämförelse och en länk till varje valutas kursunderlag. Precis som ett kursunderlag är paketet låst till en datasetversion och adressen ger samma svar för alltid. Se bokslutspaket för att bygga ett eget, med Excel-filen som har ett färdigt kalkylblad för saldona.
Exempel
curl
curl https://valutakurs.nu/api/v1/eur/2024-03-01.json
curl https://valutakurs.nu/api/v1/eur/2024-03-01.txt
curl -O https://valutakurs.nu/api/v1/eur/2025.csvJavaScript
API:et skickar Access-Control-Allow-Origin: *, så det går att anropa direkt från en webbsida.
const res = await fetch("https://valutakurs.nu/api/v1/eur/2024-03-01.json");
const data = await res.json();
console.log(data.value, data.date_used);Python
import json
from urllib.request import urlopen
with urlopen("https://valutakurs.nu/api/v1/eur/2024-03-01.json") as res:
data = json.load(res)
print(data["value"], data["date_used"])
# Ett helt år med pandas
import pandas as pd
df = pd.read_csv("https://valutakurs.nu/api/v1/eur/2025.csv", parse_dates=["date"])PHP
<?php
$data = json_decode(file_get_contents("https://valutakurs.nu/api/v1/eur/2024-03-01.json"), true);
echo $data["value"], " ", $data["date_used"];Google Kalkylark
Första raden i CSV-filen är rubrikerna. Språkkoden en_US gör att punkten läses som decimaltecken även i ett kalkylark med svenska inställningar.
=IMPORTDATA("https://valutakurs.nu/api/v1/eur/2025.csv"; ","; "en_US")
=IMPORTDATA("https://valutakurs.nu/api/v1/eur/2024-03-01.txt"; ","; "en_US")Excel, Power Query
Välj Data, Hämta data, Från andra källor, Tom fråga, och klistra in i Avancerad redigerare. Eller ladda ner Excel-filen direkt från årssidan.
let
Källa = Csv.Document(Web.Contents("https://valutakurs.nu/api/v1/eur/2025.csv"), [Delimiter = ",", Encoding = 65001]),
Rubriker = Table.PromoteHeaders(Källa),
Typer = Table.TransformColumnTypes(Rubriker, {{"date", type date}, {"sek_per_unit", type number}}, "en-US")
in
TyperCSV-formatet
Rad 1 är rubriker: date, currency, sek_per_unit, source, dataset_version, method_version. Med ?locale=sv blir rubrikerna datum; valuta; kurs_sek_per_enhet; kalla; datasetversion; metodversion, avgränsaren semikolon och decimaltecknet komma. Varje rad bär källan och versionerna, så en utklippt del av filen säger fortfarande var siffrorna kommer ifrån.
Cache och villkorliga anrop
Svaren har Cache-Control efter hur ofta de kan ändras, se tabellen ovan. Varje svar har också ETag och Last-Modified. Skicka If-None-Match med det senaste ETag-värdet så får du 304 Not Modified utan innehåll när inget har ändrats. Last-Modified är tiden då den aktuella datasetversionen publicerades.
Hämta inte samma adress oftare än cachetiden. Kurserna uppdateras en gång per bankdag. Gränsen är 60 anrop per minut och IP-adress för de svar som räknas fram vid varje anrop: /latest.json, /meta.json, årsgenomsnitten och uppslag på ett datum. Filerna för ett helt år, alltså .json, .csv och .xlsx i tabellen ovan, har en egen gräns på 600 anrop per minut, så hela arkivet går att hämta i ett svep. Kortare toppar släpps igenom, sedan svarar servern 429 Too Many Requests med Retry-After.
dataset_version och method_version
dataset_version ökar varje gång ny eller ändrad data publiceras, till exempel när Riksbanken rättar en kurs i efterhand. Den finns i varje svar och i rubriken X-Dataset-Version. Ändringar listas under rättelser.
method_version är versionen av våra beräkningsregler för genomsnitt, högsta och lägsta. Den är 1 i dag och ändras bara om en regel ändras. Reglerna står på metodsidan.
Källa och attribution
De dagliga kurserna kommer från Sveriges riksbank. Genomsnitt är beräknade av Valutakurs.nu och ska inte anges som Riksbankens. Ange källan när du publicerar siffrorna vidare, gärna med länk till valutakurs.nu. JSON-svaren och Excel-filen har raden i fältet attribution och på bladet Källa:
Källa: Sveriges riksbank (dagliga observationer). Beräkningar: Valutakurs.nu, metodversion 1.