TL;DR
Nager.Date is a comprehensive public holidays API covering over 100 countries with data on public holidays, bank holidays, school holidays, and observances. Just specify a country code and year to get a full calendar of holidays with names, dates, and types. No signup, no API key, and the data is sourced from official government publications.
Quick start: https://date.nager.at/api/v3/PublicHolidays/2026/US
No API key needed — just make a request!
How to Use This API
1. Get US Holidays for 2026
List all public holidays in the United States for 2026:
https://date.nager.at/api/v3/PublicHolidays/2026/US
Returns JSON with date, localName, englishName, countryCode, and holiday types. The types field tells you if it's a "Public", "Bank", or "School" holiday.
2. Check if Today is a Holiday — Japan
https://date.nager.at/api/v3/IsTodayPublicHoliday/JP
Returns HTTP 200 (is a holiday) or 204 (not a holiday). No JSON body — just check the status code for super fast responses.
3. Get All Countries Supported
https://date.nager.at/api/v3/AvailableCountries
Returns an array of all country codes and names that Nager.Date supports — useful for building a country dropdown.
4. JavaScript — Build a Holiday Calendar
async function getHolidays(country, year) {
const resp = await fetch(
`https://date.nager.at/api/v3/PublicHolidays/${year}/${country}`
);
return resp.json();
}
getHolidays('GB', 2026).then(holidays => {
holidays.forEach(h => {
const types = h.types.join(', ');
console.log(`${h.date}: ${h.localName} (${types})`);
});
// Shows: "2026-12-25: Christmas Day (Public)"
});
5. Python — Find All Weekend-Adjusted Holidays for Germany
import requests
from datetime import datetime
resp = requests.get(
'https://date.nager.at/api/v3/PublicHolidays/2026/DE'
)
holidays = resp.json()
# Find holidays that fall on weekends
for h in holidays:
dt = datetime.strptime(h['date'], '%Y-%m-%d')
if dt.weekday() >= 5: # Saturday=5, Sunday=6
print(f"{h['date']}: {h['localName']} (weekend) - "
f"may have substituted weekday off")
https://date.nager.at/api/v3/PublicHolidays/2026/US
Frequently Asked Questions
- What holiday types does the API distinguish?
- Three types:
Public(government-mandated days off),Bank(financial institutions closed), andSchool(school holidays/breaks). Not all countries have all three categories. - How far back and forward does the data go?
- Data is available from 2016 through 2030+ for most countries. The API adds future years as governments publish their official holiday calendars. Historical data is verified against official records.
- Does it account for substituted/observed holidays?
- Yes. When a holiday falls on a weekend, many countries observe it on the nearest weekday. The API returns the
dateas the actual observance date, not the calendar date. TheenglishNamefield may include "(observed)" where applicable. - How do I check if a specific date is a holiday?
- Use the
/api/v3/IsTodayPublicHoliday/{countryCode}endpoint. It works for any date if you pass an optional date parameter, but defaults to today. 200 = yes, 204 = no. - What are the available country codes?
- ISO 3166-1 alpha-2 codes. Full list at
/api/v3/AvailableCountries. Examples: US, GB, DE, FR, JP, BR, IN, AU, CA, etc. Over 100 countries covered. - Can I get holidays for a specific region/state?
- Yes, some countries have regional holidays. Use
/api/v3/PublicHolidays/{year}/{countryCode}/{regionCode}for countries like Canada (QC, ON, AB) or Australia (NSW, VIC). Check the API docs for which regions are supported.
API Details
- API URL
https://date.nager.at/api/v3- Documentation
- date.nager.at
- Category
- Date
- Authentication
- Not Required
- Geographic Coverage
- Global — 100+ countries
What You Can Build
- Worldwide holiday calendar app with country-by-country views
- Business scheduling tool that avoids public holidays across multiple countries
- E-commerce platform that shows shipping delays around holidays
- HR system that calculates annual leave balance considering public holidays
- Travel planner that highlights local festivals and national days