Grid Tariff API
Grid Tariff API ger dig Göteborg Energi Nät AB:s elnätstariffer i maskinläsbart format. Varje tariff beskriver alla avgifter som en kund betalar för sin elnätsanslutning, och exakt hur varje avgift beräknas. Med det kan du till exempel:
- visa kunder vilka tariffer som finns och vad de kostar,
- räkna ut vad en kunds elnätsavgift blir utifrån förbrukningen,
- flytta elanvändning, som elbilsladdning eller uppvärmning, till timmar när elnätsavgiften är låg.
Bassökväg: /gridtariff/v0, på bas-URL:en för UAT eller produktion (se Kom igång).
En gemensam branschstandard
API:et följer den svenska datastandarden för elnätstariffer (Eltariff API). Standarden tas fram av svenska elnätsföretag tillsammans med fordonstillverkare och aktörer inom smart laddning, i ett projekt som koordineras av RISE Research Institutes of Sweden och finansieras av Energimyndigheten.
Elnätsföretag som inför standarden publicerar sina tariffer i samma format, så kod som du skriver för Göteborg Energi kan även användas mot dem.
- elnätsavgift.se: om standarden och projektet.
- Eltariff API-specifikationen på GitHub: OpenAPI-specifikationen och dess dokumentation (på engelska).
Göteborg Energi implementerar för närvarande version 0.3.2 av standarden. GET /info visar vilken version API:et implementerar.
Endpoints
| Metod och sökväg | Returnerar |
|---|---|
GET /info | Information om API:et: standardversion, nätföretag och när tariffdatan senast uppdaterades. |
GET /tariffs/ | Alla tariffer, plus de kalendermönster som de hänvisar till. |
GET /tariffs/{id} | En tariff, utifrån dess ID (ett UUID), plus kalendermönstren. |
GET /prices?product={product} | Timpriser för en tariff med dynamisk effektavgift. |
GET /prices?componentId={id} | Samma sak, men identifierad med priskomponentens ID. |
/prices tar även emot ett tidsintervall, se Timpriser.
Standarden definierar även POST /tariffs/search, för att hitta tariffen för en viss mätpunkt. Den erbjuder Göteborg Energi inte ännu.
Tariffer
En tariff är prislistan för en typ av elnätsanslutning, till exempel GNM63, "Småhus och företag, Max 63A". De viktigaste fälten:
| Fält | Betydelse |
|---|---|
id | Unikt ID för den här versionen av tariffen. |
product | Produktkod, t.ex. GNM63. Samma kod kan förekomma flera gånger, med olika giltighetsperioder. |
name, description | Namn och beskrivning. |
validPeriod | När versionen gäller: från och med fromIncluding till, men inte med, toExcluding. |
direction | consumption för el som tas ut från nätet, production för el som matas in på nätet. |
billingPeriod | Hur ofta kunden faktureras. P1M betyder varje månad. |
timeZone | Tidszon för alla tider i tariffen: Europe/Stockholm. |
fixedPrice, energyPrice, powerPrice | De tre typerna av avgifter, som beskrivs nedan. En tariff kan ha en, två eller alla tre. |
När tarifferna ändras, till exempel vid ett nytt år, returnerar API:et både den nuvarande och den kommande versionen. Använd validPeriod för att välja den version som gäller ett visst datum.
Avgifter och priskomponenter
En tariffs totala elnätsavgift är summan av dess tre avgiftsgrupper:
| Grupp | Vad kunden betalar för | Vanlig enhet |
|---|---|---|
fixedPrice | Att ha en elnätsanslutning (abonnemangsavgift). | SEK per år (pricedPeriod: "P1Y"), faktureras per billingPeriod. |
energyPrice | Mängden överförd el, inklusive energiskatt. | SEK per kWh |
powerPrice | Hur mycket effekt kunden använder samtidigt. | SEK per kW |
Varje grupp innehåller en eller flera komponenter. En komponent har ett price, en unit och en egen validPeriod, och type anger hur den används:
type | Betydelse |
|---|---|
public | Ett fast belopp per period. |
fixed | Ett fast pris per enhet, t.ex. per kWh. |
peak | Ett pris per kW som tillämpas på kundens högsta effektuttag ("toppar"), se nedan. |
dynamic | Ett pris som ändras varje timme. Priserna hämtas från /prices, se nedan. |
Alla priser anges både utan och med moms (priceExVat, priceIncVat), i currency (SEK).
Så beräknas kostnaden
Varje avgiftsgrupp har en costFunction som beskriver hur komponenterna ska kombineras:
costFunction | Betyder |
|---|---|
sum(price(c)) | Summera priserna för alla komponenter. |
sum(energy(c)*price(c)) | För varje komponent: använd energi (kWh) × pris. Summera sedan. |
sum(peak(c)*price(c)) | För varje komponent: kundens effekttopp (kW) × pris. Summera sedan. |
sum(power(h)*price(h)) | För varje timme: medeleffekt under timmen (kW) × timmens pris. Summera sedan. |
Effekttoppar
För peak-komponenter beskriver peakIdentificationSettings hur toppen mäts. Till exempel:
"peakIdentificationSettings": {
"peakFunction": "peak(main)",
"peakIdentificationPeriod": "P1D",
"peakDuration": "PT1H",
"numberOfPeaksForAverageCalculation": 3
}
Det betyder: effekten mäts som medelvärde per timme (PT1H), högst en topp räknas per dygn (P1D), och avgiften baseras på medelvärdet av de 3 högsta topparna under faktureringsperioden, alltså de tre högsta timmarna på tre olika dygn.
När en komponent gäller
Vissa komponenter gäller bara vissa tider, till exempel en högre effektavgift vardagar mellan 07:00 och 20:00. Det beskrivs av recurringPeriods:
"recurringPeriods": [
{
"reference": "main",
"frequency": "P1D",
"activePeriods": [
{
"fromIncluding": "07:00:00",
"toExcluding": "20:00:00",
"calendarPatternReferences": {
"include": ["weekdays"],
"exclude": ["holidays"]
}
}
]
}
]
Namnen i calendarPatternReferences hänvisar till de calendarPatterns som returneras tillsammans med tarifferna:
reference | Betydelse |
|---|---|
weekdays | Måndag till fredag (days 1–5) |
weekends | Lördag och söndag (days 6–7) |
holidays | Datumen som listas i dates |
En period från 00:00:00 till 00:00:00 omfattar hela dygnet.
Komponenter kan också vara säsongsberoende: deras egen validPeriod kan omfatta bara en del av tariffens giltighetsperiod, till exempel januari till mars.
Timpriser
Tariffer med dynamisk effektavgift har en komponent med "type": "dynamic" och en url som pekar på dess priser:
{
"name": "Timpris, effektavgift",
"type": "dynamic",
"unit": "kW",
"price": null,
"url": "/prices?product=GN6KWST"
}
Hämta priserna med:
curl "https://api.uat.goteborgenergi.cloud/gridtariff/v0/prices?product=GN6KWST"
{
"currency": "SEK",
"unit": "kW",
"actual": [
...
{
"created": "2026-10-13T14:00:05.252558+02:00",
"start": "2026-10-14T08:00:00+02:00",
"end": "2026-10-14T09:00:00+02:00",
"priceExVat": 0.1071127,
"priceIncVat": 0.1338909
},
...
],
"preview": [ ... ]
}
actualinnehåller fastställda priser. Det är de priser som gäller, och de ändras inte när de väl är fastställda.previewinnehåller uppskattade priser för de 5 dagarna efter de fastställda. De är en indikation utifrån vad vi vet i dag, inget löfte. Uppskattningarna räknas om varje dag, och det fastställda priset för en timme kan skilja sig från den senaste uppskattningen. Använd dem för grov planering, aldrig för fakturering.- Varje timme har
startochend. Ett dygn har normalt 24 timmar, men 23 eller 25 de dagar då vi byter till och från sommartid.
Priset är per kW. Kostnaden för en timme är kundens medeleffekt under timmen × timmens pris.
När priserna publiceras
Nya priser beräknas och publiceras varje dag, senast klockan 15:00 svensk tid. Varje publicering:
- Fastställer priserna för nästa dygn (alla dess timmar) och lägger till dem i
actual. De beräknas helt på nytt, oberoende av de tidigare uppskattningarna för dygnet. - Räknar om uppskattningarna för de 5 dagarna därefter, i
preview.
Till exempel en publicering på måndag klockan 15:00:
| Omfattar | Status | |
|---|---|---|
actual | Tisdag | Fastställt: priset som kunden betalar |
preview | Onsdag till söndag | Uppskattat: räknas om på tisdag klockan 15:00 |
Hämta priserna efter 15:00 för att planera nästa dygn.
Välja tidsperiod
Utan parametrar returnerar /prices de fastställda priserna från och med i dag och uppskattningarna efter dem. För att hämta andra perioder:
| Parameter | Exempel | Returnerar |
|---|---|---|
date | date=2026-10-14 | Ett dygn. Timmarna returneras i actual eller preview, beroende på om dygnets priser är fastställda. |
fromIncluding, toExcluding | fromIncluding=2026-10-12T00:00:00+02:00&toExcluding=2026-10-14T00:00:00+02:00 | Ett tidsintervall. Båda värdena är tidpunkter med UTC-förskjutning. Koda + som %2B i URL:en. |
Historiska priser
- Produktion har priser från och med den dag då timpriserna lanseras. Det finns ingen historik från tiden före.
- UAT har historiska priser från 28 september 2021 till slutet av 2025, så att du kan testa med realistisk data. Se dem i prishistoriken.
Fel
| Status | När |
|---|---|
400 Bad Request | En parameter saknas eller är ogiltig, till exempel /prices utan product eller componentId, ett ogiltigt date, eller ett tariff-ID som inte är ett UUID. |
404 Not Found | Det finns inga priser för angiven produkt eller komponent. |
429 Too Many Requests | För många anrop på kort tid. Vänta en minut och försök igen. |
Se Kom igång för felformatet.
Nästa steg
- Hitta de billigaste timmarna för att köra apparater när elnätsavgiften är låg.
- Beräkna elnätsavgiften för en månad utifrån en tariff och förbrukning per timme.
- Använd timpriser i Home Assistant.