TL;DR
What it does: Returns every public holiday for any country and year. Includes bank holidays and school holidays too. Covers 100+ countries.
Quick start: curl "https://date.nager.at/api/v3/PublicHolidays/2026/US"
No API key needed - just pick a country and year
Overview
Nager.Date is a free public holidays API that returns structured holiday data for 100+ countries. Each holiday includes the date, local name, English name, country code, whether it's observed globally or regionally, and what type of holiday it is (Public, Bank, School). You don't need an API key or authentication - just construct a URL with the country and year.
Live Example
Here's the exact URL to call and the real response you'll get:
The URL to call (US holidays in 2026):
https://date.nager.at/api/v3/PublicHolidays/2026/US
Try This URL Now →
The actual response you get:
[
{
"date": "2026-01-01",
"localName": "New Year's Day",
"name": "New Year's Day",
"countryCode": "US",
"fixed": false,
"global": true,
"counties": null,
"launchYear": null,
"types": ["Public", "Bank"]
},
{
"date": "2026-01-19",
"localName": "Martin Luther King, Jr. Day",
"name": "Martin Luther King, Jr. Day",
"countryCode": "US",
"fixed": false,
"global": true,
"counties": null,
"launchYear": null,
"types": ["Public"]
}
]
What does this data mean?
Two US holidays shown: New Year's Day (observed nationwide) and Martin Luther King Jr. Day (third Monday of January).
- date
- The exact date of the holiday in ISO 8601 format (YYYY-MM-DD)
- localName
- The holiday name in the local language / regional naming convention
- name
- The English-language name for the holiday
- countryCode
- ISO 3166-1 alpha-2 country code (e.g. US, GB, JP, DE)
- global
- True if observed across the entire country, false if limited to specific regions
- counties
- If not global, lists which counties/states observe this holiday
- types
- Categories: "Public" (government holiday), "Bank" (banks closed), "School" (schools closed)
How to use this API
JavaScript Example
const year = 2026;
const country = "US";
fetch(`https://date.nager.at/api/v3/PublicHolidays/${year}/${country}`)
.then(res => res.json())
.then(holidays => {
holidays.forEach(h => {
console.log(`${h.date}: ${h.localName}`);
});
});
Python Example
import requests
year = 2026
country = "US"
url = f"https://date.nager.at/api/v3/PublicHolidays/{year}/{country}"
response = requests.get(url)
holidays = response.json()
for h in holidays:
print(f"{h['date']}: {h['localName']}")
cURL Example
# All US holidays in 2026
curl "https://date.nager.at/api/v3/PublicHolidays/2026/US"
# Is today a holiday in Germany?
curl -i "https://date.nager.at/api/v3/IsTodayPublicHoliday/DE"
# List all supported countries
curl "https://date.nager.at/api/v3/AvailableCountries"
Frequently Asked Questions
- How do I find the country code?
- Use ISO 3166-1 alpha-2 codes: US, GB, JP, BR, DE, FR, AU, etc. Call
/api/v3/AvailableCountriesto see every supported country. - Can I get future years?
- Yes. Just change the year in the URL.
/PublicHolidays/2027/USreturns 2027 holidays. - Is there a rate limit?
- No documented rate limit. The API is free for personal and commercial use.
- Can I check if today is a holiday?
- Yes. Use
/api/v3/IsTodayPublicHoliday/USwhich returns 200 if today is a holiday or 204 if not. - Are regional holidays included?
- Yes. The
countiesfield lists which regions observe the holiday. Some holidays only apply to specific states or provinces.
API Details
- Base URL
https://date.nager.at/api/v3- Documentation
- https://date.nager.at/
- Category
- Date
- Authentication
- None required - completely free
- Coverage
- 100+ countries worldwide
- Rate Limit
- No documented rate limit
- CORS
- Yes