Korean Lunar Birthday API
by KunStudio · free to evaluate · no API key on origin

Korean Lunar Birthday API

Many Koreans celebrate their birthday on the lunar calendar, so the solar (Gregorian) date moves every year — which is exactly why a hard-coded reminder fires on the wrong day. This API turns a birth date into its lunar birthday once, then resolves that lunar birthday to the correct solar date for any year you ask about.

A lunar birthday reminder is a two-step conversion. First, convert the person's solar birth date to its Korean lunar date with /v1/lunar/solar-to-lunar — that lunar month/day (plus the leap-month flag) is their lunar birthday and never changes. Then, for whatever year you want a reminder in, convert that lunar month/day back to a solar date with /v1/lunar/lunar-to-solar. Both steps are leap-month (윤달) aware, so the round trip is lossless and the reminder lands on the right day.

Solar and lunar date conversion schematic A solar (Gregorian) date converts to a Korean lunar date and the gapja (sexagenary) pillars, and back again. The leap-month (윤달) flag is carried in both directions so a round trip is lossless. SOLAR (Gregorian) 2026-02-17 an ordinary calendar date /v1/lunar/solar-to-lunar /v1/lunar/lunar-to-solar KOREAN LUNAR + 간지 lunar 2026 / 01 / 01 leap_month: false (윤달) 병오년 · 경인월 · 임술일 丙午年 · gapja pillars The leap-month (윤달) bit travels both ways, so a solar → lunar → solar round trip is lossless. Range 1391–2050.
Birth date → lunar birthday (fixed) → this year's solar date. The lunar month/day stays constant; only the solar date moves year to year, which is what you schedule the reminder against.

Endpoints

GET /v1/lunar/solar-to-lunar?date=1991-05-15 Step 1 — solar birth date to the Korean lunar birthday (month/day + leap-month flag).
GET /v1/lunar/lunar-to-solar?date=2026-04-02&leap=false Step 2 — that lunar birthday in a target year, as a solar date to schedule the reminder.

Example request & response

# Step 1: born solar 1991-05-15 -> lunar birthday is the 2nd day of the 4th lunar month
curl "https://korea-calendar-api.kunstudio.workers.dev/v1/lunar/solar-to-lunar?date=1991-05-15"

# Step 2: when does that lunar birthday fall in 2026?
curl "https://korea-calendar-api.kunstudio.workers.dev/v1/lunar/lunar-to-solar?date=2026-04-02&leap=false"
// Step 1 response
{
  "solar": "1991-05-15",
  "lunar": { "year": 1991, "month": 4, "day": 2, "leap_month": false },
  "gapja": { "year": "신미년", "month": "계사월", "day": "을유일" }
}

// Step 2 response — schedule the 2026 reminder for this solar date
{
  "lunar": { "year": 2026, "month": 4, "day": 2, "leap_month": false },
  "solar": "2026-05-18"
}

No API key is needed on the origin to try this — it is rate-limited for fair evaluation. See the OpenAPI spec for the full schema.

Good to know

Related

Building a Korean fortune (사주/saju) app? Pair this with the KunStudio Saju API for a full four-pillars reading over REST.