Holidays
Every Korean public holiday from 2004 to 2028 — 431 dates — with English names, which the official source does not publish. 1 credit per call — not per row, so a whole year costs the same as one date. Nothing is charged unless an answer comes back. Where the dates come from, and what was wrong with the alternatives.
GET /holidays/{date}
One date, answered directly.
curl -H "Authorization: Bearer $KCID_API_KEY" \
"https://notonlystock.com/korea/api/v0/holidays/2026-06-03"
{
"date": "2026-06-03",
"weekday": "Wednesday",
"is_holiday": true,
"is_weekend": false,
"is_business_day": false,
"holidays": [
{ "date": "2026-06-03", "name_ko": "전국동시지방선거일",
"name_en": "Local Election Day", "kind": "election" }
],
"previous_business_day": "2026-06-02",
"next_business_day": "2026-06-04",
"next_holiday": { "date": "2026-06-06", "name_ko": "현충일",
"name_en": "Memorial Day", "kind": "public", "days_away": 3 },
"coverage": { "first_year": 2004, "last_year": 2028 },
"credits_charged": 1,
"credits_remaining": 4999
}
Business-day arithmetic is answered here. Working out the next business day
needs the whole holiday table, so shipping the date without it would just move the work. At the
edge of coverage these fields are null rather than a count made without knowing the
holidays.
A year outside the coverage returns 404, not is_holiday: false.
Answering "not a holiday" for a year we do not hold would be a guess wearing the clothes of a
measurement, and payroll and settlement code believes this field. That answer is free,
and so is a malformed date — credits are charged only when an answer comes back.
GET /holidays
A whole year, or any range. ?year=2026, or ?from= and ?to=.
curl -H "Authorization: Bearer $KCID_API_KEY" \
"https://notonlystock.com/korea/api/v0/holidays?year=2026"
{
"from": "2026-01-01", "to": "2026-12-31", "count": 22,
"holidays": [
{ "date": "2026-03-02", "name_ko": "대체공휴일",
"name_en": "Substitute Holiday for Independence Movement Day",
"kind": "substitute",
"substitutes": { "ko": "삼일절", "en": "Independence Movement Day" } }
]
}
count is the number of dates, not rows: two holidays can land on
one date, and 2025-05-06 is a single substitute day standing in for both Children's Day
and Buddha's Birthday.
The four kinds
public | Statutory holiday. Fixed date or lunar. |
substitute | Pushed off a weekend or another holiday. Carries substitutes. |
temporary | Declared ad hoc. No calendar rule produces these. |
election | Statutory holiday under the Public Official Election Act. |
The last two are why a library cannot substitute for a table. 2023-10-02 was declared a temporary holiday weeks beforehand, by decision rather than by rule.
Missing an endpoint or a field? Say what you were trying to do — it is read by the person who builds this.