Festivos nacionales + autonómicos + fiestas patronales de los 8.132 municipios españoles, en un único feed JSON limpio. Pensada para nóminas, RR. HH. y planificación que necesitan saber: ¿es este un día laborable en este municipio concreto?
"is_holiday": true, "matches": [{ "name": "Día de la Hispanidad", "scope": "nacional" }], "next": { "date": "2026-12-06", "name": "Constitución española", "days_away": 146 }
Consigue una clave gratis al instante, sin formulario de registro ni correo:
¿Prefieres la terminal? curl -s -X POST https://festivos.dsl4.com/v1/signup
Después llama a la API:
curl -s "https://festivos.dsl4.com/v1/is-holiday?date=2026-05-15&municipio=28079" \ -H "X-API-Key: YOUR_KEY"
O usa la clave de demo pública demo_key_festivos_2026 para evaluar (con límite de uso estricto).
/v1/holidays?municipio=&year=Todos los festivos (nacionales + autonómicos + insulares + locales) de un municipio en un año dado.
/v1/is-holiday?date=&municipio=¿Es esta fecha exacta festivo aquí? Devuelve las coincidencias + un indicador de honestidad local_coverage.
/v1/next?municipio=&from=El próximo festivo de un municipio. from es hoy por defecto.
/v1/municipios?q=&ccaa=&province=Busca en el registro de más de 8.000 municipios por nombre o región para encontrar un código INE.
/v1/ccaa · /v1/coverageDatos de referencia + el registro de honestidad de cobertura local. No requiere clave de API.
/v1/signupClave de API gratuita al instante. Respuesta JSON, sin correo.
municipio acepta un código INE de 5 dígitos (p. ej. 28079) o una coincidencia exacta/por prefijo del nombre (p. ej. San Cristóbal de La Laguna).
Pasa tu clave en la cabecera X-API-Key (preferido) o como parámetro ?api_key=. Todos los endpoints /v1/* requieren clave excepto /v1/ccaa, /v1/coverage y POST /v1/signup.
Cada plan tiene un tope diario de solicitudes contado por clave y por día UTC. Cada respuesta autenticada te indica cómo vas:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 99
Al superar el tope → 429 con Retry-After. El contador se reinicia a medianoche UTC. Claves no válidas → 401.
Especificación completa: OpenAPI 3.1 · llms.txt para uso por agentes
curl -s "https://festivos.dsl4.com/v1/is-holiday?date=2026-05-15&municipio=28079" \ -H "X-API-Key: YOUR_KEY"
const res = await fetch(
"https://festivos.dsl4.com/v1/is-holiday?date=2026-05-15&municipio=28079",
{ headers: { "X-API-Key": "YOUR_KEY" } }
);
const data = await res.json();
console.log(data.is_holiday); // trueimport requests
resp = requests.get(
"https://festivos.dsl4.com/v1/is-holiday",
params={"date": "2026-05-15", "municipio": "28079"},
headers={"X-API-Key": "YOUR_KEY"},
)
print(resp.json()["is_holiday"]) # Truecurl -s "https://festivos.dsl4.com/v1/next?municipio=35016" \ -H "X-API-Key: YOUR_KEY"
const res = await fetch("https://festivos.dsl4.com/v1/next?municipio=35016", {
headers: { "X-API-Key": "YOUR_KEY" },
});
const { next } = await res.json();
console.log(next.date, next.name);import requests
resp = requests.get(
"https://festivos.dsl4.com/v1/next",
params={"municipio": "35016"},
headers={"X-API-Key": "YOUR_KEY"},
)
nxt = resp.json()["next"]
print(nxt["date"], nxt["name"])curl -s "https://festivos.dsl4.com/v1/coverage"
const res = await fetch("https://festivos.dsl4.com/v1/coverage");
const data = await res.json();
console.log(data.pct_accounted); // 100import requests
resp = requests.get("https://festivos.dsl4.com/v1/coverage")
print(resp.json()["pct_accounted"]) # 100El calendario nacional + los 19 calendarios autonómicos están completos al 100%. Las fiestas patronales locales son datos reales de portales oficiales de datos abiertos y boletines — no afirmamos tener cobertura local nacional completa. Los 8132 municipios están todos contabilizados: unos 7.700 tienen datos reales de fiesta local, el resto están verificados como sin fiesta declarada. /v1/holidays devuelve local_fiestas_declared: true/false/null para distinguir "tiene fiestas" de "verificado sin ninguna" y de "desconocido". Consulta /v1/coverage para la versión en vivo legible por máquina.
¿Ya tienes una clave gratuita? Añade ?client_reference_id=TU_CLAVE al enlace de pago para mejorar esa misma clave.