South Korea DART Filings, Financials & Ownership Scraper avatar

South Korea DART Filings, Financials & Ownership Scraper

Pricing

from $12.75 / 1,000 results

Go to Apify Store
South Korea DART Filings, Financials & Ownership Scraper

South Korea DART Filings, Financials & Ownership Scraper

Scrape South Korean listed-company data from DART: profiles, disclosure filings, financial statements (revenue, profit, assets, equity), 5%+ major shareholders and executive holdings for KOSPI, KOSDAQ and KONEX. Search by name or code. Export to JSON, CSV or Excel.

Pricing

from $12.75 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

South Korea DART Filings, Financials & Ownership Scraper

South Korea DART Filings, Financials & Ownership Scraper

Here is the exact record shape this actor returns in companyInfo mode, with the public identifiers of Samsung Electronics filled in:

{
"corpCode": "00126380",
"corpName": "삼성전자",
"corpNameEng": null,
"stockName": "삼성전자",
"stockCode": "005930",
"market": "KOSPI",
"ceoName": null,
"corpRegistrationNumber": null,
"businessRegistrationNumber": null,
"industryCode": null,
"address": null,
"homepageUrl": null,
"irUrl": null,
"phone": null,
"fax": null,
"establishedDate": "19690113",
"accountingMonth": "12",
"source": "DART (Financial Supervisory Service, South Korea)",
"observedAt": "2026-08-15T00:00:00.000Z"
}

Honest note: DART is served by the official OpenDART API, which requires a free access key you register once at opendart.fss.or.kr. We do not embed a shared key, so the example above shows the real field structure with only Samsung's publicly documented identifiers (corpCode, stockCode, market, establishedDate); the null fields are populated on a live run once your key is supplied. No values are invented. The field tables below are the actor's real schema.

The most complete South Korea DART scraper available. It returns every field the OpenDART service exposes for company profiles, disclosure filings, financial statements, 5%+ major shareholders and executive holdings, plus optional AI translation, and gives you five modes and name/code/corp-code lookups to target exactly the data you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor resolves each company you pass (by name, 6-digit stock code, or 8-digit DART corp code) against the official DART company register, then pulls one of five datasets per company depending on mode:

  • companyInfo: profile, CEO, industry, registration numbers, address, contacts, founding date.
  • disclosures: the filing list over a date range, with receipt number, filer, filing date and filing URL.
  • financials: revenue, operating profit, net income, total assets, liabilities and equity, with prior-year comparatives, per business year and report period.
  • shareholders: 5%+ major shareholders, shares held, stake percent and change.
  • executives: director and officer holdings, position, shares owned and ownership percent.

Records are written one per company (or per filing/statement line), missing source values are returned as null, and never invented. Two optional AI add-ons (paid Apify plans only, off by default) apply to the filings list: reportNameEn/remarkEn translate the Korean report name and remark to English, and aiSummary/aiFilingType explain in English what each disclosure discloses. Each is billed per record only when it produces usable output.

Quickstart

Register a free OpenDART key at opendart.fss.or.kr (takes a minute), then open the actor, paste this into the input, and press Run. It returns the company profile for Samsung Electronics.

{
"mode": "companyInfo",
"companyNames": ["삼성전자"],
"stockCodes": ["005930"],
"maxRecords": 10,
"apiKey": "<your OpenDART access key>"
}

The fastest path is to pass corpCodes directly if you already have them (no name lookup needed). For financials, set mode to financials and choose years, reportType and financialStatement.

Input reference

FieldTypeRequiredDefaultDescription
modeenumnocompanyInfoDataset to return: companyInfo, disclosures, financials, shareholders, executives.
companyNamesstring[]no["삼성전자"]Korean listed-company names to look up, for example Samsung Electronics, 삼성전자, NAVER.
stockCodesstring[]no(empty)6-digit Korean stock ticker codes, for example 005930 (Samsung), 035420 (NAVER).
corpCodesstring[]no(empty)8-digit DART corp codes if you already have them (fastest, no name lookup).
reportTypeenumnoannualFinancials mode reporting period: annual, half, q1, q3.
yearsstring[]no["2023"]Financials mode business years, for example 2023, 2022.
financialStatementenumnoconsolidatedFinancials mode: consolidated (group) or separate (parent-only).
bgnDatestringno(empty)Disclosures mode earliest filing date, YYYYMMDD, for example 20230101.
endDatestringno(empty)Disclosures mode latest filing date, YYYYMMDD, for example 20231231.
disclosureTypeenumnoallDisclosures mode filing category: all, or A-J (see FAQ).
maxRecordsintegerno50Maximum records to collect across all companies in this run.
apiKeystring (secret)no(env)Your free OpenDART access key. Leave blank only if a DART_API_KEY environment variable is configured.
withAiTranslatebooleannofalsePaid plans only. Filings mode: translate report name and remark to English. Billed only when a translation is produced.
withAiSummarybooleannofalsePaid plans only. Filings mode: explain in English what each disclosure discloses. Billed only when a summary is produced.

Output reference

One dataset item per record. The populated fields depend on mode. Types: string, number, boolean, or null when the source value is absent.

FieldTypeModesDescription
corpCodestringallDART corp code (8 digits).
corpNamestringallCompany name (Korean).
corpNameEngstringcompanyInfoCompany name (English).
stockNamestringcompanyInfoStock name.
stockCodestringcompanyInfo6-digit stock code.
marketstringcompanyInfoMarket: KOSPI, KOSDAQ, or KONEX.
ceoNamestringcompanyInfoCEO name.
corpRegistrationNumberstringcompanyInfoCorporate registration number.
businessRegistrationNumberstringcompanyInfoBusiness registration number.
industryCodestringcompanyInfoIndustry code.
addressstringcompanyInfoRegistered address.
homepageUrlstringcompanyInfoHomepage URL.
irUrlstringcompanyInfoInvestor-relations URL.
phonestringcompanyInfoPhone number.
faxstringcompanyInfoFax number.
establishedDatestringcompanyInfoEstablishment date (YYYYMMDD).
accountingMonthstringcompanyInfoFiscal year-end month.
reportNamestringdisclosuresFiling / report name (Korean).
reportNameEnstringdisclosuresAI English translation of the report name (AI add-on).
remarkEnstringdisclosuresAI English translation of the remark (AI add-on).
aiSummarystringdisclosuresAI English explanation of the filing (AI add-on).
aiFilingTypestringdisclosuresAI English filing-type label (AI add-on).
receiptNostringdisclosuresFiling receipt number.
filerNamestringdisclosuresFiler name.
receiptDatestringdisclosuresFiling date.
remarkstringdisclosuresRemark.
filingUrlstringdisclosuresFiling URL.
fiscalYearstringfinancialsBusiness year.
reportTypestringfinancialsReport period.
statementTypestringfinancialsConsolidated or separate.
currencystringfinancialsCurrency.
revenuenumberfinancialsRevenue.
operatingProfitnumberfinancialsOperating profit.
netIncomenumberfinancialsNet income.
totalAssetsnumberfinancialsTotal assets.
totalLiabilitiesnumberfinancialsTotal liabilities.
totalEquitynumberfinancialsTotal equity.
revenuePrevYearnumberfinancialsRevenue (previous year).
netIncomePrevYearnumberfinancialsNet income (previous year).
reporterNamestringshareholdersReporter / holder name.
sharesHeldnumbershareholdersShares held.
sharesChangenumbershareholdersShares change.
stakePercentnumbershareholdersStake percent.
stakeChangePercentnumbershareholdersStake change percent.
reasonstringshareholdersReport reason.
isRegisteredExecutivebooleanexecutivesRegistered executive.
positionstringexecutivesPosition / title.
isMajorShareholderbooleanexecutivesMajor shareholder flag.
sharesOwnednumberexecutivesShares owned.
ownershipPercentnumberexecutivesOwnership percent.
ownershipChangePercentnumberexecutivesOwnership change percent.
sourcestringallData source. Always DART.
observedAtstringallISO 8601 timestamp of when the record was collected.
errorstringallnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

The companyInfo record shape, with Samsung Electronics' publicly documented identifiers filled in. Live values for the remaining fields populate once your free OpenDART key is supplied. No values are invented.

{
"corpCode": "00126380",
"corpName": "삼성전자",
"corpNameEng": null,
"stockName": "삼성전자",
"stockCode": "005930",
"market": "KOSPI",
"ceoName": null,
"corpRegistrationNumber": null,
"businessRegistrationNumber": null,
"industryCode": null,
"address": null,
"homepageUrl": null,
"irUrl": null,
"phone": null,
"fax": null,
"establishedDate": "19690113",
"accountingMonth": "12",
"source": "DART (Financial Supervisory Service, South Korea)",
"observedAt": "2026-08-15T00:00:00.000Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token and <DART_KEY> with your free OpenDART key.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~korea-dart-filings-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"financials","stockCodes":["005930"],"years":["2023"],"reportType":"annual","financialStatement":"consolidated","apiKey":"<DART_KEY>"}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~korea-dart-filings-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"disclosures","companyNames":["NAVER"],"bgnDate":"20230101","endDate":"20231231","maxRecords":100,"apiKey":"<DART_KEY>"}'

Apify CLI:

apify call scrapers_lat/korea-dart-filings-scraper \
--input '{"mode":"shareholders","stockCodes":["005930"],"apiKey":"<DART_KEY>"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per record returned (result event). See the pricing tab for the current per-result price.
  • AI add-ons billed separately. withAiTranslate and withAiSummary are charged per record only when they produce usable output, and only on paid plans.
  • No charge on failure. If a run errors (including a missing or invalid OpenDART key), the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run, and AI add-ons are ignored. Upgrade for higher maxRecords and AI enrichment.
  • OpenDART key required. You supply your own free OpenDART access key. OpenDART enforces a daily request limit per key.

FAQ and troubleshooting

Do I need an OpenDART key? Yes. Register once for free at opendart.fss.or.kr and pass it as apiKey, or configure a DART_API_KEY environment variable. The actor does not embed a shared key.

A run returned an error about the access key. Why? The key is missing, not yet registered/activated, expired, or the request IP is not allowed in your OpenDART key settings. Failed runs are not charged.

How do I look up a company fastest? Pass its 8-digit corpCodes directly to skip the name/stock-code resolution step.

What do the disclosure type letters mean? A periodic reports, B major-issue reports, C securities issuance, D equity-holding reports, E other, F audit/external-audit, G asset-backed securities, H fair-disclosure, I exchange filings, J fair-trade filings.

What is the difference between consolidated and separate financials? Consolidated figures include subsidiaries (group); separate figures are parent-company only. Choose with financialStatement.

Why are the AI fields null? The AI add-ons are off by default, apply only to the filings mode, and are ignored on free plans. Turn on withAiTranslate and withAiSummary on a paid plan.

Is this an official DART tool? No. This actor is independent and has no affiliation with the Financial Supervisory Service or DART. It reads only data available through the official OpenDART API using your own key. Use it in accordance with the OpenDART terms of service.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the Financial Supervisory Service or DART. Accesses only data available through the official OpenDART API using your own key. Use in accordance with the OpenDART terms of service.