Utile v1 / Sarbatori
Is it a day off?
Whether a given day is off in a country, and why: weekend, public holiday, or a day off only in one subdivision.
GET
https://oneapi.ro/api/utile/v1/sarbatori/este-sarbatoare
Query parameters
NameTypeDescriptionAccepted values
tararequired
string
REQUIRED. The country or subdivision code.
max 12 car.
dataoptional
string | null
The day to check,
YYYY-MM-DD. Defaults to today (Romanian time).
e.g. 2026-12-25e.g. 2026-12-24e.g. 2026-09-11
How it behaves
- Three distinct states, deliberately kept apart: a day can be a holiday BUT a working day (a marked day, not a day off), or a day off because it is the weekend without being a holiday. A single "off/not off" field would hide which case it is.
- The weekend is not Saturday+Sunday everywhere. Among the countries with holiday coverage, Iran has a one-day weekend, on Friday. The days actually used are in
zile_weekend, taken from CLDR rather than assumed. Week conventions exist for ALL countries, via/utile/v1/coduri/tari, even where we have no holidays. - The field is named
zi, notdata, even though the parameter isdata: a top-level field calleddatawould collide with the platform's JSON envelope.
What it is for
- Decide whether a courier can deliver tomorrow in the recipient's country.
- Check, in a booking form, whether the chosen date is a working day.
- Find out whether a payment order sent today will be processed or will wait.
Response structure
All fields below live inside data.
FieldTypeDescription
tara
string
The country the value refers to.
zi
string
The day checked.
zi_saptamana
integer
Day of the week, ISO 8601 (1 = Monday … 7 = Sunday).
weekend
boolean
Whether the day falls in that country's weekend.
sarbatoare
boolean
Whether it is marked as a holiday, regardless of being a day off.
nelucratoare
boolean
The practical conclusion: weekend OR non-working holiday.
zile
array
The holidays falling on this day (there can be more than one).
zile_weekend
array
Which days are the weekend in this country, as ISO numbers.
sursa
string
Where the days come from, stated explicitly.
verificat
boolean
true only if the source is the letter of the law.
Response examples
GEThttps://oneapi.ro/api/utile/v1/sarbatori/este-sarbatoare?tara=RO
{
"data": {
"tara": "RO",
"zi": "2026-10-06",
"zi_saptamana": 2,
"weekend": false,
"sarbatoare": false,
"nelucratoare": false,
"zile": [],
"zile_weekend": [
6,
7
],
"sursa": "art. 139 din Codul Muncii (Legea 53/2003), prin modulul Financiar",
"verificat": true
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/este-sarbatoare?tara=RO&data=2026-12-25
{
"data": {
"tara": "RO",
"zi": "2026-12-25",
"zi_saptamana": 5,
"weekend": false,
"sarbatoare": true,
"nelucratoare": true,
"zile": [
{
"data": "2026-12-25",
"nume": "Crăciunul",
"cheie": "craciun_1",
"mobila": false,
"nelucratoare": true
}
],
"zile_weekend": [
6,
7
],
"sursa": "art. 139 din Codul Muncii (Legea 53/2003), prin modulul Financiar",
"verificat": true
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/este-sarbatoare?tara=DE&data=2026-12-24
{
"data": {
"tara": "DE",
"zi": "2026-12-24",
"zi_saptamana": 4,
"weekend": false,
"sarbatoare": false,
"nelucratoare": false,
"zile": [],
"zile_weekend": [
6,
7
],
"sursa": "Yasumi (MIT) — calculat algoritmic",
"verificat": false
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/este-sarbatoare?tara=IR&data=2026-09-11
{
"data": {
"tara": "IR",
"zi": "2026-09-11",
"zi_saptamana": 5,
"weekend": true,
"sarbatoare": false,
"nelucratoare": true,
"zile": [],
"zile_weekend": [
5
],
"sursa": "Yasumi (MIT) — calculat algoritmic",
"verificat": false
}
}
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. |
| 404 | negasit | The country is not covered. |
| 422 | validare | A parameter failed validation (tara, data); detalii says which and why. |
| 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 parameter failed validation (tara, data); detalii says which and why.",
"detalii": {
"tara": [
"The value sent does not satisfy the parameter rule."
]
}
}
}