Financial Literature

Financial Supervisory Service (Korea)

OpenDART — Korean company filings and financial statements — the EDGAR of Korea, with a free key

When you need Korean fundamentals as filed — the income statement and balance sheet from the periodic report — or the disclosure list itself (capital increases, large shareholder changes, treasury stock). It is the only free source for these.

fundamentalsfilingsKorea
Asset classesfundamentals · filings
Frequencyas filed → annual
History2015 → today
Limit · costFree key · 20,000 calls/day
KeyFree key needed — Register at opendart.fss.or.kr (Korean interface; email confirmation). The key is 40 characters.
Formats · pull withjson · xml · zip — python
LicencePublic disclosure data; free to use with attribution to DART/FSS.
RedistributeWith attribution; check series notes
Best for“What did a Korean company report, from the filing?” · “Every disclosure a Korean company made this month”
When to use it

Reach for it when…

When you need Korean fundamentals as filed — the income statement and balance sheet from the periodic report — or the disclosure list itself (capital increases, large shareholder changes, treasury stock). It is the only free source for these.

Not for: Prices (KRX or a market-data API), monetary data (BOK ECOS), companies outside Korea (EDGAR, EDINET).

How to read it

Units, revisions, traps

Units. Korean won, usually in full (not thousands); check 'currency' and 'unit' in the response. Fiscal years mostly end in December.

Revisions. Corrections are filed as new disclosures; the original stays in the list.

  • Company codes (corp_code, 8 digits) are not the stock ticker — download the corp-code zip once and map.
  • Financial statement endpoints take a report code (11011 = annual, 11012 = half-year, 11013 = Q1, 11014 = Q3).
  • Labels are Korean; the account ids (account_id) follow K-IFRS tags.

Classic mistake: Using the 6-digit stock code where the API wants the 8-digit corp code.

How to use it in your own work

Three recipes

Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.

How to use it in your own work

Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.

Recipe 1A company's annual income statement

# Samsung Electronics (corp_code 00126380), FY2025 annual report, consolidated
import requests, pandas as pd
KEY = "YOUR_DART_KEY"
u = ("https://opendart.fss.or.kr/api/fnlttSinglAcntAll.json?crtfc_key=" + KEY +
     "&corp_code=00126380&bsns_year=2025&reprt_code=11011&fs_div=CFS")
df = pd.DataFrame(requests.get(u, timeout=60).json()["list"])
print(df[df.sj_div == "IS"][["account_nm", "thstrm_amount"]].head(12))
How to read the resultthstrm = this term, frmtrm = previous term; amounts are won in full.

Recipe 2This month's disclosures for one company

import requests, pandas as pd
KEY = "YOUR_DART_KEY"
u = ("https://opendart.fss.or.kr/api/list.json?crtfc_key=" + KEY +
     "&corp_code=00126380&bgn_de=20260801&end_de=20260908&page_count=100")
df = pd.DataFrame(requests.get(u, timeout=60).json()["list"])
print(df[["rcept_dt", "report_nm", "flr_nm"]])
How to read the resultReport names are Korean; the ones that move prices are 유상증자 (rights issue), 자기주식 (treasury stock) and 최대주주 변경 (change of largest shareholder).

Recipe 3The corp-code map, once

# download the corp-code zip and build a ticker → corp_code table
import requests, zipfile, io, xml.etree.ElementTree as ET, pandas as pd
KEY = "YOUR_DART_KEY"
z = zipfile.ZipFile(io.BytesIO(requests.get("https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=" + KEY, timeout=120).content))
root = ET.fromstring(z.read(z.namelist()[0]))
df = pd.DataFrame([{c.tag: c.text for c in el} for el in root.findall("list")])
print(df[df.stock_code.str.strip() != ""].head())
How to read the resultOnly rows with a stock_code are listed companies; the rest are unlisted filers.

Series → question map

The ids we use from OpenDART, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.

SeriesAnswersRegionConcept
fnlttSinglAcntAllWhat did the company report? (full statements)Koreafundamentals
listWhat has the company disclosed?Koreafilings
majorstockWho are the large shareholders?Koreainsider

Compare with

Same question, different source: SEC EDGAR APIs, BOK ECOS, EODHD. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.

Open compare: OpenDART · SEC EDGAR APIs · BOK ECOS →

Questions readers ask

Do I need to read Korean?

For registration and labels, a little; the API fields and account ids are consistent, and the card maps the report codes.

Is there English?

No English version of the API; DART's website has an English filing viewer for some companies.

How current is it?

Disclosures appear within minutes of filing; financial statement endpoints update the same day.

Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.