oneapi
Autentificare
Energie v1 / Piaţa de energie

Media zilnică a preţului

O valoare pe zi: media ponderată cu durata intervalelor, nu media aritmetică a lor. Cele două diferă exact în zilele în care rezoluţia s-a schimbat la mijloc.

GET
https://oneapi.ro/api/energie/v1/piata/preturi/zilnic

Parametri de interogare

NumeTipDescriereValori acceptate
de_laopțional string | null Prima zi inclusă. Implicit acum 7 zile. ex. 2026-08-01
pana_laopțional string | null Ultima zi inclusă. 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 î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ă.
  • 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ă.
  • Media zilei e ponderată cu durata intervalului. Într-o zi cu 96 de sferturi de oră rezultatul coincide cu media aritmetică; într-o zi în care sursa amestecă rezoluţiile, nu — şi diferenţa nu se vede cu ochiul liber.
  • Citeşte zi_completa înainte de a folosi o medie. O zi publicată pe jumătate dă tot o medie, care arată la fel de credibilă ca oricare alta. Câmpul ore_acoperite spune exact cât lipseşte.
  • Ziua e delimitată în UTC, ca tot restul seriei. Într-o zi cu schimbare de oră, ziua locală are 23 sau 25 de ore — dacă lucrezi pe ora României, recompune-ţi ziua din ruta cu intervale.

La ce folosește

  • Ai nevoie de referinţa zilnică pentru un contract indexat, fără să procesezi 96 de intervale.
  • Compari luni întregi de preţ fără să aduci seria completă.
  • Detectezi zilele publicate incomplet, ca să nu le foloseşti drept referinţă.

Structura răspunsului

Toate câmpurile de mai jos sunt în data.

CâmpTipDescriere
zile[].zi string Ziua, AAAA-LL-ZZ, în UTC.
zile[].medie_ponderata_eur_mwh number Media ponderată a zilei.
zile[].zi_completa boolean Dacă ziua acoperă cel puţin 23,9 ore.
zile[].minim number Cel mai mic preţ al zilei.
zile[].maxim number Cel mai mare preţ al zilei.
zile[].intervale integer Câte intervale au fost publicate în ziua aceea.
zile[].ore_acoperite number Câte ore acoperă intervalele zilei. O zi întreagă are 24.
inregistrari integer Câte zile sunt în răspuns.
observatie string De ce media e ponderată şi de ce trebuie citit zi_completa.
sursa object ENTSO-E Transparency Platform, cu atribuirea obligatorie.

Exemple de răspuns

GEThttps://oneapi.ro/api/energie/v1/piata/preturi/zilnic
{
    "data": {
        "zona": "10YRO-TEL------P",
        "de_la": "2026-09-29 20: 39: 50",
        "pana_la": "2026-10-06 20: 39: 50",
        "inregistrari": 8,
        "zile": [
            {
                "zi": "2026-09-29",
                "medie_ponderata_eur_mwh": 209.47,
                "minim": 180.71,
                "maxim": 242.65,
                "intervale": 13,
                "ore_acoperite": 3.25,
                "zi_completa": false
            }
        ],
        "observatie": "Media zilnică e PONDERATĂ cu durata fiecărui interval, nu aritmetică: altfel un sfert de oră ar cântări cât o oră întreagă. Verifică `zi_completa` înainte de a folosi o medie ca referință — o zi publicată parțial dă o medie care pare validă.",
        "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

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareFereastra e inversată.
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": "Fereastra e inversată.",
        "detalii": {
            "de_la": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}