ÖPPET API · VERSION 1

Svenska elpriser i ditt projekt

Hämta dagenförepriser för SE1–SE4 som JSON eller CSV. API:t är kostnadsfritt och kräver ingen nyckel. Varje dygn har tydlig datatäckning, ursprungliga europriser och information om vår omräkning till kronor.

1. Hämta ett dygn

Exemplet gäller SE3 och 2026-10-06. Byt område och datum för ditt projekt. Datum avser svensk kalenderdag, i tidszonen Europe/Stockholm.

curl 'https://elprisersverige.nu/api/v1/prices/SE3/2026-10-06'

Kontrollera alltid svarets status. Historik fylls på i bakgrunden och alla datum är inte nödvändigtvis tillgängliga.

2. Välj data och upplösning

GET-anropInnehåll
/api/v1/areasOmråden, tidszon och arkivets täckning.
/api/v1/prices/SE3/YYYY-MM-DDEtt svenskt kalenderdygn.
/api/v1/prices?area=SE3&from=YYYY-MM-DD&to=YYYY-MM-DDUpp till 31 dagar, båda datumen inkluderade.
/api/v1/statusAktuell täckning och senaste lyckade prishämtningar.

resolution=native är standard och behåller källans tim- eller kvartperioder. resolution=hour ger timvärden; medel beräknade från kvartar märks aggregated: true. Saknade delar av en timme fylls aldrig ut.

format=json är standard. format=csv ger en tabell med UTC-tider, EUR/MWh, omräknad SEK/kWh och valutametadata. Ingen parameter lägger till moms eller avgifter.

3. Läs värdena rätt

FältBetydelse
days[].statuscomplete, partial, not_published eller unavailable. Kontrollera varje dygn även vid HTTP 200.
days[].staleSenast sparade priser visas efter fördröjd kontroll eller källfel.
intervals[].start / endUTC med Z. Start ingår, slut ingår inte. Använd tidszonsbibliotek vid lokal visning.
intervals[].priceUrsprungligt dagenförepris i EUR/MWh.
intervals[].sekPerKwhVår referensomräkning till SEK/kWh, eller null om valutakurs saknas.
conversionKurs, kursdatum, källa och metod.
dataVersionÄndras när prisunderlaget eller omräkningen ändras.
sourcePublishedAtnull när ursprunglig publiceringstid inte kan verifieras. Hämtningstid finns i status-API:t.

Noll och negativa priser är giltiga. En tom lista eller null betyder aldrig gratis el. Ett normalt kvartdygn har 96 perioder; vid tidsomställning är det 92 eller 100. Äldre timdygn kan ha 23, 24 eller 25 perioder. Använd start och slut, inte en förväntan om ett fast antal värden.

4. Förstå valuta, moms och avgifter

ENTSO-E:s svenska priser levereras i euro. Vi använder ECB:s senaste tillgängliga bankdagskurs före auktionsdagen. För leveransdag D väljs senaste ECB-kurs daterad D−2 eller tidigare, högst tio kalenderdagar bakåt. Metoden ger en kurs som var tillgänglig när morgondagspriserna publicerades och tillämpar samma regel på historiken.

SEK/kWh = EUR/MWh × SEK per EUR ÷ 1 000
öre/kWh = SEK/kWh × 100

Detta är en referensomräkning, inte Nord Pools officiella avräkningskurs. Den kan därför skilja från elhandlarens SEK-pris. Kursen och dess datum följer med varje dygn. En ny dags kurs används inte för att räkna om gamla dygn.

Alla API-priser är exklusive moms, energiskatt, nätavgifter och elhandlarens påslag. För en beräkning med 25 procent moms multipliceras spotdelen med 1,25; resultatet är fortfarande inte hela elräkningen. Läs hela beräkningsmetoden.

5. Exempel i JavaScript och Python

JavaScript · fetch
const response = await fetch('https://elprisersverige.nu/api/v1/prices/SE3/2026-10-06');
if (!response.ok) throw new Error('API: ' + response.status);
const data = await response.json();
const day = data.days[0];
if (day.status !== 'complete' || day.stale) {
  throw new Error('Komplett, aktuellt prisunderlag saknas');
}
for (const period of day.intervals) {
  console.log(period.start, period.end, period.price, 'EUR/MWh');
  // sekPerKwh är vår referensomräkning, exklusive moms/avgifter.
  // Kontrollera day.conversion; värdet kan vara null.
}
Python · standardbiblioteket
import json
from urllib.request import urlopen

with urlopen('https://elprisersverige.nu/api/v1/prices/SE3/2026-10-06', timeout=15) as response:
    data = json.load(response)
day = data['days'][0]
if day['status'] != 'complete' or day.get('stale'):
    raise RuntimeError('Komplett, aktuellt prisunderlag saknas')
for period in day['intervals']:
    print(period['start'], period['end'], period['price'], 'EUR/MWh')

För styrning av laddning eller värme: spara dagens svar lokalt, kontrollera tidsintervallen och behåll en säker reservplan vid saknade priser. API:t skickar inga styrkommandon.

Status, cache och anropsgränser

Gränsen är 30 anrop per minut och klientadress. Hämta ett helt dygn i taget. Använd ETag och If-None-Match; HTTP 304 betyder att du kan återanvända ditt sparade svar. Även sådana kontroller räknas som anrop. Flera användare bakom samma nätadress delar gräns.

SvarVad du gör
200 + completeAnvänd data efter kontroll av stale och valuta.
200 + partialHantera de saknade perioderna uttryckligen. Använd inte som komplett styrschema.
200 + not_publishedPriser är ännu inte tillgängliga. Vänta och försök igen senare.
400Rätta område, datum eller parametrar.
429Vänta enligt Retry-After.
503Underlag saknas eller tjänsten kan inte läsa det. Använd sparad data med egen ålderskontroll.

Aktuella dygn cachelagras kort; historik längre. Även historiska priser kan rättas. Morgondagens priser visas först när källan publicerat dem; någon exakt publiceringstid garanteras inte. CORS är öppet för dessa publika GET-anrop.

Användningsvillkor och källangivelse

API:t är kostnadsfritt tillgängligt för egna projekt och integrationer inom anropsgränserna. Ange Elpriser Sverige / ENTSO-E Transparency Platform som källa när du visar priser från API:t, och ECB när du visar vår valutaomräkning. Länka till denna guide så att metod och begränsningar är tillgängliga.

Vi återpublicerar data med tillstånd. Det innebär inte att underliggande marknadsdata automatiskt har en generell Creative Commons-licens. För vidare distribution som egen datatjänst, stora uttag eller behov av särskilda rättigheter: kontakta oss.

Tjänsten levereras utan garanterad tillgänglighet eller SLA. Priser kan saknas, bli fördröjda eller rättas. Version 1 behåller fältens betydelse; nya valfria fält kan tillkomma. Ändringar som bryter kontraktet får en ny huvudversion. IP-adressen används för en kortvarig teknisk anropsbegränsning; ingen API-nyckel eller användarregistrering krävs.

Integritet · Sajtens datastatus · Fler data om elsystemet