Financiar v1 / Calendar
Public holidays of a year
The list of public holidays (art. 139 of the Labour Code), each with one or more celebrations — two can fall on the same day. Bridge days set by Government Decision are a different legal instrument and have their own route: /punti?an=.
GET
https://oneapi.ro/api/financiar/v1/sarbatori
Query parameters
NameTypeDescriptionAccepted values
anoptional
integer | null
Optional: the year,
YYYY (1990–2100). Without it, the current year.
1990 – 2100
How it behaves
- The public holidays of a year, under art. 139 of the Romanian Labour Code.
- The list is of DAYS, and each day carries one OR MORE holidays: two can fall on the same date. In 2026, 1 June is simultaneously Children's Day and Whit Monday — which is why the year has 16 holiday days but 17 holidays.
- The two figures in
meta(zileandsarbatori) differ exactly by the overlaps; the difference is information, not an inconsistency. - In Romania, holidays falling on a Saturday or Sunday are NOT moved to the following working day. That is why
in_weekendmatters: those are days off that are lost. The figure varies a lot from year to year — 4 in 2025, 5 in 2026, 8 in 2027. - Bridge days set by Government decision are NOT in this response: they are a different legal instrument, with a different scope, and have a route of their own —
/punti?an=. - Orthodox Easter is computed, not read from a table. For future years the list is a projection of current legislation.
What it is for
- Building an annual calendar of non-working days.
- Planning leave and working schedules.
- Counting the effective days off in a year.
Response structure
FieldTypeDescription
data.an
integer
The year the data refers to.
data.zile[].data
string
data.zile[].zi_saptamana
string
Day of the week, with 1 = Monday.
data.zile[].zi_saptamana_iso
integer
data.zile[].in_weekend
boolean
true if the holiday falls on a Saturday or Sunday — in which case it is not moved and brings no extra day off.
data.zile[].sarbatori[]
string[]
One or more holidays falling on that day.
meta.zile
integer
The number of distinct holiday days.
meta.sarbatori
integer
The number of public holidays. Higher than
zile in years with overlaps.
meta.in_zile_lucratoare
string
How many holidays fall Monday to Friday, i.e. actually bring a day off.
meta.in_weekend
string
How many fall on a Saturday or Sunday, and are therefore lost.
meta.temei
string
The legal basis for the values or for the way they are computed.
meta.nota
string
A note on how to read the response — a pitfall, a convention or a limit of the source.
Response examples
GEThttps://oneapi.ro/api/financiar/v1/sarbatori
{
"data": {
"an": 2026,
"zile": [
{
"data": "2026-01-01",
"zi_saptamana": "joi",
"zi_saptamana_iso": 4,
"in_weekend": false,
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
]
},
"meta": {
"zile": 16,
"sarbatori": 17,
"in_zile_lucratoare": 11,
"in_weekend": 5,
"temei": "art. 139 Codul Muncii; Paştele ortodox calculat, nu tabelat.",
"nota": "În România, sărbătorile care cad sâmbătă sau duminică NU se mută — cele 5 din weekend sunt zile libere pierdute în 2026."
}
}
GEThttps://oneapi.ro/api/financiar/v1/sarbatori?an=2027
{
"data": {
"an": 2027,
"zile": [
{
"data": "2027-01-01",
"zi_saptamana": "vineri",
"zi_saptamana_iso": 5,
"in_weekend": false,
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
]
},
"meta": {
"zile": 17,
"sarbatori": 17,
"in_zile_lucratoare": 9,
"in_weekend": 8,
"temei": "art. 139 Codul Muncii; Paştele ortodox calculat, nu tabelat.",
"nota": "În România, sărbătorile care cad sâmbătă sau duminică NU se mută — cele 8 din weekend sunt zile libere pierdute în 2027."
}
}
GEThttps://oneapi.ro/api/financiar/v1/sarbatori?an=2024
{
"data": {
"an": 2024,
"zile": [
{
"data": "2024-01-01",
"zi_saptamana": "luni",
"zi_saptamana_iso": 1,
"in_weekend": false,
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
]
},
"meta": {
"zile": 17,
"sarbatori": 17,
"in_zile_lucratoare": 10,
"in_weekend": 7,
"temei": "art. 139 Codul Muncii; Paştele ortodox calculat, nu tabelat.",
"nota": "În România, sărbătorile care cad sâmbătă sau duminică NU se mută — cele 7 din weekend sunt zile libere pierdute în 2024."
}
}
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. |
| 422 | validare | A year outside 1990–2100 or not written with 4 digits. |
| 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": "validare",
"mesaj": "A year outside 1990–2100 or not written with 4 digits.",
"detalii": {
"an": [
"The value sent does not satisfy the parameter rule."
]
}
}
}