Static JSON API for Austrian electricity grid fees according to the SNE-V regulation, published by E-Control Austria. Served via GitHub Pages.
Base URL: https://spotprices.github.io/gridfees
To get the current grid fees for a residential customer in Wien:
GET /v1/latest.json
Find the entry with "region": "Wien" in netzebene_7_nicht_gemessen (non-metered low voltage — the typical household connection).
| Endpoint | Description |
|---|---|
/index.json |
API directory with metadata and amendment list |
/v1/latest.json |
Current (newest) amendment |
/v1/periods.json |
Validity date ranges mapping each amendment to its effective period |
/v1/all.json |
All amendments bundled with metadata (~650 KB) |
/v1/amendments/{id}.json |
Individual amendment (e.g. 2026.json, 2023_2.json) |
/v1/schema.json |
JSON Schema for amendment files |
/v1/all.schema.json |
JSON Schema for all.json |
Fetch /v1/periods.json. Each entry has valid_from and valid_to (ISO dates). The current amendment has "valid_to": null.
{
"id": "2026", "valid_from": "2026-01-01", "valid_to": null,
"url": "amendments/2026.json"
}Note: 2023 is split into two periods — 2023_1 (Jan-Feb) and 2023_2 (Mar-Dec).
| Key | Voltage | Typical customer |
|---|---|---|
netzebene_1 |
220/380 kV | Large transmission |
netzebene_2 |
HV/EHV transform | |
netzebene_3 |
110 kV | Large industrial |
netzebene_4 |
HV/MV transform | |
netzebene_5 |
1-36 kV | Medium industrial |
netzebene_6 |
MV/LV transform | |
netzebene_7_gemessen |
0.4 kV, metered | Commercial, larger residential with demand metering |
netzebene_7_nicht_gemessen |
0.4 kV, non-metered | Typical household |
netzebene_7_unterbrechbar |
0.4 kV, interruptible | Heat pumps, storage heaters |
Most residential customers are on netzebene_7_nicht_gemessen.
Each network level contains an array of region entries. Match by region name (Bundesland or grid operator area).
Regions for NE3-6 include both Bundesländer and specific city grid operators (e.g. "Klagenfurt", "Linz", "Graz", "Innsbruck"). NE7 additionally has "Kleinwalsertal" (special tariff zone).
Some NE5/NE6 regions have "unterbrechbar" variants (e.g. "Burgenland unterbrechbar").
Each entry has two main fee components:
leistungspreis_cent_per_kw— demand charge (capacity), in cent/kW per yeararbeitspreis_cent_per_kwh— energy charge, in cent/kWh (see format variants below)
netzverlustentgelt_cent_per_kwh— in cent/kWh (same format variants as arbeitspreis)
The energy charge (arbeitspreis_cent_per_kwh) has two formats depending on the amendment year. Check which keys are present to determine the format.
NE3-6:
{ "AP": 0.84 }NE7 (gemessen, nicht gemessen, unterbrechbar):
{ "AP": 5.83, "SNAP": 4.664 }- AP = Arbeitspreis (flat rate, all hours)
- SNAP = Sommer-Nieder-Arbeitspreis (reduced summer rate: Apr 1 - Sep 30, 10:00-16:00). SNAP is always 80% of AP. Only present on NE7.
NE3-7:
{ "SHT": 0.72, "SNT": 0.72, "WHT": 0.72, "WNT": 0.72 }- SHT = Sommer-Hochtarifzeit (summer peak, Apr-Sep)
- SNT = Sommer-Niedertarifzeit (summer off-peak, Apr-Sep)
- WHT = Winter-Hochtarifzeit (winter peak, Oct-Mar)
- WNT = Winter-Niedertarifzeit (winter off-peak, Oct-Mar)
The peak/off-peak hour boundaries are not defined in the SNE-V itself — they are set by each grid operator. The four values may be identical (especially in later years) or genuinely different (common in 2015-2022).
ap = entry["netznutzungsentgelt"]["arbeitspreis_cent_per_kwh"]
if "AP" in ap:
# Simple format
else:
# Seasonal format (SHT/SNT/WHT/WNT)The same format logic applies to netzverlustentgelt_cent_per_kwh.
These levels use a different structure with nettokomponente (Leistungspreis + Arbeitspreis) and bruttokomponente_cent_per_kwh. They are not seasonal — always single values.
NE2 Tirol and Vorarlberg have "note": "sind in den Tarifen der Ebene 3 enthalten" instead of fee values (their fees are included in NE3).
Some regions in netzebene_7_nicht_gemessen have dual-tariff (Doppeltarif) variants. These entries have:
"region": "Steiermark - Doppetarif"(note the typo "Doppetarif" comes from the source data)arbeitspreis_cent_per_kwhwithAPandSNAPset tonull- Additional fields:
doppeltarif_tagarbeitspreis_cent_per_kwh(day rate) anddoppeltarif_nachtarbeitspreis_cent_per_kwh(night rate)
Top-level field netzverlustentgelt_einspeiser_cent_per_kwh (single number, all network levels). Present from 2024 onwards. Applies to energy fed into the grid (e.g. solar). Feed-in connections up to 5 MW are exempt.
In the 2. Novelle 2023 only, per-region feed-in fees exist as netzverlustentgelt_einspeiser_cent_per_kwh on individual NE3-6 entries.
For a typical household (NE7 nicht gemessen, simple format):
Annual grid fee =
leistungspreis_cent_per_kw × peak_demand_kw
+ arbeitspreis_AP_cent_per_kwh × non_snap_kwh
+ arbeitspreis_SNAP_cent_per_kwh × snap_kwh
+ netzverlustentgelt_cent_per_kwh × total_kwh
Where SNAP hours are April-September, 10:00-16:00. All other hours use the AP rate.
For the seasonal format, sum each seasonal component with the corresponding consumption for that season/time window.
- Leistungspreis: cent/kW (per year)
- Arbeitspreis: cent/kWh
- Netzverlustentgelt: cent/kWh
- Bruttokomponente (NE1 only): cent/kWh
- All values are net (without VAT/taxes/surcharges)
E-Control Austria: https://www.e-control.at/industrie/strom/strompreis/systemnutzungsentgelte
The data is extracted from the official "Entgelte SNE-V" Excel file published by E-Control.