oneapi
Autentificare
Energie v1 / Piaţa de energie

Orele cele mai ieftine ale unei zile

Ora cea mai ieftină şi cea mai scumpă ale unei zile, plus fereastra continuă cea mai ieftină de atâtea ore — pentru a şti când merită pornit un consum amânabil.

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

Parametri de interogare

NumeTipDescriereValori acceptate
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
dataopțional string | null Ziua, AAAA-LL-ZZ, pe ora României. Implicit azi. ex. 2026-09-10
oreopțional integer | null Lungimea ferestrei, între 1 şi 12 ore consecutive. Implicit 1. 1 – 12

Cum se comportă

  • Răspunde direct la întrebarea „când e cel mai ieftin curentul azi", fără să aduci cele 96 de sferturi şi să le calculezi tu: intervalul minim şi maxim, media zilei şi fereastra de ore ore consecutive cu media cea mai mică, respectiv cea mai mare.
  • Ziua e pe ora României, nu pe UTC ca la /piata/preturi/zilnic: momentele vin cu decalajul local (+03:00 vara). În ziua schimbării orei ziua are 23 sau 25 de ore, iar ore_zi o spune.
  • Ferestrele se calculează pe sferturi de oră: în seriile vechi, orare, o oră contează ca patru sferturi cu acelaşi preţ. O fereastră nu sare peste un interval nepublicat — trebuie să fie consecutivă; dacă ziua are goluri, poate ieşi null.
  • Preţul pieţei nu e factura. E preţul PZU (piaţa pentru ziua următoare), fără tarife de transport şi distribuţie, taxe şi marja furnizorului. Arată CÂND e energia ieftină, nu cât costă un kWh la priză. Poate fi negativ.
  • Ziua de mâine se publică în jurul orei 14:00 (ora României). O zi încă nepublicată dă 404 zi_nepublicata.

La ce folosește

  • Programezi o încărcare de maşină electrică ori un boiler în cele mai ieftine 3 ore ale zilei de mâine.
  • Afişezi într-o aplicaţie de prosumator „azi curentul e cel mai ieftin între 13:00 şi 16:00".
  • Muţi un consum industrial flexibil din fereastra cea mai scumpă a serii.

Structura răspunsului

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

CâmpTipDescriere
zi string Ziua, AAAA-LL-ZZ, pe ora României.
minim object Intervalul cu cel mai mic preţ: de_la, pana_la (ora României), rezolutie_min, pret_eur_mwh. La egalitate, primul din zi.
minim.pret_eur_mwh number Cel mai mic preţ al zilei.
fereastra.cea_mai_ieftina object Cele ore ore consecutive cu media cea mai mică: de_la, pana_la, medie_eur_mwh. null dacă ziua n-are atâtea ore publicate la rând.
fereastra.cea_mai_ieftina.de_la string Începutul ferestrei celei mai ieftine, ISO 8601 cu decalaj local.
fus string Fusul orar în care e delimitată ziua: Europe/Bucharest.
intervale integer Câte intervale publicate cad în zi.
ore_acoperite integer Câte ore acoperă intervalele publicate.
ore_zi integer Câte ore are ziua: 24, ori 23/25 la schimbarea orei.
zi_completa boolean Dacă ziua e publicată integral.
medie_ponderata_eur_mwh number Media zilei, ponderată cu durata intervalelor.
maxim object Intervalul cu cel mai mare preţ, în aceeaşi formă.
ore_cu_pret_negativ integer Câte ore din zi au avut preţ negativ.
fereastra.ore integer Lungimea ferestrei cerute, în ore.
fereastra.cea_mai_scumpa object Cele ore ore consecutive cu media cea mai mare, în aceeaşi formă.
observatie string Cum se citeşte ziua şi ce nu conţine preţul.
sursa object ENTSO-E Transparency Platform, cu atribuirea obligatorie.

Exemple de răspuns

GEThttps://oneapi.ro/api/energie/v1/piata/preturi/extreme?data=2026-09-08
{
    "data": {
        "zona": "10YRO-TEL------P",
        "zi": "2026-09-08",
        "fus": "Europe/Bucharest",
        "intervale": 96,
        "ore_acoperite": 24,
        "ore_zi": 24,
        "zi_completa": true,
        "medie_ponderata_eur_mwh": 177.98,
        "minim": {
            "de_la": "2026-09-08T13: 45: 00+03: 00",
            "pana_la": "2026-09-08T14: 00: 00+03: 00",
            "rezolutie_min": 15,
            "pret_eur_mwh": 14.29
        },
        "maxim": {
            "de_la": "2026-09-08T19: 45: 00+03: 00",
            "pana_la": "2026-09-08T20: 00: 00+03: 00",
            "rezolutie_min": 15,
            "pret_eur_mwh": 327
        },
        "ore_cu_pret_negativ": 0,
        "fereastra": {
            "ore": 1,
            "cea_mai_ieftina": {
                "de_la": "2026-09-08T14: 15: 00+03: 00",
                "pana_la": "2026-09-08T15: 15: 00+03: 00",
                "medie_eur_mwh": 22.83
            },
            "cea_mai_scumpa": {
                "de_la": "2026-09-08T19: 45: 00+03: 00",
                "pana_la": "2026-09-08T20: 45: 00+03: 00",
                "medie_eur_mwh": 304.27
            }
        },
        "observatie": "Ziua e pe ora României (23 sau 25 de ore la schimbarea orei), nu pe UTC ca `/piata/preturi/zilnic`. Preţurile sunt ale pieţei pentru ziua următoare (PZU), fără tarife de reţea, taxe şi marja furnizorului: arată CÂND e energia ieftină, nu cât plăteşte un consumator casnic. Pot fi negative.",
        "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.
404zi_nepublicataZiua nu are preţuri publicate: e în viitor ori într-un gol al istoricului.
422validaredata nu e AAAA-LL-ZZ, ore e în afara lui 1–12 ori zona nu e acoperită.
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": "data nu e AAAA-LL-ZZ, ore e în afara lui 1–12 ori zona nu e acoperită.",
        "detalii": {
            "zona": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}