🇰🇷 South Korea — 금융감독원 전자공시시스템 OPENDART (Financial Supervisory Service — Electronic Disclosure System)
Access South Korea's official company register in real time via the OpenRegistry MCP endpoint. Unified schema, source-linked, live passthrough (no caching).
Data license: Free public-disclosure data released under the Financial Investment Services and Capital Markets Act + Act on External Audit of Stock Companies. See https://opendart.fss.or.kr/intro/terms.do. Reuse with attribution to Financial Supervisory Service (FSS).
Real-time: yes — every call hits upstream
Caching notes: In-adapter caches: 10 seconds for cross-call deduplication within a single AI turn; otherwise every call hits upstream fresh. Pass fresh=true to bypass even the 10s cache.
Korea's statutory electronic disclosure system for listed issuers and external-audit-law firms — not all Korean companies. company_id is the 8-digit corp_code; name / stock-code search resolves via a cached corporation master.
Company ID format
DART 8-digit corp_code is the canonical company_id (the key for every OpenDART endpoint). search_companies and get_company_profile also accept 13-digit 법인등록번호 (CRN, Supreme Court corporate registration number — accepts '123456-1234567' and '1234561234567'), 10-digit 사업자등록번호 (BRN, NTS tax identifier — '123-45-67890' or '1234567890'), 6-digit 종목코드 (KRX stock code), or free-text company name (exact or prefix, Korean or English); all are resolved to corp_code via the corpCode.xml master and returned verbatim in jurisdiction_data.
Native values upstream reports: Y (유가증권 — KOSPI listed), K (코스닥 — KOSDAQ listed), N (코넥스 — KONEX listed), E (기타 — external-audit-required unlisted or other reporting)
Mapping to the unified four-value enum:
Unified
Native values
active
(none)
inactive
(none)
dissolved
(none)
unknown
Y (유가증권 — KOSPI listed), K (코스닥 — KOSDAQ listed), N (코넥스 — KONEX listed), E (기타 — external-audit-required unlisted or other reporting)
Known quirks
otherblocker — Operator-side integration key is required. Without it every KR tool returns 503 with a pointer to the free signup flow. Daily quota is typically ≥20 000 calls.
id_formatwarning — Canonical company_id is the 8-digit corp_code. get_company_profile rejects anything else with 400 — use search_companies first to resolve a name or 6-digit stock code into corp_code. 13-digit Corporate Registration Number (법인등록번호) and 10-digit Business Registration Number (사업자등록번호) are NOT searchable; search_companies on those returns 400 with that explanation.
searchinfo — Name search is a client-side substring filter over a cached corporation master (24h refresh). Ranks exact > prefix > substring, listed (has stock_code) before unlisted. 8-digit corp_code goes to direct profile fetch; 6-digit stock code resolves via the master.
statuswarning — No structured active/dissolved flag is published. Coarse status is always 'unknown'. corp_cls (Y/K/N/E = main-board/secondary-board/third-tier/other) is surfaced verbatim in status_detail. Use list_filings recency as a heuristic for dormancy.
shareholdersinfo — get_shareholders merges two raw sources without fusion: (a) the largest-shareholder table from periodic reports and (b) bulk-holding reports above the 5% threshold. Each row carries a `_source` tag. Neither is a UBO register.
pscblocker — get_persons_with_significant_control returns 501. Korea's UBO register is visible only to obliged AML institutions, tax authorities and law enforcement — not third parties. Adapter does NOT fall back to shareholders (shareholders and PSC are distinct concepts).
chargesblocker — get_charges returns 501. Korean pledge / security-interest registrations live in a separate registry-of-record that requires a citizen certificate and is paid per extract — no free per-entity programmatic surface.
officersblocker — get_officer_appointments and search_officers return 501. Upstream keys officers per (corp_code, business-year, report-code) with no cross-company person index — to find a person's appointments, iterate get_officers across corp_codes of interest.
filingsinfo — Filings are real-time — queryable as soon as the issuer lodges them. Date fields arrive as YYYYMMDD with no separators; adapter normalises top-level ISO fields but keeps raw values in jurisdiction_data.
documentsinfo — fetch_document returns raw ZIP bytes; adapter does NO parsing. document_id formats: 'rcept:{14-digit-rcept_no}' for any disclosure document, 'xbrl:{corp_code}:{business_year}:{report_code}' for structured XBRL financials. Callers handle extraction.
otherinfo — Coverage: listed issuers plus external-audit-law firms only — small private companies below the audit threshold never appear. The registry-of-record for those is a separate government registry whose per-company extracts are paid and citizen-certificate-gated; not exposed here.
Available jurisdiction_data fields
Every tool response carries a jurisdiction_data object with the raw upstream fields (names unchanged). The full field set per record type: