DEV Community

NexGenData
NexGenData

Posted on • Originally published at thenextgennexus.com

KOSPI Stock Screener API: Korean Equities Market Data Pipeline

中文版: 中文版本

TL;DR. The Korea Composite Stock Price Index (KOSPI) covers ~800 main-board listings on the Korea Exchange — Samsung Electronics, SK Hynix, Hyundai Motor, LG Energy Solution, the Naver / Kakao internet duo, and the broader chaebol ecosystem. For US- and ASEAN-based research desks, Korea is typically the largest single non-Japan Asian allocation, with semiconductors and EV-batteries the dominant sector exposures. The Korea Exchange and FnGuide / DataGuide are the canonical commercial data providers; for screening, factor research, and dashboarding the public KRX data combined with structured aggregation can replicate most of the workflow at a fraction of the cost. This guide covers KOSPI market structure, the fields a Korea equity researcher actually needs, and a working Python pipeline using the KOSPI Stock Screener actor.

What's in the KOSPI universe

KOSPI is the main board of the Korea Exchange (KRX); KOSDAQ is the parallel growth board. As of 2026 the KOSPI hosts approximately 800 listings, dominated by:

  • Semiconductors — Samsung Electronics (005930), SK Hynix (000660). These two alone routinely represent ~25-30% of KOSPI total market cap.
  • Automotive — Hyundai Motor (005380), Kia (000270), and the Hyundai-supplier chain.
  • EV battery — LG Energy Solution (373220), Samsung SDI (006400), SK Innovation (096770).
  • Internet — Naver (035420), Kakao (035720). Korea's local internet incumbents, neither has a meaningful Western analog.
  • Banking and financials — KB Financial (105560), Shinhan (055550), Hana (086790).
  • Steel and shipbuilding — POSCO (005490), Hyundai Heavy.
  • K-content — major entertainment companies cross-listed across KOSPI and KOSDAQ.

Korea's chaebol structure means cross-holdings within conglomerate groups are an important second-order analytical dimension — Samsung Electronics, Samsung SDI, and Samsung Biologics are separately listed but linked. Any factor model needs to handle the group-affiliation dimension.

KOSPI market microstructure

  • Trading hours — 09:00–15:30 KST with an opening call auction at 08:30–09:00 and closing call auction at 15:20–15:30.
  • Daily price limit — ±30% on KOSPI (loosened from ±15% in 2015). KOSDAQ is also ±30%.
  • Settlement — T+2.
  • Lot size — 1 share for most listings (historically 10).
  • Short selling rules — Korea periodically imposes short-selling bans during market stress; the 2023-2024 ban and the 2024 partial resumption are recent examples that affect any short-side backtest.

The Foreign Investor Registration regime (KRX requires foreign investors to register for an investor ID) is no longer the bottleneck it was pre-2023 — the requirement was largely lifted in late 2023 — but it remains relevant for data-source attribution and historical comparison.

Working Python example

The KOSPI Stock Screener actor returns the KOSPI (and optionally KOSDAQ) universe with quotes, market cap in KRW, sector tags using KRX industry codes, and chaebol group affiliation. Curl:


    curl -X POST "https://api.apify.com/v2/acts/nexgendata~kospi-stock-screener/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"market": "KOSPI", "minMarketCapKRW": 1000000000000, "sectors": ["Semiconductors","EV Battery"], "maxResults": 500}'

Enter fullscreen mode Exit fullscreen mode

Python — large-cap KOSPI screen:


    import os, json, urllib.request

    APIFY_TOKEN = os.environ["APIFY_TOKEN"]
    ACTOR = "nexgendata~kospi-stock-screener"

    payload = json.dumps({
        "market": "KOSPI",
        "minMarketCapKRW": 1_000_000_000_000,
        "includeGroupAffiliation": True,
        "maxResults": 500,
    }).encode("utf-8")

    url = f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items?token={APIFY_TOKEN}"
    req = urllib.request.Request(url, data=payload, method="POST",
                                  headers={"Content-Type": "application/json"})

    with urllib.request.urlopen(req, timeout=600) as r:
        stocks = json.loads(r.read())

    for s in sorted(stocks, key=lambda x: -x.get("marketCapKRW", 0))[:20]:
        print(f"{s['ticker']} | {s.get('nameEn') or s['name']} | "
              f"mcap={s['marketCapKRW']/1e12:.1f}T KRW | group={s.get('group','-')}")

Enter fullscreen mode Exit fullscreen mode

Returned shape:


    {
      "ticker": "005930",
      "isin": "KR7005930003",
      "name": "삼성전자",
      "nameEn": "Samsung Electronics Co., Ltd.",
      "market": "KOSPI",
      "krxIndustry": "Electrical, electronic equipment",
      "sector": "Semiconductors",
      "group": "Samsung",
      "lastPrice": 78400,
      "marketCapKRW": 467500000000000,
      "peTTM": 14.6,
      "pbMRQ": 1.4,
      "dividendYieldTTM": 2.0,
      "foreignOwnershipPct": 53.2,
      "tradingStatus": "NORMAL"
    }

Enter fullscreen mode Exit fullscreen mode

Cost comparison: KOSPI data sources

Source Coverage English Annual cost
FnGuide / DataGuide Full KOSPI + KOSDAQ + estimates Yes ~$3k–$15k+ per seat
Bloomberg Terminal (KS / KQ tickers) Full + news Yes ~$24k per seat
Refinitiv Eikon Korea Full Yes ~$22k per seat
KRX own data services Full Yes Subscription, varies
Yahoo Finance Korea (.KS / .KQ) Quotes Yes Free, terms-of-use limits
KOSPI Stock Screener actor KOSPI + optionally KOSDAQ, screening fields Yes PPE per screen

FnGuide / DataGuide remain canonical for Korean sell-side and institutional buy-side desks — particularly for forward-estimate data (the "consensus" feeds that local analysts use) and the unique-to-Korea fundamentals coverage. For screening, factor research, and dashboarding without the forward-estimate dependency, the public KRX-derived stack is meaningfully sufficient.

What this enables

  • Sector dashboards — semiconductor cycle tracking via Samsung + SK Hynix, EV-battery cycle via LGES + Samsung SDI + SK Innovation, internet via Naver + Kakao
  • Factor research on the KOSPI universe — value, quality, momentum factor portfolios with chaebol-group adjustment
  • Foreign ownership monitoring — KRX publishes daily foreign-ownership percentages; tracking deltas at the name level is a meaningful flow signal for Korea-equity strategies
  • ASEAN-cluster regional dashboards — pair KOSPI with SGX, PSE Edge, and the broader regional disclosure feeds

KOSPI vs. KOSDAQ practical handling

For Korea-focused funds the two boards are typically run as a single research universe with sector-weighted construction. KOSPI dominates large-cap; KOSDAQ dominates K-content, biotech, and EV-battery small/mid. The actor supports either or both — most use cases pull both.

Pairing with disclosure data

Quote and fundamentals data alone are insufficient for any time-sensitive research workflow on Korean equities — the relevant news flow comes through KIND disclosures. A complete Korea research pipeline pulls the KOSPI screener for the static universe + fundamentals, then KIND for the real-time event flow on holdings. Adjacent feeds: SEC Event Router for Korean ADRs on US exchanges (a small but growing cohort), and HKEX for Korea-HK secondary listings.

One execution note

Korea applies a securities transaction tax (currently 0.18% combined for KOSPI sells, scheduled for further reduction) that materially affects any high-turnover backtest. Factor-rotation strategies in Korea should explicitly model the tax in addition to spread. For long-only factor portfolios with monthly rebalance the impact is small; for daily or weekly rotation strategies it is the dominant cost.

Foreign ownership caps and the FIR regime

Although the Foreign Investor Registration certificate requirement was largely lifted in late 2023, several KOSPI sectors retain statutory foreign-ownership caps under Korean law — telecoms, broadcasting, defense-adjacent, and a handful of utilities still have explicit caps ranging from 25% to 49%. For any Korea-focused strategy that holds capped-sector names, the headroom (current foreign ownership vs. statutory cap) is a first-class data field. KRX publishes daily foreign-ownership statistics that flow into the actor's foreignOwnershipPct field; the cap-aware research workflow filters on capped sectors and screens for low-headroom names that can hit forced unwind triggers.

Chaebol cross-holdings and the affiliation field

The KRX classifies issuers by chaebol group affiliation under the Monopoly Regulation and Fair Trade Act — the "large business group" designation that includes the Samsung group, Hyundai Motor group, SK group, LG group, Lotte group, and roughly 75 others. The affiliation matters for any factor model that needs to handle correlated returns within a group (Samsung Electronics and Samsung SDI exhibit higher pairwise correlation than two unrelated semis) and for any governance-quality factor. The actor returns the group field, which lets you build group-neutral factor portfolios or, conversely, group-concentration screens.

Get started: Pull your first KOSPI screen free at the KOSPI Stock Screener actor page.

Related Reading

More from this China / APAC series:

From the SEC/SGX/ASX and PR-newswire series:

Top comments (0)