An EIC (Energy Identification Code) is the 16-character identifier ENTSO-E uses for bidding zones, control areas, market parties and physical objects — for example 10Y1001A1001A82H for Germany–Luxembourg (DE-LU) and 10YCZ-CEPS-----N for Czechia. This page lists the EIC codes of 44 European bidding zones, plus the documentType and processType codes an ENTSO-E API query needs.
Updated
Every ENTSO-E query needs a domain parameter, and every domain parameter is an EIC code. This is the lookup table, plus the document and process types you will need next. Click a code to copy it.
An EIC — Energy Identification Code — is the 16-character identifier used across European electricity and gas markets for areas, market parties and physical objects. ENTSO-E runs the scheme and issues codes through local issuing offices. The first two characters name the issuing office, the third says what kind of object it is (Y for areas such as bidding zones and control areas, X for market parties, W for resources such as power plants), and the last character is a check character. So 10YCZ-CEPS-----N is an area code issued centrally by ENTSO-E: the Czech bidding zone.
| 3rd char | Object type | Examples |
|---|---|---|
X | Party | Market participants, TSOs, traders, balance responsible parties |
Y | Area or domain | Bidding zones, control areas, countries, scheduling areas |
Z | Measurement point | Metering points |
W | Resource object | Generating units, power plants, consumption units |
T | Tie line | Interconnectors between areas |
V | Location | Locations such as a point on the network |
A | Substation | Substations |
You meet them in every ENTSO-E query and on the Transparency Platform; the bidding zone codes are listed below.
| Zone | Short | EIC code | Note |
|---|---|---|---|
| Austria | AT | 10YAT-APG------L | Separated from DE-AT-LU on 1 Oct 2018 |
| Belgium | BE | 10YBE----------2 | |
| Bulgaria | BG | 10YCA-BULGARIA-R | |
| Croatia | HR | 10YHR-HEP------M | |
| Czechia | CZ | 10YCZ-CEPS-----N | |
| Denmark 1 | DK1 | 10YDK-1--------W | Synchronous with continental Europe |
| Denmark 2 | DK2 | 10YDK-2--------M | Synchronous with the Nordic system |
| Estonia | EE | 10Y1001A1001A39I | |
| Finland | FI | 10YFI-1--------U | |
| France | FR | 10YFR-RTE------C | |
| Germany–Luxembourg | DE-LU | 10Y1001A1001A82H | One zone, four control areas |
| Germany–Austria–Lux (historic) | DE-AT-LU | 10Y1001A1001A63L | Valid until 30 Sep 2018; needed for older series |
| Great Britain | GB | 10YGB----------A | Half-hourly settlement periods |
| Greece | GR | 10YGR-HTSO-----Y | |
| Hungary | HU | 10YHU-MAVIR----U | |
| Ireland (SEM) | IE-SEM | 10Y1001A1001A59C | All-island market with NI |
| Italy North | IT-North | 10Y1001A1001A73I | |
| Italy Centre-North | IT-CNorth | 10Y1001A1001A70O | |
| Italy Centre-South | IT-CSouth | 10Y1001A1001A71M | |
| Italy South | IT-South | 10Y1001A1001A788 | Calabria split off in 2021 |
| Italy Calabria | IT-Calabria | 10Y1001C--00096J | Zone created in 2021 |
| Italy Sicily | IT-Sicily | 10Y1001A1001A75E | Island, frequently decoupled |
| Italy Sardinia | IT-Sardinia | 10Y1001A1001A74G | Island, frequently decoupled |
| Latvia | LV | 10YLV-1001A00074 | |
| Lithuania | LT | 10YLT-1001A0008Q | |
| Montenegro | ME | 10YCS-CG-TSO---S | |
| Netherlands | NL | 10YNL----------L | |
| North Macedonia | MK | 10YMK-MEPSO----8 | |
| Norway 1 (Oslo) | NO1 | 10YNO-1--------2 | |
| Norway 2 (Kristiansand) | NO2 | 10YNO-2--------T | |
| Norway 3 (Trondheim) | NO3 | 10YNO-3--------J | |
| Norway 4 (Tromsø) | NO4 | 10YNO-4--------9 | |
| Norway 5 (Bergen) | NO5 | 10Y1001A1001A48H | |
| Poland | PL | 10YPL-AREA-----S | 15-minute settlement since the 2024 reform |
| Portugal | PT | 10YPT-REN------W | Coupled with Spain as MIBEL |
| Romania | RO | 10YRO-TEL------P | |
| Serbia | RS | 10YCS-SERBIATSOV | |
| Slovakia | SK | 10YSK-SEPS-----K | |
| Slovenia | SI | 10YSI-ELES-----O | Coupled with IT, AT, HR, HU |
| Spain | ES | 10YES-REE------0 | Islands are separate systems |
| Sweden 1 (Luleå) | SE1 | 10Y1001A1001A44P | |
| Sweden 2 (Sundsvall) | SE2 | 10Y1001A1001A45N | |
| Sweden 3 (Stockholm) | SE3 | 10Y1001A1001A46L | |
| Sweden 4 (Malmö) | SE4 | 10Y1001A1001A47J | Often far above SE1 |
| Switzerland | CH | 10YCH-SWISSGRIDZ | Not in EU market coupling |
What kind of data you are asking for. Pass as documentType.
| Code | Meaning | Note |
|---|---|---|
A44 | Price document | Day-ahead prices |
A65 | System total load | A01 forecast · A16 realised |
A69 | Wind and solar forecast | A01 day-ahead · A18 intraday |
A71 | Generation forecast | |
A73 | Actual generation | |
A75 | Actual generation per type | Counterpart to A69 |
A77 | Production unavailability | |
A80 | Generation unavailability | Outages, urgent market messages |
A83 | Activated balancing energy | aFRR / mFRR volumes |
A84 | Activated balancing prices | |
A85 | Imbalance prices | |
A86 | Imbalance volumes | |
A89 | Contracted reserve prices |
Which run of the data. Pass as processType — the same document type means different things depending on it.
| Code | Meaning |
|---|---|
A01 | Day ahead |
A16 | Realised |
A18 | Intraday total |
A31 | Week ahead |
A32 | Month ahead |
A33 | Year ahead |
A40 | Intraday process |
A46 | Replacement reserve |
A47 | Manual frequency restoration reserve (mFRR) |
A51 | Automatic frequency restoration reserve (aFRR) |
A52 | Frequency containment reserve (FCR) |
Depending on the document, the domain parameter is in_Domain, outBiddingZone_Domain or controlArea_Domain. Using the wrong one returns an empty response rather than an error, which is the most common reason a query “does not work”. We cover that and the rest in the guide to the ENTSO-E API.
An EIC (Energy Identification Code) is a 16-character identifier used in European electricity and gas markets for areas, market parties and physical objects. ENTSO-E runs the scheme; codes are issued by its central issuing office and by local issuing offices.
Always 16 characters: two for the issuing office, one for the object type (for example Y for an area, X for a party), twelve for the identifier itself, padded with hyphens, and one check character at the end.
10 is the ENTSO-E central issuing office and Y means the code identifies an area, such as a bidding zone, control area or country. That is why almost all bidding zone codes start with 10Y.
The German-Luxembourg bidding zone, used for day-ahead prices, is 10Y1001A1001A82H. Germany as a country or control area is 10Y1001A1001A83F. Mixing them up is a common reason an ENTSO-E query returns nothing.
Codes of market parties (X codes) are in the list of approved EIC codes that ENTSO-E publishes on its website, and with the local issuing office of the country, usually the TSO.
Compiled from the ENTSO-E Transparency Platform, last checked 1 November 2026. Codes change when zones are created or merged — the DE-AT-LU and Italian Calabria entries are the usual traps. progrunners is not affiliated with ENTSO-E.