Korean Saju / BaZi Four Pillars Calculator
Pricing
$20.00 / 1,000 saju result computeds
Korean Saju / BaZi Four Pillars Calculator
Compute Korean Saju / Chinese BaZi four pillars, Five Elements distribution, Ten Gods, 12 life stages, 10-year luck cycles (Daeun), yongsin lucky element, and daily/annual fortune from a birth date & time. Pure calculation engine, no external calls. Batch-friendly: pass an array of birth records.
A Korean Saju (사주) and Chinese BaZi (八字) four pillars calculator: give it a birth date and time and get a full structured reading back — four pillars, Five Elements, Ten Gods, luck cycles, and daily/annual fortune — as clean JSON, in batch, with zero external API calls (pure computation, runs entirely on Apify's cloud). Ideal as a Saju / BaZi / four-pillars-of-destiny API for astrology apps, fortune-telling sites, and data pipelines.
Built and maintained by KunStudio (also publishers of the Saju API on API.market, Zyla, and RapidAPI, and sajuapp.app).
What it returns
For each birth record you get:
Section (include key) | Content |
|---|---|
pillars | Year / Month / Day / Hour pillars (천간·지지, Hanja) |
elements | Five Elements (Wood/Fire/Earth/Metal/Water) distribution |
tenGods | Ten Gods (십신) per pillar |
lifeStages | 12 life stages (12운성) |
hiddenStems | Hidden stems (지장간) |
daeun | 10-year luck cycle (대운) with correct gender-based direction |
clashHarmony | Stem/branch combinations & clashes (합·충) |
yongsin | Useful element (용신), favorable/unfavorable elements |
dailyFortune / annualFortune | Current month / year fortune |
Input
{"births": [{ "year": 1990, "month": 5, "day": 15, "hour": 14, "gender": "male", "label": "me" }],"include": ["pillars", "elements", "yongsin"],"language": "en"}
births— array (max 1000).year1920–2050,month1–12,day1–31,hour0–23 (omit or-1if unknown → defaults to noon),gendermale/female.include— sections to return; empty = all.language— label language for the Five Elements block (en/ko/ja/zh). Raw Korean/Hanja keys are always present.
Solar (Gregorian) calendar input; the engine converts to lunar internally.
Output
One dataset item per birth record. Invalid records return { ok: false, error } instead of failing the whole run, so a batch of 1000 never dies on one bad row.
Pricing
Pay-per-result: you are charged once per successfully analyzed birth record. No subscription, no free-trial trap — pay only for what you compute.
Support
Questions, bug reports, or feature requests: https://sajuapp.app/support
We usually respond within 1 business day.