Energie v1 / Piaţa de energie
Seria lunară a pieţei
Seria lunară a pieţei într-un singur tabel: preţul mediu, consumul, producţia pe fiecare sursă şi soldul schimburilor, lună de lună.
GET
https://oneapi.ro/api/energie/v1/piata/lunar
Parametri de interogare
NumeTipDescriereValori acceptate
de_laopțional
string | null
Începutul intervalului. Implicit acum 7 zile — pentru istoric, cere-l explicit.
ex. 2015-01-01
pana_laopțional
string | null
Sfârşitul intervalului. Implicit acum.
ex. 2026-09-01
zonaopțional
string | null
Codul EIC al zonei de ofertare. Implicit România. Singura zonă importată azi e
10YRO-TEL------P; orice altă valoare dă 422, nu o serie goală. Lista e în /piata/acoperire, la zone_ofertare.
10YRO-TEL------P
Cum se comportă
- Istoricul are un gol, şi el se vede la
/piata/acoperire. Seria începe în 2015, dar importul de istoric e încă în curs: în prezent lipsesc ~28-30 de luni (2015-03 → 2017-08). O cerere care cade în gol întoarce200cu listă goală — ceea ce NU înseamnă că piaţa n-a avut activitate, ci că perioada n-a fost adusă încă. Câmpulgoluridin acoperire listează exact lunile care lipsesc, calculat din date, deci se micşorează singur pe măsură ce istoricul se completează. - Seria poate depăşi momentul prezent. Preţul de zi-următoare se publică în avans, deci ultimul interval din răspuns e adesea o oră care încă nu s-a consumat. Nu e o eroare şi nu e o prognoză de-a noastră: e cotaţia fermă, publicată de bursă înainte de livrare. Consecinţa practică: o fereastră care se termină „acum" poate amesteca ore deja consumate cu ore încă nelivrate, iar o medie peste ea le pune la un loc. Dacă ai nevoie strict de realizat, taie fereastra la ora curentă.
- Forma în care se citeşte un istoric lung. Aceleaşi date la nivel de interval înseamnă sute de mii de rânduri; aici o lună e un rând, iar mediile rămân ponderate cu durata intervalului.
- ⚠️ Codurile de producţie NU sunt stabile în timp. Aceleaşi centrale pe cărbune apar sub
B05în seriile vechi şi subB02în cele recente: comutarea s-a produs în mai-iunie 2015. În aprilie 2015B05avea 1.670 MW medie şiB02208; în mai ambele se mişcă (1.024 / 573); din iunie raportul e definitiv inversat (157 / 1.434). Suma celor două rămâne aceeaşi peste tranziţie — 1.878, 1.597, 1.591 MW — deci nu s-au mutat centralele, s-a schimbat codul sub care sunt raportate. O serie construită pe un singur cod se rupe acolo; foloseştepe_grupa, care e stabil. - Citeşte
ore_acoperite, separat la preţ şi la consum. Nu se acoperă la fel: sunt luni în care preţul e publicat integral, iar consumul doar parţial. O lună incompletă dă tot o medie, la fel de credibilă la prima vedere. - Luna e delimitată în UTC, ca tot restul seriei.
La ce folosește
- Vezi cum a evoluat preţul energiei pe ani întregi, într-o singură cerere.
- Decontezi un contract indexat la PZU: media lunară ponderată e chiar referinţa folosită.
- Urmăreşti cum s-a schimbat mixul de producţie al ţării — intrarea fotovoltaicului, ieşirea cărbunelui.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
luni[].luna
string
Luna,
AAAA-LL.
luni[].pret.medie_ponderata_eur_mwh
number
Media lunară ponderată.
luni[].productie.pe_grupa
object
Grupă → MWh. Forma stabilă în timp.
luni[].schimburi.sold_mwh
number
Import − export, în MWh.
inregistrari
integer
Câte luni sunt în răspuns.
luni[].pret.minim
number
Cel mai mic preţ al lunii.
luni[].pret.maxim
number
Cel mai mare preţ al lunii.
luni[].pret.intervale
integer
Câte intervale de preţ au fost publicate.
luni[].pret.intervale_cu_pret_negativ
integer
Câte intervale au avut preţ sub zero.
luni[].pret.ore_acoperite
integer
Câte ore de piaţă acoperă luna. O lună întreagă are 672-744.
luni[].consum.putere_medie_mw
number
Consumul mediu al lunii, ponderat cu durata.
luni[].consum.varf_mw
integer
Vârful de consum din lună.
luni[].consum.energie_mwh
number
Energia consumată, derivată din putere × durată.
luni[].consum.ore_acoperite
integer
Câte ore de consum sunt publicate — poate fi mai puţin decât la preţ.
luni[].productie.energie_totala_mwh
integer
Energia produsă în lună, toate sursele.
luni[].productie.energie_regenerabila_mwh
integer
Energia din surse confirmate ca regenerabile.
luni[].productie.regenerabil_procent
null
Ponderea regenerabilelor în luna respectivă.
luni[].productie.pe_cod
array
Energia pe fiecare cod ENTSO-E. ⚠️ Codurile NU sunt stabile în timp.
luni[].schimburi.import_mwh
integer
Energia intrată prin graniţe în lună.
luni[].schimburi.export_mwh
integer
Energia ieşită prin graniţe.
luni[].coduri_neconfirmate
array
Codurile cu producţie în luna aceea care n-au etichetă confirmată.
observatie
string
De ce mediile sunt ponderate şi ce înseamnă o lună incompletă.
avertisment_coduri
string
Avertismentul despre reclasificarea codurilor de producţie în timp.
sursa
object
ENTSO-E Transparency Platform, cu atribuirea obligatorie.
Exemple de răspuns
GEThttps://oneapi.ro/api/energie/v1/piata/lunar?de_la=2015-01-01
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2014-12-31 22: 00: 00",
"pana_la": "2026-10-06 20: 39: 50",
"inregistrari": 143,
"luni": [
{
"luna": "2014-12",
"pret": {
"medie_ponderata_eur_mwh": 202.08,
"minim": 202.08,
"maxim": 202.08,
"intervale": 1,
"intervale_cu_pret_negativ": 0,
"ore_acoperite": 1
},
"consum": null,
"productie": {
"energie_totala_mwh": 0,
"energie_regenerabila_mwh": 0,
"regenerabil_procent": null,
"pe_cod": [],
"pe_grupa": []
},
"schimburi": {
"import_mwh": 0,
"export_mwh": 0,
"sold_mwh": 0
},
"coduri_neconfirmate": []
}
],
"observatie": "Mediile lunare sunt PONDERATE cu durata intervalului, nu aritmetice — o lună poate amesteca intervale de 15 minute cu unele orare. `ore_acoperite` spune cât din lună e efectiv publicat: o lună incompletă dă tot o medie, care arată la fel de credibilă ca oricare alta.",
"avertisment_coduri": "Codurile de producţie NU sunt stabile în timp: aceleaşi centrale pe cărbune au fost raportate sub `B05` până în trecut şi sub `B02` acum. O serie pe un singur cod se rupe la reclasificare — foloseşte `grupa` sau suma codurilor de cărbune. Vezi /energie/v1/piata/surse.",
"sursa": {
"nume": "ENTSO-E Transparency Platform",
"url": "https://transparency.entsoe.eu",
"atribuire": "Date din ENTSO-E Transparency Platform.",
"licenta": "Reutilizare permisă cu ATRIBUIRE obligatorie către Transparency Platform. Drepturile nu sunt sublicențiabile.",
"observatie": "Zona `piata` e seria oficială europeană; zona `sen` e instantaneul Transelectrica. Au surse, pași și definiții diferite — cifrele lor nu se compară direct."
}
}
}
GEThttps://oneapi.ro/api/energie/v1/piata/lunar?de_la=2024-01-01&pana_la=2025-01-01
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2023-12-31 22: 00: 00",
"pana_la": "2024-12-31 22: 00: 00",
"inregistrari": 13,
"luni": [
{
"luna": "2023-12",
"pret": {
"medie_ponderata_eur_mwh": 8.88,
"minim": 0.1,
"maxim": 14.95,
"intervale": 4,
"intervale_cu_pret_negativ": 0,
"ore_acoperite": 4
},
"consum": {
"putere_medie_mw": 5448.1,
"varf_mw": 5805,
"energie_mwh": 21792.3,
"ore_acoperite": 4
},
"productie": {
"energie_totala_mwh": 25735.5,
"energie_regenerabila_mwh": 10761.4,
"regenerabil_procent": 41.8,
"pe_cod": {
"B01": 126.3,
"B02": 3323.5,
"B04": 6067.8,
"B05": 0,
"B11": 4812.3,
"B12": 1349.3,
"B14": 5582.8,
"B16": 0,
"B19": 4473.5
},
"pe_grupa": {
"biomasa": 126.3,
"carbune": 3323.5,
"eolian": 4473.5,
"fotovoltaic": 0,
"gaze": 6067.8,
"hidro": 6161.6,
"nuclear": 5582.8
}
},
"schimburi": {
"import_mwh": 2463.5,
"export_mwh": 6362.2,
"sold_mwh": -3898.7
},
"coduri_neconfirmate": []
}
],
"observatie": "Mediile lunare sunt PONDERATE cu durata intervalului, nu aritmetice — o lună poate amesteca intervale de 15 minute cu unele orare. `ore_acoperite` spune cât din lună e efectiv publicat: o lună incompletă dă tot o medie, care arată la fel de credibilă ca oricare alta.",
"avertisment_coduri": "Codurile de producţie NU sunt stabile în timp: aceleaşi centrale pe cărbune au fost raportate sub `B05` până în trecut şi sub `B02` acum. O serie pe un singur cod se rupe la reclasificare — foloseşte `grupa` sau suma codurilor de cărbune. Vezi /energie/v1/piata/surse.",
"sursa": {
"nume": "ENTSO-E Transparency Platform",
"url": "https://transparency.entsoe.eu",
"atribuire": "Date din ENTSO-E Transparency Platform.",
"licenta": "Reutilizare permisă cu ATRIBUIRE obligatorie către Transparency Platform. Drepturile nu sunt sublicențiabile.",
"observatie": "Zona `piata` e seria oficială europeană; zona `sen` e instantaneul Transelectrica. Au surse, pași și definiții diferite — cifrele lor nu se compară direct."
}
}
}
GEThttps://oneapi.ro/api/energie/v1/piata/lunar?de_la=2020-01-01&pana_la=2021-01-01
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2019-12-31 22: 00: 00",
"pana_la": "2020-12-31 22: 00: 00",
"inregistrari": 13,
"luni": [
{
"luna": "2019-12",
"pret": {
"medie_ponderata_eur_mwh": 168.14,
"minim": 160.31,
"maxim": 174.71,
"intervale": 4,
"intervale_cu_pret_negativ": 0,
"ore_acoperite": 4
},
"consum": {
"putere_medie_mw": 6445.3,
"varf_mw": 6766,
"energie_mwh": 25781,
"ore_acoperite": 4
},
"productie": {
"energie_totala_mwh": 25095,
"energie_regenerabila_mwh": 9952,
"regenerabil_procent": 39.7,
"pe_cod": {
"B01": 224,
"B02": 4700,
"B04": 4276,
"B05": 469,
"B11": 3712,
"B12": 488,
"B14": 5698,
"B16": 0,
"B19": 5528
},
"pe_grupa": {
"biomasa": 224,
"carbune": 5169,
"eolian": 5528,
"fotovoltaic": 0,
"gaze": 4276,
"hidro": 4200,
"nuclear": 5698
}
},
"schimburi": {
"import_mwh": 3306,
"export_mwh": 2620.9,
"sold_mwh": 685.1
},
"coduri_neconfirmate": []
}
],
"observatie": "Mediile lunare sunt PONDERATE cu durata intervalului, nu aritmetice — o lună poate amesteca intervale de 15 minute cu unele orare. `ore_acoperite` spune cât din lună e efectiv publicat: o lună incompletă dă tot o medie, care arată la fel de credibilă ca oricare alta.",
"avertisment_coduri": "Codurile de producţie NU sunt stabile în timp: aceleaşi centrale pe cărbune au fost raportate sub `B05` până în trecut şi sub `B02` acum. O serie pe un singur cod se rupe la reclasificare — foloseşte `grupa` sau suma codurilor de cărbune. Vezi /energie/v1/piata/surse.",
"sursa": {
"nume": "ENTSO-E Transparency Platform",
"url": "https://transparency.entsoe.eu",
"atribuire": "Date din ENTSO-E Transparency Platform.",
"licenta": "Reutilizare permisă cu ATRIBUIRE obligatorie către Transparency Platform. Drepturile nu sunt sublicențiabile.",
"observatie": "Zona `piata` e seria oficială europeană; zona `sen` e instantaneul Transelectrica. Au surse, pași și definiții diferite — cifrele lor nu se compară direct."
}
}
}
GEThttps://oneapi.ro/api/energie/v1/piata/lunar
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2026-09-29 20: 39: 52",
"pana_la": "2026-10-06 20: 39: 52",
"inregistrari": 2,
"luni": [
{
"luna": "2026-09",
"pret": {
"medie_ponderata_eur_mwh": 154.57,
"minim": 9.49,
"maxim": 258.74,
"intervale": 121,
"intervale_cu_pret_negativ": 0,
"ore_acoperite": 30.3
},
"consum": {
"putere_medie_mw": 5461.4,
"varf_mw": 7076,
"energie_mwh": 165206,
"ore_acoperite": 30.3
},
"productie": {
"energie_totala_mwh": 152926.2,
"energie_regenerabila_mwh": 91404.9,
"regenerabil_procent": 59.8,
"pe_cod": {
"B01": 1855.3,
"B02": 21060.5,
"B04": 35398.5,
"B05": 2017.3,
"B11": 11406.5,
"B12": 7330,
"B14": 0,
"B16": 22126.8,
"B19": 48686.3,
"B25": 3045
},
"pe_grupa": {
"biomasa": 1855.3,
"carbune": 23077.8,
"eolian": 48686.3,
"fotovoltaic": 22126.8,
"gaze": 35398.5,
"hidro": 18736.5,
"nuclear": 0,
"varf_urmarind_pretul": 3045
}
},
"schimburi": {
"import_mwh": 37000.5,
"export_mwh": 29343.5,
"sold_mwh": 7657
},
"coduri_neconfirmate": []
}
],
"observatie": "Mediile lunare sunt PONDERATE cu durata intervalului, nu aritmetice — o lună poate amesteca intervale de 15 minute cu unele orare. `ore_acoperite` spune cât din lună e efectiv publicat: o lună incompletă dă tot o medie, care arată la fel de credibilă ca oricare alta.",
"avertisment_coduri": "Codurile de producţie NU sunt stabile în timp: aceleaşi centrale pe cărbune au fost raportate sub `B05` până în trecut şi sub `B02` acum. O serie pe un singur cod se rupe la reclasificare — foloseşte `grupa` sau suma codurilor de cărbune. Vezi /energie/v1/piata/surse.",
"sursa": {
"nume": "ENTSO-E Transparency Platform",
"url": "https://transparency.entsoe.eu",
"atribuire": "Date din ENTSO-E Transparency Platform.",
"licenta": "Reutilizare permisă cu ATRIBUIRE obligatorie către Transparency Platform. Drepturile nu sunt sublicențiabile.",
"observatie": "Zona `piata` e seria oficială europeană; zona `sen` e instantaneul Transelectrica. Au surse, pași și definiții diferite — cifrele lor nu se compară direct."
}
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | Intervalul e inversat. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "Intervalul e inversat.",
"detalii": {
"de_la": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}