Korean Stock Market Data — Free JSON, No API Key
Closing prices for 2,786 KOSPI/KOSDAQ/KONEX stocks — every listed stock in the government price feed that had a price that day (no ETFs), the KOSPI and KOSDAQ index levels, DART regulatory filings with plain-language explanations, and an accumulating daily price history per stock (one row added every trading day, never truncated) — published every trading day as self-describing JSON. No signup, no API key, no request quota, CORS open. Prices are the previous business day's official close (T+1), not real time. Latest close on file: KOSPI 6,894.23 (+2.66%) · KOSDAQ 827.12 (+0.60%) (2026-09-18).
Start here
| If you want to… | Use |
|---|---|
| Ask an AI about Korean stocks mid-conversation | MCP server — paste one URL into Claude or ChatGPT |
| Read the data from code | Endpoints and OpenAPI |
| Just want a spreadsheet | quotes_en.csv — English headers, one row per stock |
| Just see what a record looks like | Samsung Electronics (005930) |
| Browse everything | Catalog (index.json) |
What is published
- Prices — official close, volume and market cap for every covered stock, plus daily closing-price history per stock in a single file.
- Index — KOSPI and KOSDAQ close, change and constituent count.
- Filings — DART disclosures scored by materiality, each with a plain-Korean explanation and a permanent page linking to the original document.
- Earnings — revenue, operating profit and net income from filings, with year-over-year change, on a 120-day rolling board.
- After-filing price path — for each filing type, the median market-adjusted return at +1/+5/+20 trading days. A record of what happened, not a forecast. See the table.
How it is kept honest
- null is not zero. Per-stock JSON uses
nullfor missing values. The bulk quote files (quotes.json/.csv) keep the source convention: open/high/low are 0 for a stock with no trade that day — checktrqu= 0. - Freshness is computed, not claimed. Each file carries the price date, the filing
cut-off and fixed
delayed_after/stale_afterdates, so staleness can be judged from today's date even if publishing stops. - Failures are published. When a run fails, the previous good snapshot keeps serving and the failure is recorded in notices.json.
- Numbers that break accounting identities are withheld, not published with a warning.
What is not here
- No real-time or intraday prices. Closing prices only, published the next business day (T+1) by the government source. If you need live quotes, this is the wrong dataset.
- No target prices or analyst ratings. Those are brokerage-derived; this project
publishes only public-sector data. (PER and PBR are here where the inputs exist —
computed by us from DART financials and FSC closing prices:
valuation.pe_ttm,valuation.pbin/data/public/s/{code}.json.) - No investor-type flows (foreign / institutional / retail).
- No sector classification yet.
- Filing explanations are written in Korean. Field names and structure are English-friendly; the prose is not translated.
This site publishes public data as fact. It is not investment advice and does not recommend buying or selling any security. Source: Financial Services Commission open data portal (prices) and DART, the Financial Supervisory Service filing system. Terms: Non-commercial use with attribution; commercial redistribution is not permitted. (aiksd-public-1.1)