oneapi
Sign in
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 (zile and sarbatori) 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_weekend matters: 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."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareA year outside 1990–2100 or not written with 4 digits.
429cota_depasitaThe 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."
            ]
        }
    }
}