Elhub — Norwegian energy data
The Elhub Energy Data API v0 provides open, aggregated figures for the Norwegian power market: production per group, consumption per group and exchange per MBA, all at hourly resolution per price area. Migrated to a Firebase Function with a Firestore TTL cache (7d fresh / 30d archive) for cost control and low latency. Used in audit (A), real estate (G) and ESG/Scope 3 surfaces.
—
Data volume
Daily
Updates
4
MCP tools
{
"priceArea": "NO1",
"series": [
{
"startTime": "2026-06-16T00:00:00+02:00",
"endTime": "2026-06-16T01:00:00+02:00",
"quantityKwh": 1842500,
"group": "consumption",
"exchangeInKwh": null,
"exchangeOutKwh": null
}
]
}MCP integration
API endpoints
/price-areasPrisområder NO1–NO5 med etikett
Show curl example
# GET https://data.ketl.no/api/connectors/elhub/price-areas
curl \
-H "Accept: application/json" \
"https://data.ketl.no/api/connectors/elhub/price-areas"Authenticated call — add one of these headers: x-api-key: ketl_… · Authorization: Bearer … — See the full reference in the documentation.
/productionProduksjon per gruppe per time (area, start, end)
- area required
- Prisområde
area=NO1 - start required
- Startdato (YYYY-MM-DD). NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
start=2024-01-01 - end required
- Sluttdato (YYYY-MM-DD), eksklusiv. NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
end=2024-01-07 - priceArea optional
- Alias for `area` (#2178). Enten denne eller `area` må være med; `area` vinner hvis begge er gitt.
priceArea=NO1 - startDate optional
- Alias for `start` (#2178). `start` vinner hvis begge er gitt.
startDate=2024-01-01 - endDate optional
- Alias for `end` (#2178). `end` vinner hvis begge er gitt.
endDate=2024-01-07
Show curl example
# GET https://data.ketl.no/api/connectors/elhub/production?area=NO1&start=2024-01-01&end=2024-01-07
curl \
-H "Accept: application/json" \
"https://data.ketl.no/api/connectors/elhub/production?area=NO1&start=2024-01-01&end=2024-01-07"Authenticated call — add one of these headers: x-api-key: ketl_… · Authorization: Bearer … — See the full reference in the documentation.
/consumptionForbruk per gruppe per time (area, start, end)
- area required
- Prisområde
area=NO1 - start required
- Startdato (YYYY-MM-DD). NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
start=2024-01-01 - end required
- Sluttdato (YYYY-MM-DD), eksklusiv. NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
end=2024-01-07 - priceArea optional
- Alias for `area` (#2178). Enten denne eller `area` må være med; `area` vinner hvis begge er gitt.
priceArea=NO1 - startDate optional
- Alias for `start` (#2178). `start` vinner hvis begge er gitt.
startDate=2024-01-01 - endDate optional
- Alias for `end` (#2178). `end` vinner hvis begge er gitt.
endDate=2024-01-07
Show curl example
# GET https://data.ketl.no/api/connectors/elhub/consumption?area=NO1&start=2024-01-01&end=2024-01-07
curl \
-H "Accept: application/json" \
"https://data.ketl.no/api/connectors/elhub/consumption?area=NO1&start=2024-01-01&end=2024-01-07"Authenticated call — add one of these headers: x-api-key: ketl_… · Authorization: Bearer … — See the full reference in the documentation.
/exchangeUtveksling per MBA per time (area, start, end)
- area required
- Prisområde
area=NO1 - start required
- Startdato (YYYY-MM-DD). NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
start=2024-01-01 - end required
- Sluttdato (YYYY-MM-DD), eksklusiv. NB: avregnede data publiseres med etterslep. Et døgn som ikke er publisert gir 200 med tom observations — ikke det samme som «ingen produksjon».
end=2024-01-07 - priceArea optional
- Alias for `area` (#2178). Enten denne eller `area` må være med; `area` vinner hvis begge er gitt.
priceArea=NO1 - startDate optional
- Alias for `start` (#2178). `start` vinner hvis begge er gitt.
startDate=2024-01-01 - endDate optional
- Alias for `end` (#2178). `end` vinner hvis begge er gitt.
endDate=2024-01-07
Show curl example
# GET https://data.ketl.no/api/connectors/elhub/exchange?area=NO1&start=2024-01-01&end=2024-01-07
curl \
-H "Accept: application/json" \
"https://data.ketl.no/api/connectors/elhub/exchange?area=NO1&start=2024-01-01&end=2024-01-07"Authenticated call — add one of these headers: x-api-key: ketl_… · Authorization: Bearer … — See the full reference in the documentation.