{"id":42377,"date":"2026-08-30T03:27:35","date_gmt":"2026-08-30T01:27:35","guid":{"rendered":"https:\/\/www.graviton.at\/letterswaplibrary\/self-promotion-koreas-official-listed-company-financial-statements-dart-the-korean-secs-edgar-equivalent-line-item-balance-sheet-income-statement-free-already-in-ifrs-taxonomy-english-fi\/"},"modified":"2026-08-30T03:27:35","modified_gmt":"2026-08-30T01:27:35","slug":"self-promotion-koreas-official-listed-company-financial-statements-dart-the-korean-secs-edgar-equivalent-line-item-balance-sheet-income-statement-free-already-in-ifrs-taxonomy-english-fi","status":"publish","type":"post","link":"https:\/\/www.graviton.at\/letterswaplibrary\/self-promotion-koreas-official-listed-company-financial-statements-dart-the-korean-secs-edgar-equivalent-line-item-balance-sheet-income-statement-free-already-in-ifrs-taxonomy-english-fi\/","title":{"rendered":"[self-promotion] Korea&#8217;s Official Listed-company Financial Statements (DART, The Korean SEC&#8217;s EDGAR Equivalent): Line-item Balance Sheet + Income Statement, Free, Already In IFRS-taxonomy English Field Names"},"content":{"rendered":"<p><!-- SC_OFF --><\/p>\n<div class=\"md\">\n<p><strong>Source (original):<\/strong> DART (Data Analysis, Retrieval and Transfer System), run by Korea&#8217;s Financial Supervisory Service \u2014 the mandatory disclosure filing system, same role as SEC EDGAR. Free OpenAPI, 20,000 calls\/day on a free key, no commercial-use restriction.<\/p>\n<ul>\n<li><a href=\"https:\/\/opendart.fss.or.kr\/\">https:\/\/opendart.fss.or.kr\/<\/a> (site is Korean; API docs have English param names)<\/li>\n<\/ul>\n<p><strong>What&#8217;s in it.<\/strong> Every KOSPI\/KOSDAQ listed company&#8217;s financial statement line items from annual reports: balance sheet, income statement, cash flow, equity changes. Each row carries the current year amount plus the prior two years side by side, so you get a 3-year trend per line without extra calls. Consolidated (CFS) preferred, falls back to separate (OFS) for companies with no subsidiaries.<\/p>\n<p><strong>The part worth posting about:<\/strong> DART already tags every line with an IFRS taxonomy id \u2014 <code>ifrs-full_Assets<\/code>, <code>ifrs-full_Revenue<\/code>, <code>ifrs-full_ProfitLoss<\/code>, etc. \u2014 the same taxonomy US\/EU filers use. That means <strong>no Korean-to-English account-name translation step<\/strong>, unlike most Korea data sources (my other actor, the real-estate one, needs a full translation layer). You get the Korean label (<code>account_nm<\/code>, e.g. <code>\ub9e4\ucd9c\uc561<\/code>) and the international taxonomy id side by side for free.<\/p>\n<p><strong>Gotchas<\/strong> (cost me actual debugging time):<\/p>\n<ol>\n<li>Company lookup isn&#8217;t by ticker \u2014 you first pull <code>corpCode.xml<\/code> (a zip, ~forgot-to-check-Content-Type gotcha), which maps every DART-registered entity (listed <em>and<\/em> unlisted) to an internal <code>corp_code<\/code>. Unlisted entities have an empty <code>stock_code<\/code> field; filter those out or you&#8217;ll query companies with no ticker.<\/li>\n<li>No single &#8220;give me financials&#8221; call reliably returns consolidated statements. You have to try <code>fs_div=CFS<\/code> first and fall back to <code>OFS<\/code> \u2014 a normal, expected branch, not an error path. A company with no subsidiaries simply has no CFS.<\/li>\n<li>Status <code>013<\/code> (&#8220;\uc870\ud68c\ub41c \ub370\uc774\ud0c0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4&#8221; \/ no data found) is not an error, it&#8217;s an empty result \u2014 some report\/year combos genuinely don&#8217;t exist. Status <code>020<\/code> (quota exceeded) <em>is<\/em> a real error. Conflating the two silently turns a rate-limit hit into &#8220;this company has no 2019 filings.&#8221;<\/li>\n<li>Amounts come as <strong>strings<\/strong> (<code>\"514531948000000\"<\/code>), not numbers \u2014 cast, don&#8217;t trust the JSON type.<\/li>\n<li><code>rcept_no<\/code> (the filing receipt number) encodes the filing date in its first 8 digits \u2014 that&#8217;s the only place you get an as-of date; there&#8217;s no separate date field on the row.<\/li>\n<\/ol>\n<p><strong>Real example \u2014 Samsung Electronics (005930), FY2022\u20132024, annual consolidated:<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">FY2022 (\uc81c54\uae30)<\/th>\n<th align=\"left\">FY2023 (\uc81c55\uae30)<\/th>\n<th align=\"left\">FY2024 (\uc81c56\uae30)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td align=\"left\">Total assets<\/td>\n<td align=\"left\">448.4T KRW<\/td>\n<td align=\"left\">455.9T KRW<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">Revenue<\/td>\n<td align=\"left\">302.2T KRW<\/td>\n<td align=\"left\"><strong>258.9T KRW<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>That FY2023 revenue dip and FY2024 recovery is the memory-chip downturn\/rebound showing up directly in the raw filing data, three years in one API response, no crawling three separate annual reports.<\/p>\n<p><strong>Disclosure \u2014 I built a free wrapper.<\/strong> Raw DART responses are one financial-statement\/report\/year combo per call, Korean-first field names (<code>thstrm_amount<\/code>, <code>sj_div<\/code>), and require the corp_code lookup above. I published an Apify actor that does the corp_code mapping, CFS\u2192OFS fallback, and reshapes rows into English field names (<code>currentAmountKrw<\/code>, <code>statementType<\/code>, <code>accountId<\/code>) \u2014 free, no API key of your own needed:<\/p>\n<ul>\n<li><a href=\"https:\/\/apify.com\/ootssu\/korea-company-financials\">https:\/\/apify.com\/ootssu\/korea-company-financials<\/a><\/li>\n<\/ul>\n<p>The source of truth is DART, not me \u2014 if you&#8217;d rather hit opendart.fss.or.kr yourself, the gotcha list above should save you the debugging session it cost me.<\/p>\n<\/div>\n<p><!-- SC_ON -->   submitted by   <a href=\"https:\/\/www.reddit.com\/user\/porche911_kr\"> \/u\/porche911_kr <\/a> <br \/> <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1w22q84\/selfpromotion_koreas_official_listedcompany\/\">[link]<\/a><\/span>   <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1w22q84\/selfpromotion_koreas_official_listedcompany\/\">[comments]<\/a><\/span><\/p><div class='watch-action'><div class='watch-position align-right'><div class='action-like'><a class='lbg-style1 like-42377 jlk' href='javascript:void(0)' data-task='like' data-post_id='42377' data-nonce='b9a40cecc8' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.graviton.at\/letterswaplibrary\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-42377 lc'>0<\/span><\/a><\/div><\/div> <div class='status-42377 status align-right'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Source (original): DART (Data Analysis, Retrieval and Transfer System), run by Korea&#8217;s Financial Supervisory Service \u2014 the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85],"tags":[],"class_list":["post-42377","post","type-post","status-publish","format-standard","hentry","category-datatards","wpcat-85-id"],"_links":{"self":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/42377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/comments?post=42377"}],"version-history":[{"count":0,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/42377\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/media?parent=42377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/categories?post=42377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/tags?post=42377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}