oneapi
Autentificare
Financiar v1 / Curs

Seria cursului pe un interval

Cotaţiile pentru 1–5 valute între două date, grupate pe valută. Zilele fără publicare
(weekend, sărbători) nu apar în serie; meta.zile_publicate spune câte puncte sunt efectiv.
Intervalul e limitat la 366 de zile — depăşirea e respinsă, nu tăiată în tăcere.

GET
https://oneapi.ro/api/financiar/v1/curs/interval

Parametri de interogare

NumeTipDescriereValori acceptate
de_laobligatoriu string Obligatoriu, YYYY-MM-DD. Nu poate fi în viitor. ex. 2024-06-15ex. 2024-06-01
pana_laopțional string | null Opţional, implicit ziua curentă. Poate fi în viitor — se aliniază la azi. ex. 2024-06-15ex. 2024-06-30ex. 2024-06-14
valutalistăopțional text Obligatoriu, 1–5 coduri: ?valuta=EUR,USD sau ?valuta[]=EUR&valuta[]=USD. ex. EURex. USD

Cum se comportă

  • Cotaţiile pentru una până la cinci valute, între de_la şi pana_la, grupate pe valută.
  • Zilele fără publicare nu apar în serie — weekendurile şi sărbătorile lipsesc. meta.zile_publicate spune câte puncte are efectiv răspunsul, ca o medie calculată pe serie să se ştie pe ce se calculează.
  • Multiplicatorul se declară o dată pe serie, nu la fiecare punct: e constant pe toată istoria fiecărei valute (verificat pe toate cele 40).
  • Intervalul e limitat la 366 de zile calendaristice — un an plus o zi, ca „ultimele 12 luni" să încapă şi în an bisect. Depăşirea întoarce 422 cu numărul de zile cerute; seria nu se taie niciodată în tăcere.
  • Marginile se aliniază la acoperirea reală în loc să fie respinse: de_la anterior lui 2005-01-03 urcă la prima zi din bază, iar pana_la în viitor coboară la ziua curentă. Ce s-a ajustat apare în meta.ajustat.
  • Plafonul de 366 de zile se verifică DUPĂ aliniere: o cerere 2004 → iunie 2005 are 517 zile cerute, dar numai 149 în acoperire, deci trece.

La ce folosește

  • Grafic de evoluţie a cursului.
  • Media cursului pe o lună sau pe un trimestru.
  • Compararea a două-trei valute pe acelaşi interval.

Structura răspunsului

CâmpTipDescriere
data.de_la string Începutul intervalului acoperit de răspuns.
data.pana_la string Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.moneda_baza string Moneda faţă de care sunt exprimate cotaţiile.
data.serii array Seriile din răspuns.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.valute integer Valutele acoperite de răspuns.
meta.zile_publicate integer Numărul total de cotaţii din răspuns, peste toate seriile.
meta.zile_interval integer Lungimea intervalului efectiv folosit, în zile calendaristice.
meta.necotate array Valutele cerute care nu au nicio cotaţie în interval.
data.serii[].multiplicator integer Câte unităţi de valută acoperă valoare, pentru toată seria (1 sau 100).
data.serii[].valori[].valoare string Cifra publicată de BNR.
data.serii[].valori[].valoare_unitara string RON pentru O unitate, deja împărţit la multiplicator.
meta.ajustat Care margini au fost aliniate la acoperire (de_la, pana_la). Absent când nu s-a ajustat nimic.
meta.fara_date data e null, iar aici stă motivul. Intervalul e în întregime înainte de prima zi din bază.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/curs/interval?de_la=2024-06-15&valuta=EUR&pana_la=2024-06-15
{
    "data": {
        "de_la": "2024-06-15",
        "pana_la": "2024-06-15",
        "moneda_baza": "RON",
        "serii": []
    },
    "meta": {
        "sursa": "Banca Naţională a României",
        "valute": 0,
        "zile_publicate": 0,
        "zile_interval": 1,
        "necotate": [
            "EUR"
        ]
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareinterval_prea_lung (peste 366 de zile), de_la în viitor, pana_la înainte de de_la, peste 5 valute, sau cod de valută invalid.
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": "interval_prea_lung (peste 366 de zile), de_la în viitor, pana_la înainte de de_la, peste 5 valute, sau cod de valută invalid.",
        "detalii": {
            "de_la": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}