oneapi
Sign in
Energie v1 / Balanţe energetice

Energy balance by element

The 27 elements of the energy balance — from primary energy production and imports, through the inputs to and outputs from transformation, down to final consumption by branch and to the statistical differences. 2,903 values, annually 1992–2024 (IND108A, IND110A, IND111A).

⚠️ The carrier is part of the series' identity. The same 27 elements are published across three carriers, in different units: total in thousand toe, electrica in million kWh, termica in thousand Gcal and terajoules. Added together, the same energy would be counted three times. The total carrier is returned by default.

⚠️ Heat energy is published in two units at once, across the whole period. Checked on 592 pairs: 523 respect the standard factor 4.1868 TJ / thousand Gcal exactly; the 69 deviations sit on small values (mean 28, against 12,579 for the conforming ones), so they are source rounding. They are the same quantity in two units, not two quantities — do not add them.

⚠️ The elements are not a partition. This is a balance sheet: some elements are resources, others uses, others sub-positions of those. Summed indiscriminately, they mean nothing. The identity the source respects exactly, verified 33 years out of 33: Resources-total = primary energy production + imports + stock at 1 January.

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

Query parameters

NameTypeDescriptionAccepted values
purtatoroptional string | null total (default), electrica or termica. totalelectricatermica
elementoptional string | null The slug of a balance element from the nomenclature. e.g. import
umoptional string | null The unit. Only useful for termica, where the source publishes two. e.g. terrajouli
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 27 elements of the energy balance — from primary energy production and imports, through inputs to and outputs from transformation, to final consumption by branch and the statistical differences. 2,903 values, annual 1992-2024 (IND108A, IND110A, IND111A).
  • The carrier is part of the series identity. The same 27 elements are published across three carriers, in different units: total in ktoe, electrica in million kWh, termica in thousand Gcal and terajoules. Added together, the same energy would be counted three times. total is returned by default.
  • Thermal energy is published in two units at once, throughout. Checked across 592 pairs: 523 follow the standard factor 4.1868 TJ per thousand Gcal exactly; the 69 deviations sit on small values (mean 28, against 12,579 for the conforming ones), so they are the source rounding. They are the same quantity in two units, not two quantities.
  • The elements are not a partition. This is a balance sheet: some elements are resources, others uses, others sub-items of those. Summed indiscriminately, they mean nothing. The identity the source honours exactly, verified 33 years out of 33: Resurse-total = primary energy production + imports + stock at 1 January.

What it is for

  • Track energy imports, exports and gross inland consumption, year by year.
  • See how much is lost in transformation and in transport, separately for electric and thermal.
  • Compare household consumption with industry, on the same carrier.

Response structure

FieldTypeDescription
data.purtator string Purtătorul cerut — parte din identitatea seriei.
data.serii[].element string Slugul elementului de balanţă.
data.serii[].um string Unitatea. La termica apar două serii, în mii Gcal şi în terajouli.
data.serii[].ani_publicati integer Câţi ani au valoare din intervalul cerut.
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_denumire string The unit of measure spelled out. Read it: series in the same response can use different units, and adding them would mean nothing.
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_purtator string What that carrier covers.
data.serii[].element_denumire string The element name.
meta.nota_purtator string What is and is not included in the requested carrier.
meta.nota_bilant string How to read an energy balance: inputs, transformations, final consumption.
meta.nota_sen string The relationship with the real-time data in the sen zone.
meta.nota_lista string Where the codes are: in the nomenclature.

Response examples

GEThttps://oneapi.ro/api/energie/v1/balante/elemente?element=import
{
    "data": {
        "purtator": "total",
        "descriere_purtator": "energie totală, în mii tone echivalent petrol (tep)",
        "granularitate": "anual",
        "de_la": 1992,
        "pana_la": 2024,
        "filtre": {
            "purtator": "total",
            "element": "import"
        },
        "ani": [
            1992,
            1993,
            1994,
            1995,
            1996,
            1997,
            1998,
            1999,
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "element": "import",
                "element_denumire": "Import",
                "um": "mii_tone_echivalent_petrol",
                "um_denumire": "Mii tone echivalent petrol",
                "ani_publicati": 33,
                "valori": {
                    "1992": "16181",
                    "1993": "15259",
                    "1994": "16434",
                    "1995": "19420",
                    "1996": "18806",
                    "1997": "17928",
                    "1998": "15148",
                    "1999": "10186",
                    "2000": "10925",
                    "2001": "12771",
                    "2002": "13949",
                    "2003": "14639",
                    "2004": "16672",
                    "2005": "17072",
                    "2006": "17605",
                    "2007": "17399",
                    "2008": "16324",
                    "2009": "11235",
                    "2010": "11239",
                    "2011": "11570",
                    "2012": "11615",
                    "2013": "9993",
                    "2014": "10757",
                    "2015": "11333",
                    "2016": "13113",
                    "2017": "13597",
                    "2018": "14168",
                    "2019": "15910",
                    "2020": "14014",
                    "2021": "15948",
                    "2022": "16400",
                    "2023": "15500",
                    "2024": "16456"
                }
            }
        ]
    },
    "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": 1,
        "nota_purtator": "⚠️ Cei trei purtători sunt aceleaşi elemente în unităţi diferite. Nu se adună între ei — ar însemna să numeri de trei ori aceeaşi energie.",
        "nota_bilant": "⚠️ Elementele nu formează o partiţie: e un bilanţ cu resurse, utilizări şi sub-poziţii la un loc. Identitatea verificată 33 de ani din 33: `Resurse-total` = producţie primară + import + stoc la 1 ianuarie.",
        "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 element does not appear on the requested carrier.
404in_afara_acopeririiThe requested range falls entirely 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": {
            "purtator": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}