Energie v1 / Sistemul energetic (SEN)
System state right now
Generation by source, consumption, the balance and the flows on each interconnection, at the latest reading.
GET
https://oneapi.ro/api/energie/v1/sen/acum
Query parameters
This route accepts no query parameters.
How it behaves
- This is a snapshot, not an average. Transelectrica publishes an instantaneous reading, and we capture it when the import runs — not continuously. Check
vechime_minuteandinvechitbefore presenting the figures as "now". - Wind can be negative. In low wind, the farms draw from the grid instead of generating. That is not a reading error and it is not clamped to zero — clamping would falsify the balance.
- The sign convention is uniform: a negative
sold_mwmeans Romania is a net exporter, and a negativeflux_mwon an interconnection means export through that point.directie_soldanddirectiestate the same thing in words, so you never have to rely on the sign. regenerabil_procentis relative to the sum of the sources we read, not to the total generation the source reports. If Transelectrica adds a generation type we do not map yet, the reported total would include it while our sum would not — and the percentage would come out too high with nothing to flag it.- Nuclear can be
0: the two Cernavodă units go into periodic outage. It is not a missing field.
What it is for
- Show on a dashboard how much Romania is generating right now, and from which sources.
- Track the renewable share in real time, for reporting or for a consumption decision.
- See which interconnections are importing and which are exporting at this moment.
Response structure
All fields below live inside data.
FieldTypeDescription
momentul
string
Momentul citirii, în UTC. Sursa o publică în ora locală a României; conversia o facem noi.
vechime_minute
integer
De câte minute e veche citirea.
invechit
boolean
true peste 15 minute — nu o prezenta ca stare curentă.
sistem.productie_mw
integer
Producția totală a sistemului, în MW.
sistem.consum_mw
integer
Consumul total, în MW.
sistem.sold_mw
integer
Soldul schimburilor: NEGATIV = România exportă net, pozitiv = importă net.
sistem.directie_sold
string
export, import sau echilibru — citirea în clar a semnului.
sistem.regenerabil_procent
number
Ponderea hidro + eolian + fotovoltaic + biomasă în suma surselor citite.
productie_pe_sursa[].cod
string
Codul sursei (
carbune_mw, fotovoltaic_mw…).
productie_pe_sursa[].denumire
string
Denumirea lizibilă.
productie_pe_sursa[].regenerabila
boolean
Dacă intră în ponderea regenerabilelor.
productie_pe_sursa[].valoare_mw
integer
Producția din acea sursă, în MW. Poate fi NEGATIVĂ la eolian.
interconexiuni[].punct
string
Codul punctului de interconexiune.
interconexiuni[].denumire
string
Denumirea stației.
interconexiuni[].tara
string
Țara vecină (ISO 3166-1 alpha-2).
interconexiuni[].flux_mw
integer
Fluxul instantaneu: pozitiv = import în România.
interconexiuni[].directie
string
import, export sau inactiv.
observatie
string
Avertismentul că e o citire momentană.
sursa
object
The data source, with its licence and notes.
sursa.nume
string
Sursa datelor.
sursa.url
string
Pagina sursei.
sursa.observatie
string
Temeiul publicării și precizarea că sursa nu publică termeni de reutilizare pentru acest flux.
Response examples
GEThttps://oneapi.ro/api/energie/v1/sen/acum
{
"data": {
"momentul": "2026-09-04 12: 13: 29+03",
"vechime_minute": 46766,
"invechit": true,
"derivat": false,
"sistem": {
"productie_mw": 5152,
"consum_mw": 4754,
"sold_mw": -398,
"directie_sold": "export",
"regenerabil_procent": 68.8
},
"productie_pe_sursa": [
{
"cod": "carbune_mw",
"denumire": "Cărbune",
"regenerabila": false,
"valoare_mw": 640
}
],
"interconexiuni": [
{
"punct": "DOBR",
"denumire": "Dobrudja",
"tara": "BG",
"flux_mw": 55,
"directie": "import"
}
],
"observatie": "Instantaneu, nu medie: valorile sunt citiri momentane publicate de Transelectrica, preluate de noi la rularea importului. Verifică `vechime_minute` înainte de a le prezenta ca fiind „acum\". Observaţiile cu `derivat: true` vin din perechea „acum 15 minute\" a unei citiri ulterioare: producţia e SUMA surselor (sursa nu publică un total pentru ele, abatere tipică sub 1%), iar soldul lipseşte — nu se poate calcula, fiindcă soldul raportat nu e exact consum minus producţie.",
"sursa": {
"nume": "Transelectrica — harta operativă a Sistemului Energetic Național",
"url": "https://www.transelectrica.ro/",
"observatie": "Date de transparență publicate în temeiul Regulamentului (UE) 543/2013. Transelectrica nu publică termeni de reutilizare pentru acest flux."
}
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | There is no SEN observation yet. |
| 429 | cota_depasita | The 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": "negasit",
"mesaj": "There is no SEN observation yet."
}
}