Documentación
1. Introducción
La API de vacaciones devuelve días festivos y celebraciones por país y/o religión. El punto final de días hábiles (GET /api/business-days) utiliza la misma autenticación de clave API. Todas las solicitudes requieren autenticación con clave API. Puede crear y administrar claves API en su dashboard. El plan gratuito (estándar) utiliza la misma URL base y la misma clave API para que puedas probar la integración antes de pasar a producción.
2. Plan gratuito (estándar)
Cada cuenta verificada comienza con el plan gratuito. Puede utilizar los mismos puntos finales, parámetros y autenticación para crear y probar su integración. Cuando el plan gratuito ya no sea suficiente, actualice el panel.
Qué funciona igual
Tienes acceso a la misma API de vacaciones: la misma URL base, GET /api/holidays y los mismos parámetros de consulta (country, religion, from, to, lang, region, provisional, type, scope). GET /api/business-days también está disponible con la misma autenticación y el formato de respuesta es idéntico, por lo que puede desarrollar y probar su código con la API real sin cambiar nada al actualizar.
Limitaciones
- Cuota mensual de solicitudes: El plan gratuito incluye una cantidad fija de solicitudes por mes calendario. Cuando alcanza la cuota, las solicitudes se bloquean hasta el mes siguiente o hasta que actualice.
- Límites de recursos: El plan gratuito limita las claves API, los idiomas y el acceso a vacaciones por subdivisión. Consulte precios para conocer los límites completos.
- Sin excedente en Gratis: El plan gratuito no incluye el excedente pagado. Actualice para continuar después de alcanzar el límite.
Para obtener el conjunto completo de resultados y límites listos para producción, elija un plan de precios o vaya a Uso o Facturación en su panel.
3. Autenticación
Envíe su clave API en la cabecera Authorization como token Bearer. Cree claves en la página Claves API de su panel de control.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/holidays?country=US"4. URL básica
Utilice https://api.holidaydb.com para todas las solicitudes de API. Para CURL y integraciones del lado del servidor, debe utilizar esta URL absoluta.
5. GET /api/holidays
Devuelve días festivos filtrados por country y/o religion. Al menos uno de country o religion es obligatorio.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Códigos de país ISO de 2 letras separados por comas (por ejemplo: US, DE, FR). |
religion | string | Slugs de religión separados por comas (p. ej., christian, islamic). |
region | string | Código de subdivisión (por ejemplo: US-DC, DE-BY). Se aplica al primer país cuando se enumeran varios. Solo Pro y Full; en Básico, al enviar region se devuelve 403 (omitir solo para nacional). |
from | date | Fecha de inicio (YYYY-MM-DD). |
to | date | Fecha de finalización (YYYY-MM-DD). |
lang | string | Idioma para los nombres de los festivos. Solo plan Full. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Si se omite lang, se usa la primera etiqueta Accept-Language (mismas reglas). |
provisional | true | false | Filtrar por fechas provisionales (true) o confirmadas (false). |
substitute | true | false | Filtra por días sustitutos/observados: true (solo sustitutos), false (excluye) u omitido (ambos). |
include | string | Opcional. Separados por coma: canonical (incluye canónicos en líneas sustitutas), substitute (incluye sustitutos en líneas canónicas). meta no se admite aquí (use los campos de vacaciones estándar en cada objeto). |
type | string | public_holiday o observance; separados por coma para varios. |
scope | string | national o subnational; separados por coma para varios. |
Respuesta: Matriz JSON de objetos festivos con uuid, country_code, religion_slug, type, scope, region_codes, region_names, start_date, end_date, provisional, substitute, summary, language. Para los calendarios de países (country_code no nulos), type y scope describen categorías territoriales (día festivo frente a observancia, nacional frente a subnacional). Para los calendarios religiosos (religion_slug no nulo y, a menudo, country_code nulo), type y scope pueden ser "desconocidos" y no deben interpretarse como territoriales; utilice religion_slug (y fechas) para trabajar con estas observaciones. Los días festivos sustitutos incluyen canonical_uuid. Utilice include=canonical para incorporar el feriado canónico de cada sustituto; use include=substitute para incrustar una matriz substitutes en cada canónico.
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/holidays?country=US"Respuesta de ejemplo
[
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"country_code": "US",
"religion_slug": null,
"type": "public_holiday",
"scope": "national",
"region_codes": [],
"region_names": [],
"start_date": "2026-07-04",
"end_date": "2026-07-04",
"provisional": false,
"summary": "Independence Day",
"language": "en"
}
// ...más objetos vacacionales en la respuesta completa
]6. GET /api/business-days
Prueba sin escribir código
La calculadora de días laborables de este sitio permite elegir un país y un año, opcionalmente un mes concreto y, opcionalmente, un estado o provincia cuando los festivos regionales deben restarse del recuento (region). También puede definir qué días de la semana cuentan como laborables (weekdays). El resultado coincide con esta API.
Devuelve cuántos días hábiles caen en un mes o año calendario completo para un país ISO. Por defecto, la semana laboral es de lunes a viernes (días ISO 1,2,3,4,5); puede sobrescribir con weekdays opcional. De forma predeterminada, sólo se excluyen los días festivos nacionales. Con region opcional, el recuento también excluye los días festivos subnacionales cuyo region_codes contiene este código ISO 3166-2: la misma regla que GET /api/holidays?country=...®ion=... (los días nacionales siempre cuentan; region no significa "solo región"). Este punto final requiere la misma clave de API de portador y permisos de token que GET /api/holidays.
El filtrado de subdivisiones requiere un plan que incluya días festivos de subdivisión (Pro/Full), al igual que la API de días festivos.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, KE, NG). |
region | string | Opcional. Subdivisión ISO 3166-2 (ej.: US-CA o CA con country=US). Excluye los feriados nacionales y los feriados subnacionales programados para esa región. Omitir sólo para el recuento nacional. El filtrado de subdivisiones solo está disponible en los planes Pro y Full. En Básico, si envía region, la API devuelve 403 informándole que los días festivos de la subdivisión no están incluidos (no hay un respaldo silencioso a nacional); omita region para el recuento nacional en Básico. |
year | integer | Obligatorio en modo calendario. Debe estar dentro de una ventana deslizante alrededor del año actual del servidor: de forma predeterminada, cinco años antes y cinco años después (inclusive), para mantener el rango cerca de los datos de vacaciones publicados. No enviar con from/to. |
month | integer | Opcional en modo calendario. Mes 1-12; omitir para el año calendario completo (del 1 de enero al 31 de diciembre). No enviar con from/to. |
from | date | Modo de rango: fecha de inicio YYYY-MM-DD, inclusive. Utilícelo únicamente con to (sin year/month). Mismas reglas de conteo que en el modo calendario. El intervalo inclusivo de from a to no puede exceder los días 731 (aproximadamente dos años). |
to | date | Modo de intervalo: fecha de finalización YYYY-MM-DD, inclusive. Debe ser igual o mayor que from. Junto con from, el rango es como máximo 731 días naturales inclusive. |
weekdays | string | Opcional. Números de días ISO separados por una coma, de 1 (lunes) a 7 (domingo), por ejemplo: 1,2,3,4,5 de lunes a viernes (valor predeterminado cuando se omite). Se ignoran los duplicados; el orden está normalizado a ascendente. Los valores no válidos devuelven 422. |
lang | string | Opcional. Idioma para los nombres en el array holidays cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
include | string | Opcional. En: 1 o true agrega una matriz holidays (metadatos completos y canonical/substitutes anidados cuando el calendario lo define). Desactivado: omitido, vacío, 0 o false (sin holidays en JSON). |
Respuesta: Objeto JSON con country_code, region (código normalizado o nulo), weekdays (matriz de números enteros realmente utilizados para contar), year y month (ambos nulos en modo de rango), range (fechas from/to, ventana siempre inclusiva resuelta) y business_days (recuento de enteros). Cuando include es 1 o true, la respuesta también trae holidays: días festivos utilizados en el recuento (solo nacional cuando se omite region; nacional + subnacional correspondiente cuando se ingresa region), con campos completos como ninguna última pestaña de ejemplo.
Si aún no hemos cubierto el calendario de ese país, la API devuelve 404 con error y country_code (no es el mismo cuerpo que "País no encontrado" en GET /api/holidays).
Las primeras cuatro pestañas de ejemplo omiten include (sin holidays en el JSON de ejemplo). La última pestaña muestra include=1 con la matriz holidays.
Los ejemplos siguientes utilizan 2026. Los números en business_days se compararon manualmente con las normas nacionales oficiales: feriados federales de EE. UU. (OPM); Días festivos alemanes observados en todos los estados en esa fecha; Los feriados legales federales de Canadá (julio de 2026 tiene el Día de Canadá en miércoles). Los días festivos fijos de fin de semana no reducen el recuento de días laborables. Los valores de Live API siguen los días festivos almacenados en HolidayDB y deben coincidir con las mismas reglas; Si se agrega o corrige una línea en nuestros datos, los recuentos pueden cambiar ligeramente.
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/business-days?country=US&year=2026&month=1"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"business_days": 20
}7. GET /api/working-hours
Prueba sin escribir código
El calculadora de horas trabalhadas de este sitio utiliza las mismas reglas de días festivos que los días hábiles, más una duración del día laborable (workday), para que usted calcule el total de minutos y horas trabajadas.
Devuelve cuántos minutos de trabajo (y un resumen de horas/minutos) corresponden a un mes calendario, un año completo o un rango de fechas inclusive para un país ISO. Utilice las mismas reglas para los días de la semana y feriados que GET /api/business-days, luego multiplíquelas por la duración obligatoria del día laboral (workday).
El filtrado por subdivisión (region) requiere un plan con días festivos de subdivisión (Pro/Full), al igual que la API de días festivos y días hábiles.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, KE, NG). |
region | string | Opcional. Subdivisión ISO 3166-2 (ej.: US-CA o CA con country=US). Mismas reglas y límites que el plan de días hábiles. |
year | integer | Obligatorio en modo calendario. Las mismas reglas de ventana móvil que para los días hábiles. No enviar con from/to. |
month | integer | Opcional en modo calendario. Mes 1-12; omitir durante todo el año. No enviar con from/to. |
from | date | Modo de rango: fecha de inicio YYYY-MM-DD, inclusive. Úselo solo con to (sin year/month). Mismas reglas para intervalos máximos de días hábiles. |
to | date | Modo de intervalo: fecha de finalización YYYY-MM-DD, inclusive. Debe ser igual o mayor que from. |
weekdays | string | Opcional. Igual que los días hábiles: números de días ISO separados por comas de 1-7. Patrón de lunes a viernes. |
lang | string | Opcional. Idioma para los nombres en el array holidays cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
include | string | Opcional. Igual que los días hábiles: 1/true incluye la matriz holidays; omitido/vacío/0/false no incluido. |
workday | string | Obligatorio. Duración del viaje en el formato H:MM o HH:MM (ej.: 08:00, 7:30). Debe ser como mínimo 00:01 y como máximo 24:00. |
Respuesta: Objeto JSON con los mismos campos base que los días hábiles, más working_days, workday, workday_minutes, working_minutes y working_hours (resumen de horas/minutos).
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/working-hours?country=US&year=2026&month=1&workday=08:00"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"working_days": 20,
"workday": "08:00",
"workday_minutes": 480,
"working_minutes": 9600,
"working_hours": {
"hours": 160,
"minutes": 0
}
}8. GET /api/salary-proration
Prueba sin escribir código
Utilice calculadora de rateio salarial en este sitio para prorratear un salario por días laborables dentro de un período de nómina (días de la semana menos días festivos).
Prorratea un monto de salario en función de los días hábiles dentro de un período seleccionado de un período de nómina. Los días laborables se cuentan como días ISO seleccionados (estándar de lunes a viernes) menos los días festivos (y los días festivos regionales opcionales cuando se utiliza region).
Puedes elegir el periodo de nómina por modo calendario (year/month) o por fechas explícitas (period_from/period_to). Opcionalmente, ingrese una ventana de prorrateo personalizada (from/to) dentro de este período; de lo contrario, la ventana es todo el período.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, US, KE). |
region | string | Opcional. Subdivisión ISO 3166-2 (Pro/Full). Agrega feriados subnacionales a las reglas nacionales. |
weekdays | string | Opcional. Números de días ISO separados por comas de 1-7. Predeterminado de lunes a viernes (1,2,3,4,5). |
lang | string | Opcional. Idioma para los nombres en el array holidays cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
salary | string | Obligatorio. Valor decimal en cadena (por ejemplo: 5000, 5000.00, 1234.5). |
salary_scale | integer | Opcional. Lugares decimales para normalizar salary (0-6). Valor predeterminado: 2. |
year | integer | Modo calendario. Requerido cuando se usa month o cuando se omiten period_from/period_to. Mismas reglas que la ventana móvil de año de días hábiles. |
month | integer | Modo calendario. Opcional 1-12; omitir durante el período foliar anual completo. No combinar con period_from/period_to. |
period_from | date | Modo de período explícito. Fecha de inicio del periodo de nómina YYYY-MM-DD, inclusive. Debe usarse junto con period_to. No combinar con year/month. |
period_to | date | Modo de período explícito. Fecha de finalización del periodo de nómina YYYY-MM-DD, inclusive. Debe ser igual o mayor que period_from. |
from | date | Opcional inicio de la ventana de prorrateo YYYY-MM-DD, inclusive. Debe estar dentro del periodo foliar. Úselo con to. |
to | date | Opcional ventana de fin de prorrateo YYYY-MM-DD, inclusive. Debe estar dentro del periodo foliar. |
include | string | Opcional. Misma semántica que los días hábiles: 1/true incluye la matriz holidays de la ventana de prorrateo; omitido/vacío/0/false no incluido. |
Respuesta: Objeto JSON con period_working_days, window_working_days, ratio, salary y prorated_salary. Utilice period para los límites del período de hoja y range para la ventana de prorrateo.
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/salary-proration?country=US&year=2026&month=1&salary=5000"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"period": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"period_working_days": 20,
"window_working_days": 20,
"ratio": "1.000000",
"salary": "5000.00",
"salary_scale": 2,
"prorated_salary": "5000.00"
}9. GET /api/leave-pto
Prueba sin escribir código
Utilice calculadora de licenca / PTO de este sitio para modelar la acumulación, las vacaciones tomadas y el saldo final (horas + días).
Calcula las vacaciones acumuladas, las vacaciones tomadas (ventana opcional) y el saldo final para un período de cálculo. El tiempo de trabajo se deriva del weekdays seleccionado menos los días festivos para el country seleccionado y el region opcional.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, US, DE). |
region | string | Opcional. Subdivisión ISO 3166-2 (Pro/Full). Agrega feriados subnacionales a las reglas nacionales. |
weekdays | string | Opcional. Números de días ISO separados por comas de 1-7. Predeterminado de lunes a viernes (1,2,3,4,5). |
workday | string | Obligatorio. Duración del viaje en H:MM o HH:MM (por ejemplo: 08:00, 7:30). Se utiliza para calcular horas y días derivados. |
lang | string | Opcional. Idioma para los nombres en el array holidays cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
include | string | Opcional. 1/true incluye una matriz holidays (para la ventana de licencia cuando se informa, en caso contrario para todo el período de cálculo). |
year | integer | Modo calendario. Requerido cuando se usa month o cuando se omiten period_from/period_to. |
month | integer | Modo calendario. Opcional 1-12; omitir para el período anual completo. No combinar con period_from/period_to. |
period_from | date | Modo de período explícito. Inicio del periodo de cálculo YYYY-MM-DD, inclusive. Debe usarse junto con period_to. No combinar con year/month. |
period_to | date | Modo de período explícito. Fin del periodo de cálculo YYYY-MM-DD, inclusive. Debe ser igual o mayor que period_from. |
from | date | Ventana de inicio de licencia opcional YYYY-MM-DD, inclusive. Debe estar dentro del periodo de cómputo. Úselo con to. |
to | date | Ventana de fin de licencia opcional YYYY-MM-DD, inclusive. Debe estar dentro del periodo de cómputo. |
from[] / to[] | date[] | Opcional. Múltiples ventanas de licencia. Ingrese pares repetidos de from[] y to[] (la misma cantidad de elementos). Las ventanas pueden superponerse; Las superposiciones se combinan para evitar días de doble conteo. Cuando se ingresan varias ventanas, la respuesta incluye leave_windows y leave se convierte en null. |
taken_hours_override | string | Opcional. Sobrescribe el tiempo necesario calculado para la ventana de licencia (cadena decimal de horas, por ejemplo: 7.5). |
carryover_hours | string | Opcional. Saldo inicial (puede ser negativo), como cadena decimal de horas. |
accrual_rate_hours_per_workday | string | Opcional. Tasa de acumulación por día laborable (horas decimales). Mutuamente excluyente con accrual_hours_per_month / accrual_hours_per_year. |
accrual_hours_per_month | string | Opcional. Valor acumulado para un mes calendario completo (horas decimales). Requiere que el periodo de cálculo sea un mes calendario completo (use year+month). |
accrual_hours_per_year | string | Opcional. Valor acumulado para un año calendario completo (horas decimales). Requiere que el periodo de cálculo sea un año calendario completo (use year sin month). |
accrual_cap_hours | string | Opcional. Si se informa, el saldo final se limita a esta cantidad (horas decimales). |
Respuesta: Objeto JSON con límites de período, totales de trabajo y campos de saldo híbrido: accrued_hours/taken_hours/ending_balance_hours más valores derivados *_days.
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/leave-pto?country=US&year=2026&month=1&workday=08:00&accrual_hours_per_month=8"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"workday": "08:00",
"workday_minutes": 480,
"period": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"period_working_days": 21,
"accrued_hours": "8.00",
"taken_hours": "0.00",
"ending_balance_hours": "8.00"
}10. GET /api/sla-deadline
Calcula una fecha de vencimiento agregando días hábiles a una fecha de inicio, excluyendo fines de semana y días festivos para el country seleccionado y el region opcional.
Prueba sin escribir código
Utilice calculadora de prazo de SLA en este sitio para comprobar rápidamente la fecha límite.
Parámetros de consulta
Los parámetros obligatorios son country, start y sla_business_days.
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, US, DE). |
start | date | Obligatorio. Fecha de inicio YYYY-MM-DD. La fecha de inicio se trata como el día 0. |
sla_business_days | integer | Obligatorio. Número de días hábiles para agregar después de start (0 regresa el mismo día). |
region | string | Opcional. Subdivisión ISO 3166-2 (Pro/Full). Agrega feriados subnacionales a las reglas nacionales. |
weekdays | string | Opcional. Números de días ISO separados por comas 1-7 (patrón de lunes a viernes). |
include | string | Opcional. 1/true incluye una matriz holidays para el rango analizado. |
lang | string | Opcional. Idioma para los nombres cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
Respuesta: Objeto JSON con deadline y campos de contexto relacionados (country/region, weekdays y rango de análisis).
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/sla-deadline?country=US&start=2026-01-02&sla_business_days=1"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"start": "2026-01-02",
"sla_business_days": 1,
"deadline": "2026-01-05"
}11. GET /api/delivery-date
Calcula una fecha de entrega estimada sumando días hábiles a una fecha inicial, excluyendo fines de semana y días festivos para el country seleccionado y el region opcional.
Prueba sin escribir código
Utilice calculadora de data de entrega en este sitio para obtener una estimación rápida.
Parámetros de consulta
Los parámetros obligatorios son country, start y delivery_business_days.
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, US, DE). |
start | date | Obligatorio. Fecha de inicio YYYY-MM-DD. La fecha de inicio se trata como el día 0. |
delivery_business_days | integer | Obligatorio. Número de días hábiles para agregar después de start (0 regresa el mismo día). |
region | string | Opcional. Subdivisión ISO 3166-2 (Pro/Full). Agrega feriados subnacionales a las reglas nacionales. |
weekdays | string | Opcional. Números de días ISO separados por comas 1-7 (patrón de lunes a viernes). |
include | string | Opcional. 1/true incluye una matriz holidays para el rango analizado. |
lang | string | Opcional. Idioma para los nombres cuando include=1. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
Respuesta: Objeto JSON con delivery_date y campos de contexto relacionados (country/region, weekdays y rango de análisis).
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/delivery-date?country=US&start=2026-01-02&delivery_business_days=3"Respuesta de ejemplo
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"start": "2026-01-02",
"delivery_business_days": 3,
"delivery_date": "2026-01-07"
}12. GET /api/bridge-days
Devuelve oportunidades de 'día puente' para country y year: secuencias cortas de días laborables entre días no laborables, donde al menos un bloque vecino contiene un día festivo. Cada oportunidad incluye el bloque de tiempo libre consecutivo resultante y un índice de eficiencia para que usted clasifique buenas oportunidades de vacaciones prolongadas.
Prueba sin escribir código
Utilice calculadora de pontes / feriados prolongados de este sitio para planificar largas vacaciones en su navegador.
Parámetros de consulta
Los parámetros obligatorios son country y year.
| Parámetro | Tipo | Descripción |
|---|---|---|
country | string | Obligatorio. Código de país ISO 3166-1 alfa-2 de dos letras (por ejemplo, US, DE). |
year | integer | Obligatorio. Año calendario dentro de la ventana móvil permitida. |
month | integer | Opcional. 1-12 para limitar el análisis a un solo mes. |
region | string | Opcional. Subdivisión ISO 3166-2 (Pro/Full). Agrega feriados subnacionales a las reglas nacionales. |
weekdays | string | Opcional. Números de días ISO separados por comas 1-7 (patrón de lunes a viernes). |
max_gap | integer | Opcional. Tamaño máximo de puente en días laborables (1-3, valor predeterminado 1). Los valores más altos muestran oportunidades de 2 y 3 días, como un feriado el martes seguido del fin de semana. |
include | string | Opcional. 1/true incluye una matriz holidays para el rango consultado. |
lang | string | Opcional. Idioma para los nombres de los festivos. Código de GET /api/languages (p. ej., de, pt-BR, en). La coincidencia no distingue mayúsculas; guión y guión bajo son equivalentes. Los códigos no admitidos usan nombres en inglés. Por defecto en si se omite. |
Respuesta: Objeto JSON con una matriz bridge_opportunities ordenada por eficiencia decreciente. Cada oportunidad expone los días laborables que deben tomarse, el bloque de tiempo libre consecutivo resultante, el número de días libres, el ratio de eficiencia (días libres/días puente) y los feriados ancla.
Ejemplos
Solicitud
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/bridge-days?country=DE&year=2026"Respuesta de ejemplo
{
"country_code": "DE",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": null,
"max_gap": 1,
"range": {
"from": "2026-01-01",
"to": "2026-12-31"
},
"bridge_opportunities": [
{
"bridge_days": [
"2026-05-15"
],
"bridge_days_count": 1,
"off_block": {
"from": "2026-05-14",
"to": "2026-05-17"
},
"off_days_count": 4,
"efficiency": 4,
"anchor_holidays": [
{
"uuid": "...",
"summary": "Christi Himmelfahrt",
"start_date": "2026-05-14",
"end_date": "2026-05-14"
}
]
}
]
}13. GET /api/languages
Devuelve la lista de configuraciones regionales admitidas por HolidayDB para los nombres de días festivos traducidos. Este endpoint está disponible para planes que incluyen varios idiomas (Completo). Si su plan solo incluye inglés, la API devuelve `403`.
Parámetros de consulta
Ninguno.
Respuesta
Objeto JSON con una matriz languages. Cada artículo contiene un code (por ejemplo: en, de, pt_BR, en_US) y un name. Pase estos códigos a lang; consulte el parámetro lang para conocer la coincidencia de etiquetas principales y el respaldo.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/languages"{
"languages": [
{ "code": "en", "name": "English" },
{ "code": "de", "name": "German" }
]
}Las páginas de calculadora de este sitio utilizan un punto final de ayuda público GET /api/tools/languages para completar los selectores de idioma sin requerir una clave API.
14. Errores
| Status | Significado |
|---|---|
| 401 | Clave API ausente o no válida. |
| 402 | Cuota mensual del plan Free superada. message / detail obsoletos y campos legacy pueden seguir devolviéndose. |
| 403 | Filtre por subdivisión o función no incluida en su plan (por ejemplo, se requiere Pro/Full), o token sin alcance api. |
| 404 | País no encontrado en GET /api/holidays, o sin cobertura de festivos en calculadoras (incluye country_code cuando se conoce). |
| 422 | Error de validación: al menos uno de country/religion requerido (formulario de consulta), type/scope no válido, provisional, substitute o include en GET /api/holidays, rango de fechas no válido, slug de religión no válido, include no válido en GET /api/business-days (use 0, false, 1 o true), workday no válido en GET /api/working-hours o campos de días hábiles/horas laborales no válidos (por ejemplo: weekdays). Incluye un objeto errors. |
| 500 | Sin plan de suscripción activo o error interno inesperado. message / detail obsoletos y campos legacy pueden seguir devolviéndose. |
Cuerpo de respuesta de error
Las respuestas de error son JSON en la API de producto autenticada (GET /api/holidays, endpoints de calculadora, etc.).
| Campo | Estado | Descripción |
|---|---|---|
error | Obligatorio | Mensaje legible. Use este campo en integraciones nuevas. |
errors | Solo 422 | Objeto que asocia nombres de campo con arrays de mensajes (validación). |
country_code | Solo 404 | Código ISO del país cuando falta cobertura de festivos (endpoints de calculadora). |
message | Obsoleto | Mismo texto que error. Sigue devolviéndose por compatibilidad. |
detail | Obsoleto | Mismo texto que error en algunas respuestas 402 y 500. Sigue devolviéndose por compatibilidad. |
id, status, title, code | Obsoleto | Campos legacy en algunas respuestas 402 y 500 (code p. ej. E0, no un slug snake_case). |
Las rutas públicas /api/tools/* usan otro formato de error y no se describen aquí.
Clave API faltante o no válida.
{
"error": "Unauthorized. Provide a valid API key in the Authorization header as Bearer token."
}15. Límites del plan
El parámetro region (vacaciones de subdivisión) y el parámetro lang (varios idiomas) requieren planes Pro o Full. Básico sólo incluye festivos nacionales en inglés. Consulte precios o sus páginas Facturación y Uso para obtener más detalles.
