oneapi
Sign in
Energie v1 / Balanţe energetice

Power plants: capacity and output

The six categories of power plant — thermal, hydro, nuclear, wind, solar and their total — with the installed capacity at year end (thousand kW) and the energy generated during the year (million kWh). 318 values, annually 1992–2024 (IND114A, IND118A).

⚠️ The two measures must not be divided into one another carelessly. Installed capacity is a stock at 31 December, generation is a flow across the whole year: a unit commissioned in November counts fully in capacity and barely at all in generation. A naively computed capacity factor comes out falsely low in commissioning years.

⚠️ Total is a row published by the source, not our sum. nivel marks it, so that it is not added on top of the categories.

GET
https://oneapi.ro/api/energie/v1/balante/centrale

Query parameters

NameTypeDescriptionAccepted values
masuraoptional string | null productie (default) or putere_instalata. putere_instalataproductie
categorieoptional string | null The slug of a plant category from the nomenclature. e.g. eoliana
de_laoptional string | null First year included, from 1992. e.g. 2010
pana_laoptional string | null Last year included. e.g. 2024

How it behaves

  • The six power plant categories — thermal, hydro, nuclear, wind, solar and their total — with installed capacity at year end (thousand kW) and energy generated during the year (million kWh). 318 values, annual 1992-2024 (IND114A, IND118A).
  • The two measures must not be divided into each other carelessly. Installed capacity is a stock at 31 December, generation is a flow across the whole year: a unit commissioned in November enters capacity in full and generation barely at all. A naively computed capacity factor comes out falsely low precisely in commissioning years.
  • Total is a row published by the source, not our sum. nivel marks it, so it is not added across categories.
  • Here, unlike the fuels, the total does equal the sum of categories: checked across all 33 years and both measures, the largest deviation is 1 thousand kW, i.e. rounding. It remains the source row, not ours.

What it is for

  • Track how wind and solar installed capacity grew after 2010.
  • Compare hydro output year on year, as a measure of water availability.
  • See the nuclear share of total generation, year by year.

Response structure

FieldTypeDescription
data.masura string productie ori putere_instalata.
data.serii[].categorie string Slugul categoriei de centrale.
data.serii[].nivel string total ori categorie — totalul nu se adună peste categorii.
data.serii[].um_denumire string Unitatea, după măsură: mii kW ori milioane kWh.
data.serii[].valori object An → valoare, ca text zecimal.
data.granularitate string The series step. For balances it is always anual: INS publishes the balance once a year.
data.de_la integer First year in the response.
data.pana_la integer Last year in the response.
data.filtre object The filters actually applied, so you can see what was read from the request.
data.ani array The years covered, in order — the keys inside valori.
data.serii[].um The unit-of-measure code.
data.serii[].ani_publicati integer How many years carry an actual value. The difference from the length of ani is the gaps in INS publication.
meta.sursa string The INS dataset the series comes from, with the source matrix.
meta.acoperire object The year range available in the database for this zone, regardless of the filter requested.
meta.serii_returnate integer How many series are in the response.
data.descriere_masura string What the chosen measure means.
data.serii[].categorie_denumire string The category name.
meta.nota_masuri string Which measures exist and how they differ.
meta.nota_total string Which rows are totals.
meta.nota_sen string The relationship with the real-time data in the sen zone.
meta.nota_lista string Where the category codes are.

Response examples

GEThttps://oneapi.ro/api/energie/v1/balante/centrale?masura=putere_instalata&de_la=2010
{
    "data": {
        "masura": "putere_instalata",
        "descriere_masura": "puterea instalată a grupurilor, la sfârşitul anului, în mii kW",
        "granularitate": "anual",
        "de_la": 2010,
        "pana_la": 2024,
        "filtre": {
            "masura": "putere_instalata"
        },
        "ani": [
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "categorie": "eoliana",
                "categorie_denumire": "Eoliana",
                "nivel": "categorie",
                "um_denumire": "Mii kilowatti",
                "ani_publicati": 15,
                "valori": {
                    "2010": "389",
                    "2011": "988",
                    "2012": "1822",
                    "2013": "2773",
                    "2014": "3244",
                    "2015": "3130",
                    "2016": "3025",
                    "2017": "3030",
                    "2018": "3032",
                    "2019": "3037",
                    "2020": "3013",
                    "2021": "3015",
                    "2022": "3015",
                    "2023": "3027",
                    "2024": "3096"
                }
            }
        ]
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — balanţele energetice (TEMPO, matricile IND107A-IND121A).",
        "acoperire": {
            "de_la": "1992-01-01",
            "pana_la": "2024-01-01"
        },
        "serii_returnate": 6,
        "nota_masuri": "⚠️ Puterea instalată e un stoc la 31 decembrie, producţia un flux peste tot anul. Împărţite naiv, dau un factor de utilizare fals de mic în anii cu puneri în funcţiune.",
        "nota_total": "`Total` e rând publicat de sursă, marcat prin `nivel` — nu se adună peste categorii.",
        "nota_sen": "Sunt date statistice anuale. Starea instantanee a sistemului, de la Transelectrica, e la /energie/v1/sen — altă natură, nu se compară.",
        "nota_lista": "Nomenclatoarele zonei: /energie/v1/balante/nomenclator."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404necunoscutThe category does not appear in the nomenclature.
404in_afara_acopeririiThe requested range falls outside the published years.
422raspuns_prea_mareOver 20,000 cells.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.

{
    "eroare": {
        "cod": "raspuns_prea_mare",
        "mesaj": "Over 20,000 cells.",
        "detalii": {
            "masura": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}