Feriados
GET
/v1/feriados/{año}
Devuelve los feriados del año indicado (o del año actual si no se especifica).
Parámetros
Path Parameters
año
Año de consulta
Tipointeger
Ejemplo
2024
minimum
2016
maximum
2025
Respuestas
Devuelve los feriados del año actual
application/json
JSON
[
{
"fecha": "string",
"tipo": "string",
"nombre": "string"
}
]
GET
/v1/feriados/{año}
Ejemplos
cURL
curl -X GET \
'https://api.argentinadatos.com/v1/feriados/2024' \
-H "Content-Type: application/json"
JavaScript
fetch('https://api.argentinadatos.com/v1/feriados/2024')
.then(response => response.json())
.then(data => console.log(data));
PHP
<?php
$url = 'https://api.argentinadatos.com/v1/feriados/2024';
$method = 'GET';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Python
import requests
url = 'https://api.argentinadatos.com/v1/feriados/2024'
response = requests.get(url)
print(response.json())
Ejemplos de uso
Próximos feriados
Feriados del año
Calendario por mes
js
async function getData() {
const data = await fetch('https://api.argentinadatos.com/v1/feriados').then((res) => res.json())
const colorsMap = {
inamovible: '#f97316',
trasladable: '#3b82f6',
puente: '#22c55e',
}
const allDays = []
const startDate = new Date(data[0].fecha)
const endDate = new Date(startDate.getUTCFullYear(), 11, 31)
for (let i = startDate.getUTCDay(); i > 0; i--) {
const date = new Date(startDate)
date.setDate(startDate.getDate() - i)
allDays.push({
fecha: date.toISOString().slice(0, 10),
nombre: "",
tipo: '',
diaSemana: date.getUTCDay(),
mes: startDate.getUTCMonth(),
año: startDate.getUTCFullYear(),
color: '#fff',
colorTexto: '#000',
semanaAño: 1,
semanaMes: 1,
})
}
while (startDate <= endDate) {
const diaFeriado = data.find((d) => d.fecha === startDate.toISOString().slice(0, 10))
const finSemana = startDate.getUTCDay() === 0 || startDate.getUTCDay() === 6
const semana = Math.ceil((startDate - new Date(startDate.getUTCFullYear(), 0, 1)) / 86400000 / 7)
const semanaMes = (date) => {
const firstDay = new Date(date.getUTCFullYear(), date.getUTCMonth(), 1)
return Math.ceil((date.getUTCDate() + firstDay.getUTCDay()) / 7)
}
const x = Math.ceil((allDays.length + 1) / 7)
if (diaFeriado) {
allDays.push({
fecha: startDate.toISOString().slice(0, 10),
nombre: data.find((d) => d.fecha === startDate.toISOString().slice(0, 10)).nombre,
tipo: data.find((d) => d.fecha === startDate.toISOString().slice(0, 10)).tipo,
diaSemana: startDate.getUTCDay(),
semana: semana,
mes: startDate.getUTCMonth(),
año: startDate.getUTCFullYear(),
color: colorsMap[diaFeriado.tipo],
colorTexto: '#fff',
semanaAño: x,
semanaMes: semanaMes(startDate),
})
} else {
allDays.push({
fecha: startDate.toISOString().slice(0, 10),
nombre: "",
tipo: '',
diaSemana: startDate.getUTCDay(),
semana: semana,
mes: startDate.getUTCMonth(),
año: startDate.getUTCFullYear(),
color: finSemana ? '#6b7280' : '#e5e7eb',
colorTexto: finSemana ? '#fff' : '#000',
semanaAño: x,
semanaMes: semanaMes(startDate),
})
}
startDate.setDate(startDate.getDate() + 1)
}
for (let i = 1; i < 7 - endDate.getUTCDay(); i++) {
const date = new Date(endDate)
date.setDate(endDate.getDate() + i)
allDays.push({
fecha: date.toISOString().slice(0, 10),
nombre: "",
tipo: '',
diaSemana: date.getUTCDay(),
mes: allDays[allDays.length - 1].mes,
año: date.getUTCFullYear(),
color: '#fff',
colorTexto: '#000',
semanaAño: allDays[allDays.length - 1].semanaAño,
semanaMes: allDays[allDays.length - 1].semanaMes,
})
}
return allDays.map((d, index) => {
d.diaAnio = index
d.mesNombre = new Date(d.año, d.mes, 1).toLocaleString('es-ES', { month: 'long' })
return d
})
}
js
(async () => {
const data = await getData()
return Plot.plot({
width: 350,
marginRight: 100,
padding: 0,
x: {
axis: 'top',
},
y: {
tickFormat: Plot.formatWeekday("es", "narrow"),
tickSize: 0,
},
facet: {
data: data,
y: d => d.mes,
},
fy: {
tickFormat: d => new Date(0, d, 1).toLocaleString('es-ES', { month: 'long' }),
},
marks: [
Plot.cell(data, {
x: d => d.semanaMes,
y: d => d.diaSemana,
fill: d => d.color,
tip: {
format: {
fecha: true,
x: d => `Semana ${d}`,
y: d => new Date(0, 0, d).toLocaleString('es-ES', { weekday: 'long' }),
fy: d => new Date(0, d, 1).toLocaleString('es-ES', { month: 'long' }),
stroke: false,
}
},
}),
Plot.text(data, {
x: d => d.semanaMes,
y: d => d.diaSemana,
text: d => d.fecha.slice(8, 10),
fill: d => d.colorTexto,
align: 'center',
baseline: 'middle',
fontSize: 8,
}),
]
})
})()