BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://date.nager.at/api/v3/PublicHolidays/2026/US'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://date.nager.at/api/v3/PublicHolidays/2026/US", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "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

ParameterTypeRequiredDescription
<year>pathRequiredFour-digit year. 2026
<countryCode>pathRequiredISO 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

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.