Date.nager.at Holidays

Date API · 100+ countries · Public, bank & school holidays

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")
Try US holidays 2026: 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), and School (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 date as the actual observance date, not the calendar date. The englishName field 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