Deadlines API

Court deadlines API: the due date in working days

Give the starting day and the rule —for example, the civil appeal on points of law— and get the due date counting working days with the right calendar, with the step-by-step trace. If the calendar for a year is missing, it tells you: a year without data is not a year without holidays.

Access status

Access is open

Create your developer account, confirm your email and enable two-factor authentication (mandatory) to create your key. The library, calculators and deadlines do not use balance; companies and assistant come with 100 trial queries, no card needed.

Access will be for verified businesses worldwide.

Who it is for

  • Law-firm software that wants to compute and remind deadlines without maintaining the calendars.
  • Diaries, reminders and tools for court representatives and labour-law professionals.
  • Teams building their own workflows for lawyers.

What you can do

Rules by jurisdiction

GET /v1/dev/plazos/reglas lists the rules of the four jurisdictions (civil, criminal, labour and administrative), including those not yet verified against the consolidated text, with what they lack: knowing that we do not know is also information.

The due date, with its trace

POST /v1/dev/plazos/vencimiento adds the rule’s duration to the starting day with the right calendar and returns the due date, the legal basis and the warnings.

Official calendars

The official public holidays loaded, with their source, and the municipalities with a local calendar, to apply those of the body’s seat.

No default values

If the datum that decides the calendar is missing (409) the response says which; if the rule does not exist in that jurisdiction, 404.

The operations

  • GET/plazos/reglas

    Deadline rules by jurisdiction Details (Spanish)

    Free
  • GET/plazos/calendarios-oficiales

    Official public holidays loaded, with their source Details (Spanish)

    Free
  • GET/plazos/municipios

    Search the municipality of the court or body seat Details (Spanish)

    Free
  • POST/plazos/vencimiento

    Calculate the due date of a deadline in working days Details (Spanish)

    Free

Request and response examples

The examples read your key from the JURILIA_API_KEY environment variable.

The rules of one jurisdiction

Each rule with its key, unit, duration, legal basis and whether it is verified.

curl

curl "https://api.jurilia.com/v1/dev/plazos/reglas?orden=civil" \
  -H "Authorization: Bearer $JURILIA_API_KEY"

Python

import os
import requests

r = requests.get(
    "https://api.jurilia.com/v1/dev/plazos/reglas",
    headers={"Authorization": f"Bearer {os.environ['JURILIA_API_KEY']}"},
    params={"orden":"civil"},
    timeout=30,
)
r.raise_for_status()
print(r.json())

JavaScript

const url = new URL("https://api.jurilia.com/v1/dev/plazos/reglas");
url.search = new URLSearchParams({"orden":"civil"});
const r = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.JURILIA_API_KEY}` },
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
console.log(await r.json());

Response (the shape; the values are examples)

{
  "reglas": [
    { "orden": "civil", "tipo": "civil.casacion", "etiqueta": "Recurso de casación",
      "regimen": "procesal", "unidad": "dias_habiles", "duracion": 20,
      "fundamento": ["art. 479.1 LEC"], "verificado": true }
  ],
  "modalidadesSociales": ["…"]
}

The values are illustrative so you can see the exact shape of the response; they are not data from a real query.

Calculate a due date

The rule key comes from /plazos/reglas; add sedeDelOrgano to apply the official holidays of the seat.

curl

curl -X POST https://api.jurilia.com/v1/dev/plazos/vencimiento \
  -H "Authorization: Bearer $JURILIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orden":"civil","tipo":"civil.casacion","diesAQuo":"2026-03-02"}'

Python

import os
import requests

r = requests.post(
    "https://api.jurilia.com/v1/dev/plazos/vencimiento",
    headers={"Authorization": f"Bearer {os.environ['JURILIA_API_KEY']}"},
    json={"orden":"civil","tipo":"civil.casacion","diesAQuo":"2026-03-02"},
    timeout=30,
)
r.raise_for_status()
print(r.json())

JavaScript

const r = await fetch("https://api.jurilia.com/v1/dev/plazos/vencimiento", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.JURILIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"orden":"civil","tipo":"civil.casacion","diesAQuo":"2026-03-02"}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
console.log(await r.json());

Response (the shape; the values are examples)

{
  "fechaLimite": "2026-03-30",
  "fechaLimiteGracia": null,
  "traza": [
    "Dies a quo: 2026-03-02 (el plazo empieza a correr el día siguiente).",
    "Régimen: procesal. Duración: 20 dias_habiles.",
    "Suma de 20 días hábiles con el calendario aplicable: 2026-03-30."
  ],
  "fundamento": ["art. 479.1 LEC"],
  "calendario": {
    "nombre": "Procesal, régimen general",
    "fundamento": ["art. 130.2 LEC", "art. 183 LOPJ"],
    "avisos": ["Agosto entero y del 24 de diciembre al 6 de enero son inhábiles (LO 14/2022)."],
    "festivosOficiales": []
  }
}

The values are illustrative so you can see the exact shape of the response; they are not data from a real query.

Why you can trust what it returns

Civil dates, not instants

The computation works with civil dates (YYYY-MM-DD), not time zones: a clock change cannot break a deadline.

It warns when it does not know

If the calendar of a year is missing or the rule is not verified, it says so in avisos or answers 409.

Trace and legal basis

The response tells how it was counted and which articles it rests on.

Free

Deadlines and calendars use neither balance nor the trial.

Limits and what it does not do

  • It is a calculation aid: a lawyer checks the computation before relying on a due date.
  • There is a calendar only for the years loaded: the response warns when a year’s calendar is missing.
  • Rules not verified against the BOE do not calculate (409): they are declared with what they lack.
  • 120 calls per minute per key.

Price

Free. It asks for your key and respects the limit of 120 calls per minute, but uses neither balance nor the trial.

Authentication and errors

Every call carries the key of your developer account in the header Authorization: Bearer iuris_sk_…. The base address is https://api.jurilia.com. There is a limit of 120 calls per minute per key, with the headers X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset on every response. A key can carry an allow-list of IPs or networks (CIDR).

Failures come as JSON with a stable code: 401 (missing or invalid key), 402 (no balance: not served and not charged), 403 (IP not allowed), 409 (a datum that decides the calculation is missing: not charged) and 429 (too many calls in a row).

Frequently asked questions

Is there an API to calculate deadlines in working days?
Yes: POST /v1/dev/plazos/vencimiento adds a rule’s duration to the starting day with the right calendar and returns the due date with its trace.
Which calendars does it use?
The official public holidays loaded, with their source (GET /v1/dev/plazos/calendarios-oficiales). If the seat of the body is given it applies that seat’s; if a year’s calendar is missing, it warns.
Which rules are there?
GET /v1/dev/plazos/reglas lists them by jurisdiction, with their duration, legal basis and whether they are verified.
How much does it cost?
Nothing: deadlines and calendars are free. You only need your key.