oneapi
Autentificare
Energie v1 / Piaţa de energie

Fluxurile fizice pe graniţe

Fluxurile fizice pe fiecare graniţă, cu importul, exportul şi soldul calculat. Cu vecin se cere o singură graniţă, cu directie doar un sens.

GET
https://oneapi.ro/api/energie/v1/piata/schimburi

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-06
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
vecinopțional string | null Codul de ţară al unei graniţe: HU, BG, RS, UA, MD. max 2 car.
directieopțional string | null import sau export. importexport
per_paginaopțional text Câte intervale pe pagină, până la 2000. ex. 500
paginaopțional text Pagina, numărată de la 1. ex. 1

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 întoarce 200 cu listă goală — ceea ce NU înseamnă că piaţa n-a avut activitate, ci că perioada n-a fost adusă încă. Câmpul goluri din acoperire listează exact lunile care lipsesc, calculat din date, deci se micşorează singur pe măsură ce istoricul se completează.
  • Fluxurile fizice pe cele cinci graniţe ale zonei — Ungaria, Bulgaria, Serbia, Ucraina şi Republica Moldova — pe ambele direcţii.
  • Sursa nu publică un sold, ci două serii pozitive per graniţă. Soldul e calculat aici (import − export) şi vine cu directie_neta în clar, ca să nu depinzi de semn. E altceva decât zona sen, unde Transelectrica publică un sold deja semnat, pe fiecare dintre cele 24 de puncte fizice de interconexiune.
  • Rezoluţia diferă de la o graniţă la alta. Ungaria publică la sfert de oră, restul la oră — de aceea seriile nu se pot aduna interval cu interval, iar agregarea din pe_granita şi sold se face pe energie (putere × durată), unde pasul nu mai contează.
  • pe_granita şi sold se calculează pe toată fereastra şi pe toate graniţele, indiferent de filtrele paginii — altfel soldul ar depinde de ce ai cerut să vezi.

La ce folosește

  • Vezi din ce ţări a intrat energie şi spre care a ieşit, pe o zi sau pe o lună.
  • Închizi bilanţul: producţia şi consumul nu sunt egale, iar diferenţa e exact schimbul.
  • Urmăreşti dacă ţara a fost pe net importatoare într-o perioadă şi cu cât.

Structura răspunsului

CâmpTipDescriere
data.serie[].valoare_mw number Fluxul fizic, putere medie pe interval, mereu pozitiv.
data.serie[].directie string import sau export.
data.pe_granita[].sold_mwh number Soldul graniţei: import − export.
data.sold.directie_neta string import, export ori echilibru.
data.filtru_vecin null Graniţa pe care s-a filtrat seria, dacă s-a cerut una.
data.filtru_directie null Direcţia pe care s-a filtrat seria, dacă s-a cerut una.
data.pe_granita[].vecin string Codul de ţară al graniţei.
data.pe_granita[].vecin_denumire string Denumirea vecinului.
data.pe_granita[].vecin_eic string Codul EIC al zonei vecine — identitatea reală, fiindcă o ţară poate avea mai multe zone de ofertare.
data.pe_granita[].rezolutie_min integer Pasul la care publică graniţa asta. Diferă de la o graniţă la alta.
data.pe_granita[].import_mwh number Energia intrată prin graniţă în fereastră.
data.pe_granita[].export_mwh number Energia ieşită prin graniţă în fereastră.
data.pe_granita[].import_putere_medie_mw number Puterea medie la import, ponderată cu durata.
data.pe_granita[].export_putere_medie_mw number Puterea medie la export, ponderată cu durata.
data.pe_granita[].directie_neta string Citirea în clar a semnului: import, export sau echilibru.
data.pe_granita[].intervale integer Câte intervale au intrat în agregat, pe ambele direcţii.
data.sold.import_mwh number Energia totală intrată în zonă, pe toate graniţele.
data.sold.export_mwh number Energia totală ieşită din zonă.
data.sold.sold_mwh number Soldul zonei: import − export.
data.serie[].moment string Începutul intervalului, în UTC.
data.fara_date null Prezent (nenul) DOAR când seria e goală, şi spune DE CE: motiv e dupa_acoperire (fereastra cerută e după ultimul punct importat), inainte_de_acoperire sau gol_in_acoperire (lipsă în mijlocul istoricului). acoperire dă capetele reale ale seriei. ⚠️ O serie goală NU înseamnă că piaţa n-a avut activitate.
data.serie[].rezolutie_min integer Durata intervalului, în minute.
data.serie[].vecin string Codul de ţară al graniţei.
data.serie[].vecin_denumire string Denumirea vecinului.
data.serie[].vecin_eic string Codul EIC al zonei vecine.
data.observatie string De ce fluxul e pe direcţie şi nu ca sold, şi de ce seriile nu se adună interval cu interval.
data.sursa object ENTSO-E Transparency Platform, cu atribuirea obligatorie.
meta.paginare.pagina integer Pagina curentă, numărată de la 1.
meta.paginare.per_pagina integer Câte înregistrări are o pagină.
meta.paginare.total integer Totalul înregistrărilor care se potrivesc, dincolo de pagina curentă.
meta.paginare.pagini integer Câte pagini are lista.

Exemple de răspuns

GEThttps://oneapi.ro/api/energie/v1/piata/schimburi
{
    "data": {
        "zona": "10YRO-TEL------P",
        "de_la": "2026-09-29 20: 39: 53",
        "pana_la": "2026-10-06 20: 39: 53",
        "filtru_vecin": null,
        "filtru_directie": null,
        "fara_date": null,
        "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"
            }
        ],
        "sold": {
            "import_mwh": 159706.9,
            "export_mwh": 84351.4,
            "sold_mwh": 75355.5,
            "directie_neta": "import"
        },
        "serie": [
            {
                "moment": "2026-09-29T20: 45: 00+03: 00",
                "rezolutie_min": 15,
                "vecin": "HU",
                "vecin_denumire": "Ungaria",
                "vecin_eic": "10YHU-MAVIR----U",
                "directie": "export",
                "valoare_mw": 144.089
            }
        ],
        "observatie": "Fluxul fizic e publicat pe DIRECŢIE, nu ca sold: fiecare graniţă are două serii, ambele pozitive, iar soldul se calculează (import − export). Rezoluţia diferă de la o graniţă la alta — Ungaria publică la sfert de oră, restul la oră — deci seriile NU se pot aduna interval cu interval; agregarea din `pe_granita` şi `sold` se face pe energie.",
        "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."
        }
    },
    "meta": {
        "paginare": {
            "pagina": 1,
            "per_pagina": 500,
            "total": 1602,
            "pagini": 4
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareGraniţa cerută nu există ori direcţia nu e import/export.
429cota_depasitaCota 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": "Graniţa cerută nu există ori direcţia nu e import/export.",
        "detalii": {
            "de_la": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}