Public holiday data sounds simple until you actually need it: every country has its own list, regional variations matter, and the data changes year to year. This shortlist covers the free APIs that handle the hard parts for you, so you can ship calendar-aware features without curating dates by hand.
Quick comparison
| API | Coverage | Auth | Adds school holidays |
|---|---|---|---|
| Nager.Date | 100+ countries | None | No |
| OpenHolidays | Europe + extras | None | Yes |
| UK Bank Holidays | UK only (official) | None | No |
| isDayOff | Russia, Ukraine, Belarus, Kazakhstan | None | No |
What "free" actually means here
For a holiday API to qualify:
- It must work without an API key or paid plan.
- It must publish the data in a stable, machine-readable format.
- It must cover at least one full country, not just a handful of dates.
All four APIs on this list pass that bar comfortably and have been used in production by HR systems, scheduling tools, and SaaS apps for years.
API options
Nager.Date
Nager.Date is the default starting point for global holiday coverage. It serves 100+ countries with a consistent response shape, includes long weekend computation, and explicitly advertises no authentication and no rate limit.
Use it when:
- You are building a SaaS product that needs holiday data for many countries.
- You want a single API with a stable response shape.
- You don't want to deal with rate limits or keys.
This is the API most calendar, HR, and scheduling tools end up using.
OpenHolidays API
OpenHolidays covers public holidays plus school holidays across European countries. The school-holiday coverage is the differentiator — most APIs stop at official public holidays.
Use it when:
- You are building a European-focused product.
- You need school-holiday data (parent apps, family travel, e-learning).
- You want both public and school holidays from a single source.
Outside Europe the coverage thins out, so pair it with Nager.Date if you need global reach.
UK Bank Holidays API
UK Bank Holidays is the official GOV.UK JSON feed at /bank-holidays.json. It covers England & Wales, Scotland, and Northern Ireland separately, returning all historical and future holidays in one request.
Use it when:
- You are building a UK-focused product where regional accuracy matters.
- You want the official source rather than a third-party aggregation.
- You need a single-request feed that you can cache for the year.
For UK-specific work this is the canonical source — every UK payroll and HR vendor pulls from this feed or a derivative.
isDayOff
isDayOff is purpose-built for one question: "is this date a working day?" Coverage is Russia, Ukraine, Belarus, and Kazakhstan. The API returns a single bit per date, which makes it ideal for payroll and scheduling logic.
Use it when:
- Your product targets users in Russia or CIS countries.
- You need a working-day-aware date math primitive.
- You want the simplest possible response: 0 (working) or 1 (off).
For broader coverage, Nager.Date can answer the same question by checking whether the date matches a holiday in its list.
Picking the right one
Match the API to the product:
- Global SaaS → Nager.Date.
- European product, school holidays needed → OpenHolidays.
- UK-specific product → UK Bank Holidays.
- Russia / CIS product → isDayOff.
Most production systems combine two of these — for example, Nager.Date for global coverage and UK Bank Holidays for the UK-specific accuracy.
When not to use these APIs
These APIs are excellent free options, but they are not the right fit when you need:
- Custom corporate holiday calendars. Public APIs only cover official public holidays. Company-specific PTO and observances are your own data.
- Real-time changes mid-year. Holiday lists are stable but governments do occasionally add or move dates. Build in a refresh cycle rather than caching forever.
- Non-Gregorian calendar accuracy at scale. For Hijri or other lunar calendars, use specialized prayer-time or religious-calendar APIs instead.
Related API Deposu entries
Sources
Frequently Asked Questions
›Which holiday API requires no sign-up?
All four APIs in this list — Nager.Date, OpenHolidays, UK Bank Holidays, and isDayOff — work without an API key.
›Which API has the broadest country coverage?
Nager.Date covers 100+ countries with a single consistent endpoint shape, which makes it the default choice for global SaaS products. OpenHolidays adds school-holiday data on top of public holidays for European countries.
›Is there an official UK government API for bank holidays?
Yes — GOV.UK publishes a JSON feed at /bank-holidays.json covering England, Scotland, and Northern Ireland. It is the canonical source for UK holiday data.
›Can I check whether a specific date is a working day?
isDayOff is purpose-built for working day / holiday checks across Russia and CIS countries. For other countries, you can derive the same answer from Nager.Date by querying the date and checking the holiday list.