Verified sources
Store PDFs, gazettes, and public state calendars with cryptographic checksums.
A free, high-integrity public holiday API for Malaysia with federal and state-level coverage. Powered by verified source imports, it is the perfect source of truth for your applications, databases, or Python holidays integration.
{
"year": 2026,
"state_code": "SBH",
"data": [
{
"id": 1,
"name": "Pesta Kaamatan",
"date": "2026-05-30",
"scope": "state",
"state_codes": ["SBH"],
"is_subject_to_change": false
}
]
}
Platform Capabilities
We provide the tools to ingest, verify, and serve Malaysian holiday data with absolute confidence. No more scraping unreliable sources.
Store PDFs, gazettes, and public state calendars with cryptographic checksums.
Seamless CSV ingestion with automated validation and batch-level review.
Expert review interface to confirm or reject holidays before they hit production.
Full support for federal, state, and regional holidays with precise geographical scoping.
Apply emergency corrections and gazetted changes without affecting historical imports.
Highly optimized endpoints to verify holiday status for any date and state combination.
The Workflow
Our multi-stage pipeline ensures that every single holiday record is backed by a verified document and confirmed by a human administrator.
Upload gazettes or state announcements. Each source is tracked and archived.
Imports are held in draft batches. Admins cross-reference records against the original source.
Approved data is instantly available via our global API nodes with high-availability.
Developer First
Query by year, state, or specific dates. Our REST API is versioned and designed for reliability in production applications.
curl "https://malaysia-holiday.dydxsoft.my/api/v1/holidays/check?date=2026-05-30&state=SBH"
{
"date": "2026-05-30",
"state_code": "SBH",
"is_holiday": true,
"holidays": [
{
"name": "Pesta Kaamatan",
"state_codes": ["SBH"],
"scope": "state",
"type": "state",
"is_subject_to_change": false
}
]
}
Interactive
No Postman. No terminal. Just pick an endpoint, fill in your parameters, and see the live JSON response — right in your browser.
{
"data": [
{
"name": "Pesta Kaamatan",
"date": "2026-05-30",
"scope": "state"
}
],
"meta": {
"year": 2026,
"state": "SBH",
"count": 1
}
}