One token. One request. Always up-to-date holidays.
Built for LATAM where rules change at the last minute.
# All public holidays for Argentina 2026
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.puntuapp.com/v1/holidays?country=AR&year=2026"
# Is Dec 25 a holiday in Nigeria?
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.puntuapp.com/v1/holidays/check?country=NG&date=2026-12-25"
# Working days in January 2026 in Brazil
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.puntuapp.com/v1/holidays/working-days?country=BR&from=2026-01-01&to=2026-01-31"
import requests
HEADERS = {"Authorization": "Bearer YOUR_TOKEN"}
BASE = "https://api.puntuapp.com"
resp = requests.get(f"{BASE}/v1/holidays",
headers=HEADERS,
params={"country": "IL", "year": 2026})
for h in resp.json()["data"]:
print(f"{h['date']} {h['name']}")
const BASE = 'https://api.puntuapp.com'
const TOKEN = process.env.PUNTUAPP_TOKEN
// Next 5 holidays in USA
const res = await fetch(
`${BASE}/v1/holidays/next?country=US&count=5`,
{ headers: { Authorization: `Bearer ${TOKEN}` } }
)
const { data } = await res.json()
console.log(data) // [{date, name, type, substitute}, ...]
$ch = curl_init(
"https://api.puntuapp.com/v1/holidays?country=MX&year=2026"
);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_TOKEN"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$body = json_decode(curl_exec($ch), true);
foreach ($body['data'] as $h)
echo "{$h['date']} — {$h['name']}\n";
{
"data": [
{ "date": "2026-01-01", "name": "Año Nuevo", "type": "public" },
{ "date": "2026-02-16", "name": "Carnaval", "type": "public" },
{ "date": "2026-04-02", "name": "Malvinas", "type": "public" },
/* ... 16 more */
],
"meta": { "country": "AR", "year": 2026, "count": 19, "responseTimeMs": 8 }
}
Stop scraping Wikipedia or maintaining CSV files. One token gives you accurate, always-updated holiday data for the entire world.
Argentina, USA, Israel, Nigeria, Brazil, India, Germany and more. Full LATAM coverage including sub-national holidays.
Count business days between two dates for any country, excluding weekends and public holidays automatically.
LATAM governments announce holidays last minute. Our dataset is continuously updated — zero maintenance on your side.
Clean JSON responses. No SOAP, no WSDL, no complex auth. Bearer token in the header, get your data.
Monitor requests, credits remaining, and all your API keys. No billing surprises at end of month.
Create tokens per environment (dev/staging/prod), per client, or team. Revoke in one click from the dashboard.
GET /v1/holidaysList all holidays for a country and year. Filter by month or type (public, bank, school, observance).
GET /v1/holidays/checkCheck if a specific date is a holiday. Returns the holiday name and type if it matches.
GET /v1/holidays/nextGet the next N upcoming holidays from any date. Perfect for "next holiday" countdown widgets.
GET /v1/holidays/working-daysCount net working days between two dates. Returns weekends, public holidays, and working day count.
GET /v1/holidays/statesList regions for countries with sub-national holidays (USA, Australia, Germany, Brazil…).
GET /v1/holidays/countriesFree endpoint — list all 100+ supported countries with ISO codes and flag emojis.
# Working days in January 2026 — Mexico
curl -H "Authorization: Bearer $TOKEN" \
"https://api.puntuapp.com/v1/holidays/working-days?country=MX&from=2026-01-01&to=2026-01-31"
# {"workingDays":21,"totalDays":31,"weekends":8,"publicHolidays":2,...}
Holiday data for 10 countries, fetched right now from our API. Toggle countries to filter the view.
Powered by GET /v1/holidays/calendar — a free, public endpoint with no auth required.
Start free. Scale when you need.
High volume, custom SLA, ARS invoicing, 24/7 support.
Create your account, generate a token, and make your first request in under 2 minutes.