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-anrop | Innehåll |
|---|---|
/api/v1/areas | Områden, tidszon och arkivets täckning. |
/api/v1/prices/SE3/YYYY-MM-DD | Ett svenskt kalenderdygn. |
/api/v1/prices?area=SE3&from=YYYY-MM-DD&to=YYYY-MM-DD | Upp till 31 dagar, båda datumen inkluderade. |
/api/v1/status | Aktuell 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ält | Betydelse |
|---|---|
days[].status | complete, partial, not_published eller unavailable. Kontrollera varje dygn även vid HTTP 200. |
days[].stale | Senast sparade priser visas efter fördröjd kontroll eller källfel. |
intervals[].start / end | UTC med Z. Start ingår, slut ingår inte. Använd tidszonsbibliotek vid lokal visning. |
intervals[].price | Ursprungligt dagenförepris i EUR/MWh. |
intervals[].sekPerKwh | Vår referensomräkning till SEK/kWh, eller null om valutakurs saknas. |
conversion | Kurs, kursdatum, källa och metod. |
dataVersion | Ändras när prisunderlaget eller omräkningen ändras. |
sourcePublishedAt | null 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 × 100Detta ä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.
| Svar | Vad du gör |
|---|---|
| 200 + complete | Använd data efter kontroll av stale och valuta. |
| 200 + partial | Hantera de saknade perioderna uttryckligen. Använd inte som komplett styrschema. |
| 200 + not_published | Priser är ännu inte tillgängliga. Vänta och försök igen senare. |
| 400 | Rätta område, datum eller parametrar. |
| 429 | Vänta enligt Retry-After. |
| 503 | Underlag 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.