Endpoints

EndpointReturns
GET /api/holidays/{cc}/{year}Full calendar: every holiday with date, name, weekday
GET /api/holidays/next/{cc}The next upcoming holiday with a days-away count
GET /api/holidays/check/{cc}/{date}Whether that date is a holiday or weekend, and if banks are closed
AuthNone, no API key required
Rate limit500 requests / day / IP, 30 / minute (see X-RateLimit-Remaining)
CORSAccess-Control-Allow-Origin: *
Coverage150+ countries, previous year through two years ahead

Examples

Calendarcurl https://bankholidaycheck.com/api/holidays/US/2027
Next holidaycurl https://bankholidaycheck.com/api/holidays/next/GB
Date checkcurl https://bankholidaycheck.com/api/holidays/check/DE/2027-10-03
JavaScriptconst r = await fetch('https://bankholidaycheck.com/api/holidays/next/US').then(r => r.json());

Response Shape (date check)

FieldTypeDescription
data.is_holidaybooleanWhether the date is a nationwide holiday
data.holiday_namestring|nullThe holiday's name when it is one
data.is_weekend / data.weekdayboolean / stringWeekend detection and day name
data.banks_closedbooleanThe practical answer: holiday or weekend

Errors use standard codes: 400 bad country or date, 404 year not in dataset, 429 rate limited.

Fair Use & Attribution

  • 500 requests per day per IP; responses cache for an hour, so cache on your side too.
  • Dates are generated with the python-holidays library (MIT); a link back to bankholidaycheck.com is appreciated but not required.
  • For contractual deadlines, verify critical dates with official government sources.