Alle data på elpriser.org er tilgængelige via et public JSON API. Kalder du fra en browser, Shelly, Home Assistant, en LLM-agent eller et eget script, så slipper du for et abonnement — bare hit en URL.
Hovedpunkter
- Ingen nøgle, ingen rate limit — Cloudflare-edge cacher 1-5 min, så hyppige kald er gratis.
- Fuld CORS (
Access-Control-Allow-Origin: *) — kald direkte fra en webapp uden proxy. - Send en
User-Agent— Cloudflares botbeskyttelse svarer403på Pythons standard-urllib(Python-urllib/3.x). Alt andet virker:curl,requestseller dit eget, fxmy-app/1.0. I Python:Request(url, headers={"User-Agent": "my-app/1.0"}). - OpenAPI 3.1 spec på /api/openapi.json — importér i Postman, Bruno eller en ChatGPT/MCP-klient.
- Tibber-kompatibel JSON for HA / Shelly via
/api/shelly/tariff. - Discovery: hver
/api/*-response sender etLink: </api/openapi.json>; rel="describedby"header.
Endpoints
GET /api/now?area=DK1&mode=inkl_alt
Aktuel pris (DKK/kWh) for nuværende time + om en schedule-strategi siger ON eller OFF.
GET /api/prices?area=DK1&mode=inkl_alt[&date=YYYY-MM-DD]
24 timepriser for én dato (default i dag, dansk lokaltid). Historik tilbage til 2000.
GET /api/prices?area=DK1&start=YYYY-MM-DD&end=YYYY-MM-DD
Hele perioden i ét svar, op til 1150 døgn — tre år koster ét kald i stedet for tusind.
GET /api/schedule?area=DK1&strategy=cheapest_n&hours=6
Hele døgnets ON/OFF-plan for den valgte strategi (se Smart hjem-siden).
GET /api/forecast?area=DK1&mode=inkl_alt[&gln=…]
Prognose time for time for i dag og de næste 9 døgn — faktiske day-ahead-priser, hvor de er offentliggjort (type: actual), og ellers en maskinlæringsmodel med vejrprognoser (source: model).
Med mode=net_inkl_alt og gln lægges netselskabets nettarif til, som den er gældende på hver dags egen dato — så en prognose hen over et tarifskifte (1. oktober / 1. april) skifter ved midnat. Så er prognosen lig /api/prices på en offentliggjort dag.
Hvor meget kan du stole på den? Gennemsnitlig absolut fejl på spotprisen (DKK/MWh, ekskl. moms) i en tilbagetest over 486 dage (1. april 2025 – 30. juli 2026), pr. prognosedag D+h regnet fra den dag, kørslen laves (D+1 er allerede offentliggjort om eftermiddagen). Til sammenligning rammer et 4-ugers ugedagsgennemsnit ca. 35–38 % ved siden af.
| Dag | DK1 | DK2 |
|---|---|---|
| D+2 | 149 (23,3 %) | 165 (25,2 %) |
| D+3 | 155 (24,2 %) | 169 (25,9 %) |
| D+4 | 166 (25,9 %) | 180 (27,5 %) |
| D+5 | 179 (27,9 %) | 192 (29,4 %) |
| D+6 | 190 (29,7 %) | 203 (31,0 %) |
| D+7 | 195 (30,4 %) | 207 (31,8 %) |
| D+8 | 195 (30,4 %) | 207 (31,7 %) |
| D+9 | 197 (30,7 %) | 211 (32,2 %) |
Arkiv: GET /api/forecast/archive?area=DK1 lister de kørsler, der er gemt; med &issued=2026-10-06 får du den kørsel, som den lød dengang (rå spotpris i DKK/MWh ekskl. moms). Så kan du selv måle fejlen pr. horisont på de prognoser, der faktisk blev leveret. Arkivet starter 6. oktober 2026.
min og max er modellens P10 og P90, udvidet til at dække 80 % af udfaldene i tilbagetest — ca. hver femte time falder uden for. På source: heuristic-dage er det i stedet laveste og højeste pris for samme ugedag og time de seneste fire uger. model i svaret angiver kørslen (generatedAt) bag prognosedagene.
GET /api/shelly/tariff?area=DK1&mode=inkl_alt
Tibber-kompatibel JSON med i dag + i morgen — drop-in til alle Tibber-aware integrationer.
GET /api/supplierlookup?lat=…&lng=…
Reverse-geocode af koordinater til adresse + netselskab (CORS-fri proxy over OpenStreetMap Nominatim + GPD).
GET /api/raw/{prices,encharges,tariff,tariffs}
Rå EDS-data (DayAheadPrices, DatahubPricelist) som CORS-proxy. Mest for udviklere der vil egne beregninger.
GET /api/openapi.json
Maskin-læsbar OpenAPI 3.1-spec for alle endpoints — denne side i JSON-form.
Priser, afgifter og tariffer
mode bestemmer, hvad der er lagt oven i spotprisen. Et ukendt mode afvises med 400 — det bliver ikke tavst til spot inkl. moms.
spot_ex/spot_inkl— ren spotpris, uden og med moms.inkl_alt— spot + systemtarif + transmissionstarif + elafgift, inkl. moms.inkl_alt_minus— som ovenfor, men uden elafgift.net_inkl_tarif/net_inkl_alt— med nettarif;net_inkl_alter den fulde forbrugerpris. Krævergln.inkl_alt_elvarme/net_inkl_alt_elvarme— bruger den reducerede elafgift for forbrug over 4.000 kWh/år i elopvarmede boliger. Forskellen er stor: 0,8 mod 72,0 øre/kWh i 2025.
Nettariffen hentes for den dato, der spørges om — med tidsbånd og sommer-/vinterforskel. Netselskabet vælges med gln; bemærk at fx N1 optræder som tre selvstændige netområder med hver sin GLN og hver sine satser. Svaret oplyser grid_tariff: hourly, flat for selskaber der kun udgiver én døgnsats, eller null hvis selskabet ikke har udgivet nogen — og så er dagens priser null frem for at mangle tariffen i tavshed.
charges afgør, hvilke satser en historisk dato prissættes med. historical (default) bruger de satser, der faktisk gjaldt på datoen. current omregner samme prisforløb til nutidens satser — nyttigt til at sammenligne år, men det er ikke, hvad timen kostede.
Eksempel — curl
curl -sS "https://elpriser.org/api/now?area=DK1&mode=inkl_alt"
Returnerer:
{
"on": true,
"price": 1.23,
"hour": 14,
"area": "DK1",
"mode": "inkl_alt",
"strategy": "cheapest_n"
}
Brug i LLM / AI-agent
Spørg en LLM "hvad er elprisen lige nu i Danmark?" og giv den denne URL:
https://elpriser.org/api/now?area=DK1&mode=inkl_alt
For Claude Desktop, ChatGPT plugins, og MCP-klienter kan du pege på OpenAPI-spec'en på /api/openapi.json — den indeholder alle endpoints og parametre.
🔌 MCP-server (open source)
Vil du give Claude Desktop direkte adgang til danske elpriser? Brug elpriser-mcp — en gratis Model Context Protocol-server. Tilføj til din claude_desktop_config.json:
{
"mcpServers": {
"elpriser": { "command": "npx", "args": ["-y", "elpriser-mcp"] }
}
}
Så kan du spørge "hvornår er strøm billigst i morgen?" og få live-svar. Kode + dokumentation på GitHub.
📦 JavaScript-klient (open source)
Bygger du en app eller et dashboard? elpriser-client er en lille, typet, zero-dependency JS/TS-klient (browser + Node):
import { createElpriserClient } from 'elpriser-client';
const elpriser = createElpriserClient();
const nu = await elpriser.now({ area: 'DK1' });
🤗 Historiske datasæt (Hugging Face)
Skal du træne en model eller lave analyse? Vi har samlet historiske elpriser og produktionsdata for Danmark og nabolandene (Norge, Sverige, Finland, Holland, Tyskland) som Parquet-filer på Hugging Face — frit tilgængeligt under CC BY 4.0.
🤗 Prognosemodel (Hugging Face)
De LightGBM-modeller der driver prognosen for DK1/DK2 — gentrænet og genudgivet dagligt — ligger åbent på Hugging Face med fuld model-kort, features og efterbehandlingsformler.
Vilkår
- Gratis for ethvert brug (kommercielt eller ej)
- Datakilde: Energi Data Service (Energinet) — egen licens
- Best-effort uptime — ingen SLA. Edge-cacher graceful, så kortvarige udfald hos EDS påvirker ikke API'et
- Spørgsmål / fejl: brug GitHub-issues (link i footeren) eller skriv direkte