You could try to use Finturest - Holiday API, it costs 110$ per year. It supports 115 countries and 6 holiday types.
Endpoints:
GET /v1/holidays/{countryCode}/upcoming
GET /v1/holidays/{countryCode}/search/date/{holidayDate}
GET /v1/holidays/{countryCode}/search/year/{year}
GET /v1/holidays/search/date/{holidayDate}
Example of response:
[
{
"date": "2025-06-08",
"name": "Pentecost",
"localName": "Zielone Świątki",
"nationwide": true,
"country": {
"name": "Poland",
"alpha2Code": "PL",
"alpha3Code": "POL",
"numericCode": "616"
},
"subdivisions": [],
"types": [
"Public"
]
}
]
Links: