Nager.Date Public Holidays API
Free public holiday API with no key. Get official holidays for 100+ countries and any year, including regional variations. Tested curl example and live JSON.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the Nager.Date Public Holidays API?
Nager.Date is a free public holiday API covering more than 100 countries. It returns official public holidays for any country and year, including regional and county-specific variations, with no API key.
Public holidays are deceptively hard: they vary by country, shift by region within a country, and several move each year based on lunar or ecclesiastical calendars. Maintaining that table yourself is a recurring maintenance burden that this API removes.
The regional detail is what sets it apart. The `counties` field identifies holidays that apply only in specific subdivisions — a German holiday observed in Bavaria but not Berlin, for example — which matters for any business scheduling across regions.
Quick facts
- Base URL
https://date.nager.at/api/v3- Authentication
- No key or registration.
- Rate limit
- No published limit; fair use expected.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Nager.Date Public Holidays API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. US public holidays for 2026
GET https://date.nager.at/api/v3/PublicHolidays/2026/US
curl 'https://date.nager.at/api/v3/PublicHolidays/2026/US'const res = await fetch("https://date.nager.at/api/v3/PublicHolidays/2026/US");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://date.nager.at/api/v3/PublicHolidays/2026/US", timeout=20)
res.raise_for_status()
print(res.json())[
{
"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",
"Bank"
]
},
{
"date": "2026-02-12",
"localName": "Lincoln's Birthday",
"name": "Lincoln's Birthday",
"countryCode": "US",
"fixed": false,
"global": false,
"counties": [
"US-CA",
"US-CT",
"US-IL",
"US-IN",
"US-KY",
"US-MI",
"US-NY",
"US-MO",
"US-OH"
],
"launchYear": null,
"types": [
"Observance"
]
},
{
"date": "2026-02-16",
"localName": "Washington's Birthday",
"name": "Presidents Day",
"countryCode": "US",
"fixed": false,
"global": true,
"counties": null,
"launchYear": null,
"types": [
"Public",
"Bank"
]
},
{
"date": "2026-04-03",
"localName": "Good Friday",
"name": "Good Friday",
"countryCode": "US",
"fixed": false,
"global": false,
"counties": [
"US-CT",
"US-DE",
"US-HI",
"US-IN",
"US-KY",
"US-LA",
"US-NC",
"US-ND",
"US-NJ",
"US-TN"
],
"launchYear": null,
"types": [
"Public"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
<year> | path | Required | Four-digit year. 2026 |
<countryCode> | path | Required | ISO 3166-1 alpha-2 country code. US |
Response fields
datestring- Holiday date as YYYY-MM-DD.
localNamestring- Holiday name in the local language.
namestring- English name of the holiday.
countryCodestring- ISO country code.
globalboolean- True when observed nationwide; false means check `counties`.
countiesarray|null- Subdivision codes where a non-global holiday applies.
typesarray- Holiday type, e.g. Public, Bank, School, Optional.
What you can build with the Nager.Date Public Holidays API
- Exclude public holidays from delivery date and SLA calculations
- Build a business-day calculator that respects local holidays
- Show an office closure calendar for international teams
- Schedule campaigns and staffing around regional holidays
Common errors and how to fix them
404
Unsupported country code or an out-of-range year.
Fix: Use ISO alpha-2 codes and check /AvailableCountries for coverage.
Holiday missing for a region
It is not global and applies only to certain counties.
Fix: Check the `global` flag and the `counties` array rather than assuming nationwide observance.
Nager.Date Public Holidays API — frequently asked questions
Is there a free public holiday API?
Yes. Nager.Date covers over 100 countries with no API key, returning official public holidays for any year including regional variations.
Does it handle holidays that only apply in certain regions?
Yes. When `global` is false, the `counties` array lists the specific subdivisions where the holiday is observed — important for countries like Germany and the US where holidays vary by state.
Can I get holidays for future years?
Yes. The API calculates moveable feasts such as Easter algorithmically, so future years are supported rather than limited to a fixed table.
What is the difference between the holiday types?
Types include Public, Bank, School, Authorities and Optional. Only `Public` reliably means a general day off; bank and school holidays affect narrower groups.
Tools that pair with this API
Age Calculator
Find your exact age in years, months and days from your date of birth, plus totals in weeks, days and hours and a countdown to your next birthday.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Nager.Date Public Holidays is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.