feriados.io ← Inicio
apienglishbusiness-dayslatam

Business Days API for Latin America: a Developer's Guide

How to check if a date is a business day in Chile, Colombia, Mexico, Argentina and 7 more LATAM countries using a single REST API. Free plan available.

12 de febrero de 2026

If you’re building a product that operates in Latin America and need to know whether a given date is a business day, you have two options: maintain holiday lists for each country yourself, or use an API that does it for you.

This guide covers what you need to know to implement business day validation for LATAM countries, and where the complexity hides.

Why LATAM is harder than it looks

Most developers assume holiday calendars are simple: a list of fixed dates per year. In Latin America, that assumption breaks quickly.

Colombia moves 8 holidays to the following Monday every year (Ley Emiliani). The actual celebration date changes each year based on what day of the week the original date falls on. You can't reuse last year's list.

Argentina adds 2-4 extra "bridge holidays" per decree throughout the year, sometimes announced 2-3 weeks in advance. No one knows at the start of the year how many there will be.

Mexico has election-year considerations and some regional holidays that affect operations in specific states.

Brazil (not yet covered) has state-level holidays that vary significantly — São Paulo has different non-working days than Rio de Janeiro.

The point: a hardcoded list per country isn’t just inconvenient. For several countries, it’s architecturally wrong.

What you actually need

For most applications, the endpoints you’ll use are:

bash Available endpoints
GET /v1/{country}/is-business-day?date=YYYY-MM-DD
GET /v1/{country}/business-days/add?date=YYYY-MM-DD&days=N
GET /v1/{country}/business-days/between?from=YYYY-MM-DD&to=YYYY-MM-DD
GET /v1/{country}/holidays/{year}
GET /v1/{country}/next-holiday

Country codes follow ISO 3166-1 alpha-2: CL (Chile), CO (Colombia), MX (Mexico), AR (Argentina), PE (Peru), UY (Uruguay), PY (Paraguay), BO (Bolivia), EC (Ecuador), CR (Costa Rica), PA (Panama).

Authentication

All endpoints require a Bearer token:

bash Authenticated request
curl "https://api.feriados.io/v1/CL/is-business-day?date=2026-04-03" \
  -H "Authorization: Bearer frd_your_api_key"
json Respuesta
{
  "success": true,
  "data": {
    "date": "2026-04-03",
    "is_business_day": false,
    "day_of_week": "Friday"
  },
  "meta": { "country": "CL", "total": 1 }
}

Code examples

Node.js

javascript Business day check and delivery date calculation
const API = "https://api.feriados.io/v1";
const HEADERS = { "Authorization": `Bearer ${process.env.FERIADOS_API_KEY}` };

// Check if today is a business day async function isBusinessDay(country, date) { const res = await fetch( ${API}/${country}/is-business-day?date=${date}, { headers: HEADERS } ); const { data } = await res.json(); return data.is_business_day; }

// Calculate delivery date (N business days from now) async function getDeliveryDate(country, fromDate, businessDays) { const res = await fetch( ${API}/${country}/business-days/add?date=${fromDate}&days=${businessDays}, { headers: HEADERS } ); const { data } = await res.json(); return data.result_date; }

// Usage const today = new Date().toISOString().slice(0, 10); const isWorkday = await isBusinessDay(“CO”, today); const deliveryDate = await getDeliveryDate(“MX”, today, 5);

Python

python Business day check and date arithmetic
import os
import requests
from datetime import date

API = “https://api.feriados.io/v1” HEADERS = {“Authorization”: f”Bearer {os.environ[‘FERIADOS_API_KEY’]}”}

def is_business_day(country: str, check_date: str) -> bool: r = requests.get( f”{API}/{country}/is-business-day”, params={“date”: check_date}, headers=HEADERS ) return r.json()[“data”][“is_business_day”]

def add_business_days(country: str, start_date: str, days: int) -> str: r = requests.get( f”{API}/{country}/business-days/add”, params={“date”: start_date, “days”: days}, headers=HEADERS ) return r.json()[“data”][“result_date”]

Usage

today = date.today().isoformat() if not is_business_day(“AR”, today): print(“Today is a holiday in Argentina, skipping job”)

Multi-country example

The same interface works across all 11 countries:

javascript Check business day status across all countries at once
const countries = ["CL", "CO", "MX", "AR", "PE"];

const results = await Promise.all( countries.map(async (country) => { const res = await fetch( ${API}/${country}/is-business-day?date=${today}, { headers: HEADERS } ); const { data } = await res.json(); return { country, isBusinessDay: data.is_business_day }; }) );

// { country: ‘CL’, isBusinessDay: true } // { country: ‘CO’, isBusinessDay: false } ← holiday in Colombia // { country: ‘MX’, isBusinessDay: true } // …

Pricing

Plans

The Free plan includes commercial use. No credit card required.

Plan Requests/month Business day logic Price
Free 1,000 Basic validation only (is-business-day, holidays, next-holiday) $0
Starter 25,000 Full (add, subtract, between, last) $9/mo
Team 100,000 Full + iCal live feed $19/mo
Business Fair use Full + legislative alerts & webhooks $59/mo

Get your API key

Free plan with commercial use — no credit card required.

Start for free →

See also

Integra feriados.io en tu proyecto

API key gratis en 30 segundos. Sin tarjeta. 11 países de Latinoamérica, siempre actualizada con los feriados oficiales.

← Ver todos los artículos