Utile v1 / Sarbatori
Deadline in working days
What date a deadline of so many working days from a date falls on — skipping the country's weekends and holidays. The answer also says which holidays were skipped.
GET
https://oneapi.ro/api/utile/v1/sarbatori/adauga-zile-lucratoare
Query parameters
NameTypeDescriptionAccepted values
tararequired
string
REQUIRED. The country or subdivision code.
max 12 car.
de_laoptional
string | null
The date to count from. Defaults to today (Romanian time).
e.g. 2026-12-20e.g. 2026-03-31
zilerequired
integer
REQUIRED. How many working days, between −2000 and 2000, excluding zero. Negative counts backwards.
-2000 – 2000
How it behaves
- Counting starts from the NEXT day. "5 working days from Monday" gives the following Monday, not Friday — the usual convention for procedural deadlines.
- Negative values count backwards, which is just as useful: "15 working days before the deadline" is as common a question as its inverse.
- The holidays that were skipped are in the response, with their names. Without them, a deadline that looks three days too late could not be explained without redoing the arithmetic by hand.
- Years are loaded as the count passes through them. A long deadline starting in December lands in the following year, and a computation using only the starting year's holidays would miss exactly the days off around the turn of the year.
What it is for
- Compute the response deadline for a request: "30 working days from registration".
- Find out by when a document must be sent, counting BACKWARDS from the deadline.
- Set the promised delivery date, skipping the recipient country's holidays.
Response structure
All fields below live inside data.
FieldTypeDescription
tara
string
The country the value refers to.
de_la
string
Start of the interval the response covers.
zile_lucratoare
integer
How many working days the period has.
scadenta
string
The resulting date,
YYYY-MM-DD.
zi_saptamana
integer
Day of the week of the deadline, ISO 8601.
sarbatori_sarite[]
array
The holidays skipped over, with date and name.
sarbatori_sarite[].data
string
sarbatori_sarite[].nume
string
The name, exactly as the source publishes it.
zile_weekend
array
The weekend days used.
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/adauga-zile-lucratoare?tara=RO&de_la=2026-12-20&zile=10
{
"data": {
"tara": "RO",
"de_la": "2026-12-20",
"zile_lucratoare": 10,
"scadenta": "2027-01-05",
"zi_saptamana": 2,
"sarbatori_sarite": [
{
"data": "2026-12-25",
"nume": "Crăciunul"
}
],
"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/adauga-zile-lucratoare?tara=RO&zile=30
{
"data": {
"tara": "RO",
"de_la": "2026-10-06",
"zile_lucratoare": 30,
"scadenta": "2026-11-17",
"zi_saptamana": 2,
"sarbatori_sarite": [],
"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/adauga-zile-lucratoare?tara=RO&de_la=2026-03-31&zile=-15
{
"data": {
"tara": "RO",
"de_la": "2026-03-31",
"zile_lucratoare": -15,
"scadenta": "2026-03-10",
"zi_saptamana": 2,
"sarbatori_sarite": [],
"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/adauga-zile-lucratoare?tara=DE&zile=30
{
"data": {
"tara": "DE",
"de_la": "2026-10-06",
"zile_lucratoare": 30,
"scadenta": "2026-11-17",
"zi_saptamana": 2,
"sarbatori_sarite": [],
"zile_weekend": [
6,
7
],
"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 | zile is 0 or outside −2000…2000. |
| 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": "zile is 0 or outside −2000…2000.",
"detalii": {
"tara": [
"The value sent does not satisfy the parameter rule."
]
}
}
}