Energie v1 / Piaţa de energie
Sumarul intervalului
Preţ, consum şi producţie pe sursă pentru un interval, strânse într-un singur răspuns, cu energia totală calculată din puterile pe intervale.
GET
https://oneapi.ro/api/energie/v1/piata/sumar
Parametri de interogare
NumeTipDescriereValori acceptate
de_laopțional
string | null
Începutul ferestrei. Implicit acum 7 zile.
ex. 2026-09-01
pana_laopțional
string | null
Sfârşitul ferestrei. Implicit acum.
ex. 2026-09-07
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ă.
- Energia (MWh) e derivată: putere medie × durata intervalului, însumată. Nu e o mărime publicată de sursă — de aceea toate mediile de aici sunt ponderate cu durata, nu aritmetice.
regenerabil_procentse calculează doar peste codurile confirmate ca regenerabile. Când există producţie pe coduri neconfirmate,procent_este_minimdevinetrue: adevărata pondere e cel puţin atât, poate mai mult. Preferăm să spunem asta decât să livrăm un procent rotund şi fals.- Bilanţul e explicit şi nu se închide exact: producţie + import − export nu dă fix consumul. Măsurat pe 1-6 septembrie 2026, diferenţa a fost de 2,4% din consum. Producţia se publică doar pentru unităţile peste pragul de raportare, iar consumul e sarcina realizată, cu pierderile de reţea incluse. Câteva procente sunt normale; zeci de procente înseamnă date lipsă în fereastra cerută.
- Cifrele nu se compară cu cele din zona
sen. Acolo e instantaneul Transelectrica, la momente neechidistante; aici e seria oficială europeană, la pas fix. Surse diferite, definiţii diferite.
La ce folosește
- Ai nevoie de o singură cerere care spune cât a costat energia, cât s-a consumat şi din ce s-a produs.
- Raportezi ponderea regenerabilelor pe o lună, cu energia calculată corect din putere şi durată.
- Compari o săptămână cu alta fără să aduci zeci de mii de intervale.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
productie.energie_totala_mwh
number
Energia produsă în fereastră, derivată.
productie.regenerabil_procent
number
Ponderea regenerabilelor, ori
null dacă nu există producţie.
productie.procent_este_minim
boolean
Dacă procentul e un minim din cauza codurilor neconfirmate.
consum.energie_mwh
number
Energia consumată, derivată.
preturi
object
Statistica preţului pe fereastră: minim, maxim, medie ponderată, intervale negative, ore acoperite.
consum.intervale
integer
Câte intervale de consum intră în calcul.
consum.putere_medie_mw
number
Consumul mediu al ferestrei, ponderat cu durata.
consum.minim_mw
integer
Cel mai mic consum din fereastră.
consum.maxim_mw
integer
Vârful de consum din fereastră.
productie.energie_regenerabila_mwh
number
Energia produsă din surse confirmate ca regenerabile.
productie.pe_sursa[].sursa
object
Tipul de producţie, cu codul şi eticheta lui.
productie.pe_sursa[].putere_medie_mw
number
Puterea medie a sursei pe fereastră.
productie.pe_sursa[].putere_maxima_mw
integer
Vârful sursei în fereastră.
productie.pe_sursa[].energie_mwh
number
Energia produsă de sursă, derivată din putere × durată.
schimburi.import_mwh
number
Energia intrată în zonă în fereastră, pe toate graniţele.
schimburi.export_mwh
number
Energia ieşită din zonă.
schimburi.sold_mwh
number
Soldul: import − export.
schimburi.directie_neta
string
Dacă zona a fost pe net importatoare sau exportatoare.
schimburi.pe_granita
array
Aceleaşi cifre, defalcate pe fiecare graniţă.
bilant.productie_mwh
number
Energia produsă în fereastră.
bilant.import_mwh
number
Energia intrată prin graniţe.
bilant.export_mwh
number
Energia ieşită prin graniţe.
bilant.disponibil_mwh
integer
Producţie + import − export: cât a fost disponibil în zonă.
bilant.consum_mwh
number
Consumul realizat, pentru comparaţie.
bilant.diferenta_mwh
number
Cât NU se închide bilanţul. Nu e o eroare — vezi observaţia.
bilant.diferenta_procent
number
Aceeaşi diferenţă, raportată la consum.
bilant.observatie
string
De ce bilanţul nu se închide exact şi de la cât încolo diferenţa devine un semnal.
coduri_neconfirmate
array
Codurile cu producţie care n-au etichetă confirmată.
observatie
string
Cum se citeşte energia derivată şi de ce nu se compară cu zona
sen.
sursa
object
ENTSO-E Transparency Platform, cu atribuirea obligatorie.
Exemple de răspuns
GEThttps://oneapi.ro/api/energie/v1/piata/sumar
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2026-09-29 20: 39: 53",
"pana_la": "2026-10-06 20: 39: 53",
"preturi": {
"intervale": 593,
"primul": "2026-09-29T20: 45: 00+03: 00",
"ultimul": "2026-10-06T00: 45: 00+03: 00",
"minim_eur_mwh": 0.69,
"maxim_eur_mwh": 435.08,
"medie_ponderata_eur_mwh": 170.1,
"intervale_cu_pret_negativ": 0,
"ore_acoperite": 148.25
},
"consum": {
"intervale": 152,
"putere_medie_mw": 5462.7,
"minim_mw": 3994,
"maxim_mw": 7076,
"energie_mwh": 207581.8
},
"productie": {
"energie_totala_mwh": 190131.5,
"energie_regenerabila_mwh": 112773.9,
"regenerabil_procent": 59.3,
"procent_este_minim": false,
"pe_sursa": [
{
"sursa": {
"cod": "B19",
"nume": "Eolian (pe uscat)",
"grupa": "eolian",
"regenerabila": true,
"confirmat": true
},
"intervale": 152,
"putere_medie_mw": 1580.6,
"putere_maxima_mw": 2446,
"energie_mwh": 60064.5
}
]
},
"schimburi": {
"import_mwh": 159706.9,
"export_mwh": 84351.4,
"sold_mwh": 75355.5,
"directie_neta": "import",
"pe_granita": [
{
"vecin": "BG",
"vecin_denumire": "Bulgaria",
"vecin_eic": "10YCA-BULGARIA-R",
"rezolutie_min": 60,
"import_mwh": 133302.2,
"export_mwh": 15671.3,
"import_putere_medie_mw": 1101.7,
"export_putere_medie_mw": 129.5,
"intervale": 242,
"sold_mwh": 117630.9,
"directie_neta": "import"
}
]
},
"bilant": {
"productie_mwh": 190131.5,
"import_mwh": 159706.9,
"export_mwh": 84351.4,
"disponibil_mwh": 265487,
"consum_mwh": 207581.8,
"diferenta_mwh": -57905.2,
"diferenta_procent": -27.9,
"observatie": "Bilanţul NU se închide exact şi nici nu are cum: producţia se publică doar pentru unităţile peste pragul de raportare, iar consumul e sarcina realizată, cu pierderile de reţea incluse. O diferenţă de câteva procente e normală; una de zeci de procente înseamnă date lipsă în fereastra cerută."
},
"coduri_neconfirmate": [],
"observatie": "Energia e derivată din puterea medie × durata intervalului. Nu se compară direct cu zona `sen`, care e instantaneul Transelectrica, cu altă definiție și alt pas.",
"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/sumar?de_la=2026-08-01&pana_la=2026-09-01
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2026-07-31 21: 00: 00",
"pana_la": "2026-08-31 21: 00: 00",
"preturi": {
"intervale": 2977,
"primul": "2026-07-31T21: 00: 00+03: 00",
"ultimul": "2026-08-31T21: 00: 00+03: 00",
"minim_eur_mwh": -0.03,
"maxim_eur_mwh": 569.73,
"medie_ponderata_eur_mwh": 151,
"intervale_cu_pret_negativ": 11,
"ore_acoperite": 744.25
},
"consum": {
"intervale": 2977,
"putere_medie_mw": 5428.6,
"minim_mw": 2804,
"maxim_mw": 7707,
"energie_mwh": 4040234
},
"productie": {
"energie_totala_mwh": 3620595.4,
"energie_regenerabila_mwh": 1983172.9,
"regenerabil_procent": 54.8,
"procent_este_minim": false,
"pe_sursa": [
{
"sursa": {
"cod": "B04",
"nume": "Gaze naturale",
"grupa": "gaze",
"regenerabila": false,
"confirmat": true
},
"intervale": 2973,
"putere_medie_mw": 1136.9,
"putere_maxima_mw": 1394,
"energie_mwh": 845032.3
}
]
},
"schimburi": {
"import_mwh": 992024.2,
"export_mwh": 707946.6,
"sold_mwh": 284077.6,
"directie_neta": "import",
"pe_granita": [
{
"vecin": "BG",
"vecin_denumire": "Bulgaria",
"vecin_eic": "10YCA-BULGARIA-R",
"rezolutie_min": 60,
"import_mwh": 667611.7,
"export_mwh": 96661.4,
"import_putere_medie_mw": 896.1,
"export_putere_medie_mw": 129.7,
"intervale": 1490,
"sold_mwh": 570950.3,
"directie_neta": "import"
}
]
},
"bilant": {
"productie_mwh": 3620595.4,
"import_mwh": 992024.2,
"export_mwh": 707946.6,
"disponibil_mwh": 3904673,
"consum_mwh": 4040234,
"diferenta_mwh": 135561,
"diferenta_procent": 3.36,
"observatie": "Bilanţul NU se închide exact şi nici nu are cum: producţia se publică doar pentru unităţile peste pragul de raportare, iar consumul e sarcina realizată, cu pierderile de reţea incluse. O diferenţă de câteva procente e normală; una de zeci de procente înseamnă date lipsă în fereastra cerută."
},
"coduri_neconfirmate": [],
"observatie": "Energia e derivată din puterea medie × durata intervalului. Nu se compară direct cu zona `sen`, care e instantaneul Transelectrica, cu altă definiție și alt pas.",
"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/sumar?de_la=2024-06-15
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2024-06-14 21: 00: 00",
"pana_la": "2026-10-06 20: 39: 53",
"preturi": {
"intervale": 46876,
"primul": "2024-06-14T21: 00: 00+03: 00",
"ultimul": "2026-10-06T00: 45: 00+03: 00",
"minim_eur_mwh": -100.63,
"maxim_eur_mwh": 1021.61,
"medie_ponderata_eur_mwh": 118.97,
"intervale_cu_pret_negativ": 914,
"ore_acoperite": 20236
},
"consum": {
"intervale": 80503,
"putere_medie_mw": 6040.7,
"minim_mw": 0,
"maxim_mw": 9296,
"energie_mwh": 121573442.7
},
"productie": {
"energie_totala_mwh": 108998161.9,
"energie_regenerabila_mwh": 50530559.7,
"regenerabil_procent": 46.4,
"procent_este_minim": false,
"pe_sursa": [
{
"sursa": {
"cod": "B04",
"nume": "Gaze naturale",
"grupa": "gaze",
"regenerabila": false,
"confirmat": true
},
"intervale": 80486,
"putere_medie_mw": 1104.9,
"putere_maxima_mw": 1894,
"energie_mwh": 22232190
}
]
},
"schimburi": {
"import_mwh": 25655193.1,
"export_mwh": 16962012.3,
"sold_mwh": 8693180.8,
"directie_neta": "import",
"pe_granita": [
{
"vecin": "BG",
"vecin_denumire": "Bulgaria",
"vecin_eic": "10YCA-BULGARIA-R",
"rezolutie_min": 60,
"import_mwh": 9763136,
"export_mwh": 4805539.3,
"import_putere_medie_mw": 483.1,
"export_putere_medie_mw": 237.8,
"intervale": 40418,
"sold_mwh": 4957596.7,
"directie_neta": "import"
}
]
},
"bilant": {
"productie_mwh": 108998161.9,
"import_mwh": 25655193.1,
"export_mwh": 16962012.3,
"disponibil_mwh": 117691342.7,
"consum_mwh": 121573442.7,
"diferenta_mwh": 3882100,
"diferenta_procent": 3.19,
"observatie": "Bilanţul NU se închide exact şi nici nu are cum: producţia se publică doar pentru unităţile peste pragul de raportare, iar consumul e sarcina realizată, cu pierderile de reţea incluse. O diferenţă de câteva procente e normală; una de zeci de procente înseamnă date lipsă în fereastra cerută."
},
"coduri_neconfirmate": [],
"observatie": "Energia e derivată din puterea medie × durata intervalului. Nu se compară direct cu zona `sen`, care e instantaneul Transelectrica, cu altă definiție și alt pas.",
"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/sumar?pana_la=2024-06-15
{
"data": {
"zona": "10YRO-TEL------P",
"de_la": "2026-09-29 20: 39: 53",
"pana_la": "2024-06-14 21: 00: 00",
"preturi": null,
"consum": {
"intervale": 0,
"putere_medie_mw": 0,
"minim_mw": 0,
"maxim_mw": 0,
"energie_mwh": 0
},
"productie": {
"energie_totala_mwh": 0,
"energie_regenerabila_mwh": 0,
"regenerabil_procent": null,
"procent_este_minim": false,
"pe_sursa": []
},
"schimburi": {
"import_mwh": 0,
"export_mwh": 0,
"sold_mwh": 0,
"directie_neta": "echilibru",
"pe_granita": []
},
"bilant": null,
"coduri_neconfirmate": [],
"observatie": "Energia e derivată din puterea medie × durata intervalului. Nu se compară direct cu zona `sen`, care e instantaneul Transelectrica, cu altă definiție și alt pas.",
"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 | Fereastra 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": "Fereastra e inversată.",
"detalii": {
"de_la": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}