# National Energy Dashboard (NED)

The National Energy Dashboard is an initiative of Gasunie and TenneT. It shows how much electricity is generated (solar, onshore wind, offshore wind, per province and per offshore wind farm) and how much gas is used, with a forecast for the coming week and CO2 emissions. An API key is free after creating an account, but the terms only grant a non-transferable right of use. That is why there are no NED figures here; the chart comes from the CBS electricity balance.

- Publisher: Nationaal Energie Dashboard
- Area: Netherlands · Finest detail: energy carrier per province or wind farm
- Period: deels vanaf januari 2016 · Refreshed: live
- Access: Free key · Licence: Algemene voorwaarden NED (geen open licentie; bronvermelding met logo en link verplicht)
- Join keys: point (gebied of windpark), type (energiedrager), granularity (10 minuten tot jaar), validfrom (tijd)
- Status: grijs
- URL: https://ned.nl/nl/api

## What can you do with it?
- **How much power comes from sun and wind right now?.** The utilizations endpoint gives generation per energy carrier in kW and kWh, down to ten minutes. Compare today's solar and wind with a year ago.
- **Offshore wind is growing fast.** According to CBS, offshore wind farms produced 15.6 billion kWh in 2025, 47 times as much as in 2007 (chart on this page). NED gives the same per farm and per quarter hour.
- **Which province generates the most solar power?.** For solar and onshore wind NED splits generation per province. Divide by population or area from the CBS figures.

## How to process it
1. **Account and key.** Create an account on ned.nl, go to the API tab under 'my account' and create a key there. Without a key api.ned.nl returns a 401 ("Full authentication is required").
   `https://ned.nl/nl/api`
2. **Request generation.** /v1/utilizations with codes: point=0 (Netherlands), type=2 (solar), granularity=3 (10 minutes), granularitytimezone=1 (UTC), classification=2 (current), activity=1 (generation), plus validfrom[after] and validfrom[strictly_before]. The key goes in the X-AUTH-TOKEN header; the response is JSON-LD. This is the example from the NED manual.
   `curl -g -H "X-AUTH-TOKEN: <sleutel>" -H "Accept: application/ld+json" "https://api.ned.nl/v1/utilizations?point=0&type=2&granularity=3&granularitytimezone=1&classification=2&activity=1&validfrom[strictly_before]=2020-11-17&validfrom[after]=2020-11-16"`
3. **Open figures if you do not want a key.** CBS publishes monthly figures for the same energy carriers in the electricity balance (84575NED): solar, onshore wind, offshore wind, imports and exports.
   `https://opendata.cbs.nl/ODataApi/OData/84575NED/TypedDataSet?$filter=substringof('JJ',Perioden)&$select=Perioden,WindenergieOpZee_14,Zonnestroom_15&$format=json`

## Interesting combinations
- How much solar power does a sunny day deliver? → [knmi-daggegevens](https://www.opendataindex.nl/en/bron/knmi-daggegevens.md) via datum. Compare daily solar generation with KNMI sunshine duration (SQ) and radiation (Q).
- How close to capacity do offshore wind farms run? → [emodnet](https://www.opendataindex.nl/en/bron/emodnet.md) via naam van het windpark. Divide the generation per wind farm by the capacity from EMODnet. That gives the capacity factor per farm.

## Similar sources
- [tennet](https://www.opendataindex.nl/en/bron/tennet.md): How the grid operator keeps the grid in balance (imbalance prices, reserve power), per quarter hour; also with a key and strict terms.
- [cbs-statline](https://www.opendataindex.nl/en/bron/cbs-statline.md): Open monthly and annual figures on generation and consumption, no hourly or quarter-hour values and no forecast.
- [our-world-in-data](https://www.opendataindex.nl/en/bron/our-world-in-data.md): The Dutch electricity mix next to other countries, per year.

## What to watch out for
- **No open licence.** Under article 8 of the general terms you get a non-exclusive, non-transferable right of use and may not grant sublicences. When you use the data, the NED logo with a link to ned.nl is required.
- **Account required.** You create the key yourself in your NED account; anonymously you get no further than the documentation.
- **Not tested ourselves.** We did not create an account. The content here comes from ned.nl (API page, manual, terms) on 16 October 2026. Tested: without a key 401, with an invalid key in X-AUTH-TOKEN 403 ("Invalid or expired API key").
- **200 requests per 5 minutes.** According to the manual the rate limit is 200 requests per 5 minutes.
- **Old address no longer works.** Older examples use api.netanders.io; that address is no longer in use. Use api.ned.nl/v1.

## API (REST (API Platform: JSON-LD/Hydra, JSON, CSV, XML))

- Base: https://api.ned.nl/v1
- Access: Create an account on ned.nl, go to the API tab under 'my account' and create a key yourself. Send it in the X-AUTH-TOKEN header. Without a key 401 ("Full authentication is required"), also for the code lists; with an invalid key 403. Only the specification (/v1/docs.json) is open. (tested)
- Formats: jsonld, json, hal+json, vnd.api+json, csv, xml, html
- Filtering: API Platform filters as query parameters: exact codes (also as a list with point[]=0&point[]=1) and date filters with validfrom[after|before|strictly_after|strictly_before].; =, [], after, strictly_after, before, strictly_before, order

### Endpoints
- `GET /utilizations`: The figures: generation or consumption per area, energy carrier and time slot, with capacity (kW), volume (kWh), utilisation and CO₂. Current and forecast.
- `GET /utilizations/{id}`: One record.
- `GET /points`: Areas: the Netherlands, provinces, offshore wind and individual wind farms (filters identifier, name, parentpoints, childpoints, validfrom).
- `GET /types`: Energy carriers (solar, wind, offshore wind, natural gas, biomass …).
- `GET /granularities`: Time slots: 10 minutes, quarter hour, hour, day, month, year.
- `GET /granularity_time_zones`: Time zones for the slot: UTC or Europe/Amsterdam.
- `GET /activities`: Type of activity: generation, consumption, import, export, storage.
- `GET /classifications`: Forecast or current.

### Parameters
- `point`: Area: 0 Netherlands, 1–12 the provinces (1 Groningen … 12 Limburg), 14 offshore wind, 28–36 wind farms (28 Luchterduinen, 29 Prinses Amalia, 30 Egmond aan Zee, 31 Gemini, 33 Borssele I&II, 34 Borssele III&IV, 35 Hollandse Kust Zuid, 36 Hollandse Kust Noord). (from the description)
- `type`: Energy carrier, e.g. 0 all, 1 wind, 2 solar, 17 offshore wind, 18 gas power, 19 coal, 20 nuclear, 23 natural gas, 27 electricity mix, 59 electricity load. (from the description)
- `granularity`: 3 = 10 minutes, 4 = quarter hour, 5 = hour, 6 = day, 7 = month, 8 = year. (from the description)
- `granularitytimezone`: 0 = UTC, 1 = CET (Europe/Amsterdam). Daily, monthly and yearly figures only exist with 1; with 0 you get nothing back. (from the description)
- `classification`: 1 = forecast, 2 = current. (from the description)
- `activity`: 1 generation, 2 consumption, 3 import, 4 export, 5 storage in, 6 storage out, 7 storage. (from the description)
- `validfrom[after] / [strictly_after] / [before] / [strictly_before]`: Choose the period; use -g with curl because of the brackets. (from the description)
- `order[validfrom]`: Order by time. (from the description)
- `page / itemsPerPage`: Paging: page starts at 1; itemsPerPage default 144 (one day of 10-minute values), at most 200. (from the description)

### Fields of a utilization (per specification and manual; not seen ourselves) (8)
`point / type / granularity / granularitytimezone / activity / classification` IRI, `capacity` getal, `volume` getal, `percentage` getal, `emission` getal, `emissionfactor` getal, `validfrom / validto` datetime, `lastupdate` datetime

### Limits and pitfalls
- 200 requests per 5 minutes per key. (from the description)
- At most 200 records per page; one day of 10-minute values is 144 records, one year over 52,000 (about 263 calls). (from the description)
- Terms (article 8): a non-exclusive, non-transferable right of use, no sublicences. When used, show the NED logo with a link to ned.nl. The key belongs to your account: don't share it. (experience)
- The manual contradicts itself on the time zone: in the table 0 = UTC and 1 = CET, but the example says 'Timezone 1 - UTC' and the example record points to /granularity_time_zones/0. Check with validfrom in the response. (from the description)
- The specification says 'only providing' for activity and 'only near-realtime' for classification, while the manual also lists consumption, import, export, storage and forecasts. We could not check this ourselves. (from the description)
- Historical values are sometimes recalculated (new source data or models); lastupdate then changes. Fetch a period again if you want to record it. (from the description)
- The old address api.netanders.io/v1 no longer works. Use api.ned.nl/v1. api.ned.nl has no robots.txt (404). (tested)
- Open alternative without a key: CBS table 84575NED (monthly electricity balance: solar, onshore and offshore wind, imports and exports). (experience)


## Examples with real figures (1)

For each example the finding, the reference date and the call that fetches exactly these figures.

- **Electricity from offshore wind farms (CBS electricity balance): 15.6 billion kWh in 2025, 47 times as much as in 2007** (2025). Table 84575NED. [Example](https://www.opendataindex.nl/en/voorbeeld/ned-wind-op-zee-cbs)
  - `https://opendata.cbs.nl/ODataApi/OData/84575NED/TypedDataSet?$filter=substringof('JJ'%2CPerioden)&$select=Perioden,WindenergieOpZee_14`
