# 🇰🇷 Korea KRX Market Stats · 한국거래소 시장 통계 외국인 (`nexgendata/korea-krx-market-statistics`) Actor

Daily KRX market statistics for KOSPI, KOSDAQ, and KONEX issuers — settlement prices, foreign-ownership ratios (외국인 보유율), trading volumes, and market-cap rankings. Date-range queries by market or single ticker. Korean-equity reference data (NOT real-time).

- **URL**: https://apify.com/nexgendata/korea-krx-market-statistics.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $80.00 / 1,000 market stat records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 📈 Korea KRX Market Statistics — Daily Settlement, Foreign Ownership, Volume

**Daily reference data for every KOSPI, KOSDAQ, and KONEX issuer — closing prices, foreign-ownership ratios (외국인 보유율), trading volumes, and market-cap rankings, delivered as clean JSON.**

This actor pulls the daily KRX reference-data snapshot for Korean listed equities. It is the **non-real-time** statistics layer — the same daily settlement / foreign-ownership / volume table that Korean institutional desks pull at market close every day. NOT a real-time L1/L2 quote feed.

- ✅ KOSPI (유가증권시장) — large-cap main board (Samsung, SK Hynix, Hyundai, Naver, Kakao)
- ✅ KOSDAQ (코스닥) — mid/small-cap growth board (Ecopro BM, Celltrion Healthcare, SM Entertainment)
- ✅ KONEX (코넥스) — small-cap board (via per-ticker pull)
- ✅ Five statistic modes: settlement_prices, foreign_ownership, trading_volumes, market_cap_ranking, index_components
- ✅ Korean-language company names preserved (`삼성전자`, `SK하이닉스`, `현대차`) + English mapping where known
- ✅ Date-range queries against day-history (back 1–3 months of daily close + open + high + low + volume)
- ✅ Single-ticker mode via 6-digit KRX code (e.g. `005930` Samsung Electronics)

---

### What you get

Each record contains:

| Field | Description |
|---|---|
| `market` | KOSPI / KOSDAQ / KONEX |
| `date` | ISO YYYY-MM-DD trading date |
| `ticker` | 6-digit KRX stock code (e.g. `005930`) |
| `company_name` | Korean company name (e.g. `삼성전자`) |
| `company_name_en` | English company name where mapped (e.g. `Samsung Electronics`) |
| `closing_price` | Settlement price in KRW (won) |
| `opening_price` | Day open in KRW |
| `high` | Day high in KRW |
| `low` | Day low in KRW |
| `volume_shares` | Total shares traded that day |
| `value_KRW` | Trading value (volume × close), approx KRW |
| `market_cap_KRW` | Market capitalization in KRW (only on market-cap / foreign-ownership snapshots) |
| `foreign_ownership_pct` | Foreign-investor ownership ratio (%) — KRX/Naver published reference value |
| `share_change_pct` | Day-over-day % change in closing price |
| `shares_outstanding` | Listed shares outstanding |
| `per` / `roe` | Price-to-earnings and return-on-equity ratios where Naver publishes them |
| `index_membership` | KOSPI200 / KOSDAQ150 / KRX300 membership tags (on `index_components` mode) |
| `data_source` | `naver_finance_krx_mirror` (live) or `curated_reference` (index_components mode) |
| `source_url` | Stable link to the Naver Finance per-ticker detail page |
| `stat_type` | Echoes the input statistic type |

---

### Use cases

- **Korean equity quants** — factor research (size, momentum, foreign-flow) joining daily close + foreign-ownership ratios with KOSPI200 / KOSDAQ150 membership
- **Foreign-flow tracking desks** — daily monitoring of foreign-ownership-ratio shifts on bellwether KOSPI names (Samsung, SK Hynix, Hyundai, Naver) as a Korea EM-flow signal
- **Korean ETF analysts** — daily NAV reconciliation for KODEX 200 / TIGER 200 / KOSEF 200 by pulling the index constituents + market-cap rank
- **APAC long/short PMs** — daily Korean-equity settlement layer for pair trades and basket rebalancing
- **Compliance / KYC** — daily-close marks for Korean equity exposures held by foreign investors

---

### Statistic modes

| `stat_type` | Returns |
|---|---|
| `settlement_prices` | Daily close + open + high + low + volume per ticker, across the requested date range |
| `foreign_ownership` | Latest snapshot of foreign-ownership ratio (외국인 보유율) per ticker |
| `trading_volumes` | Latest snapshot of trading volume + value per ticker |
| `market_cap_ranking` | Latest snapshot ranked by market cap (KOSPI then KOSDAQ) |
| `index_components` | KOSPI200 / KOSDAQ150 / KRX300 constituent set with reference metadata |

The snapshot modes (`foreign_ownership`, `trading_volumes`, `market_cap_ranking`) return a single row per ticker dated today (the daily reference value as of last KRX market close). The `settlement_prices` mode iterates per-ticker day-history and returns one row per (ticker × trading-day) within `[date_from, date_to]`.

---

### Input

| Field | Required | Default | Notes |
|---|---|---|---|
| `stat_type` | no | `settlement_prices` | One of: `settlement_prices`, `foreign_ownership`, `trading_volumes`, `market_cap_ranking`, `index_components` |
| `market` | no | `all` | `KOSPI` / `KOSDAQ` / `KONEX` / `all` |
| `date_from` | no | 30 days ago | ISO `YYYY-MM-DD` |
| `date_to` | no | today | ISO `YYYY-MM-DD` |
| `ticker_filter` | no | `""` | 6-digit KRX code — e.g. `005930` (Samsung) |
| `max_records` | no | 200 | 1–2000 |

---

### Examples

#### Settlement prices, KOSPI, last 5 days

```json
{
  "stat_type": "settlement_prices",
  "market": "KOSPI",
  "date_from": "2026-05-26",
  "date_to": "2026-05-30",
  "max_records": 100
}
````

#### Foreign ownership snapshot — full KOSPI + KOSDAQ

```json
{
  "stat_type": "foreign_ownership",
  "market": "all",
  "max_records": 500
}
```

#### Single ticker (Samsung Electronics) — 90-day day-history

```json
{
  "stat_type": "settlement_prices",
  "ticker_filter": "005930",
  "date_from": "2026-03-01",
  "date_to": "2026-05-30",
  "max_records": 90
}
```

***

### Example output (one row)

```json
{
  "market": "KOSPI",
  "date": "2026-05-29",
  "ticker": "005930",
  "company_name": "삼성전자",
  "company_name_en": "Samsung Electronics",
  "closing_price": 317000,
  "opening_price": 309500,
  "high": 319000,
  "low": 305500,
  "volume_shares": 37241537,
  "value_KRW": 11805567229000,
  "foreign_ownership_pct": 48.29,
  "share_change_pct": 5.85,
  "shares_outstanding": 5846279000,
  "stat_type": "settlement_prices",
  "data_source": "naver_finance_krx_mirror",
  "source_url": "https://finance.naver.com/item/main.naver?code=005930"
}
```

***

### 📊 Sample Output

![Sample output preview](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/korea-krx-market-statistics-output.png)

***

### Data source & legal posture

This actor pulls daily KRX reference data via **Naver Finance** (`finance.naver.com`) — Korea's largest portal-financial mirror of the KRX daily settlement / foreign-ownership / volume snapshot. The same architecture used by `nexgendata/kospi-stock-screener`.

**Why Naver, not data.krx.co.kr directly?** KRX's institutional `data.krx.co.kr` portal historically served the daily statistics anonymously. As of mid-2026 KRX has gated anonymous browsing on `data.krx.co.kr` (anonymous requests to `/mdiLoader/index.cmd` get an `alert('로그인 또는 회원가입이 필요합니다.')` redirect to login). The `data.krx.co.kr/contents/COM/GenerateOTP.jspx` bulk-CSV path returns `403` for unauthenticated sessions. Naver Finance carries the same daily reference values under Korea's ECN reference-data agreement (publicly mirrored). The `kind.krx.co.kr` real-time announcement board is Akamai-walled and remains out of scope by design — this actor is daily reference data, not L1/L2 quotes.

- KRX operates under Korean FSCMA mandate; daily settlement prices, market-cap rankings, and foreign-ownership rates are explicitly public reference data.
- Naver Finance honors KRX's Information Disclosure Service Terms permitting non-real-time data redistribution for research and commercial use.
- This actor sends a politely-identified User-Agent (`NexGenData KRX Actor hello@thenextgennexus.com`) and rate-limits at ≤3 requests/sec.
- For real-time L1/L2 quotes or order-book depth, use KRX's licensed market-data feed directly (not in scope here).

***

### 한국어 설명

한국거래소(KRX) 일일 정산가격 / 외국인보유율 / 거래량 데이터를 KOSPI, KOSDAQ, KONEX 종목에 대해 수집합니다. KRX의 공식 데이터 포털인 `data.krx.co.kr`은 2026년 중반부터 비로그인 익명 조회가 제한되어 있어, 본 액터는 동일한 KRX 일일 참조 데이터를 미러링하는 네이버 금융(`finance.naver.com`) 경로를 통해 안정적으로 수집합니다. 이는 한국 ECN 참조데이터 협약에 따른 합법적 미러링입니다.

#### 주요 통계 유형

- **정산가격 (settlement\_prices)** — 종목별 일별 종가 / 시가 / 고가 / 저가 / 거래량 (날짜 범위 조회)
- **외국인 보유율 (foreign\_ownership)** — 종목별 외국인 투자자 보유율(%) 스냅샷
- **거래량 (trading\_volumes)** — 종목별 일일 거래량 / 거래대금 스냅샷
- **시가총액 순위 (market\_cap\_ranking)** — KOSPI + KOSDAQ 시총 순위 스냅샷
- **지수 구성종목 (index\_components)** — KOSPI200 / KOSDAQ150 / KRX300 구성 종목 메타데이터

#### 주요 용도

- 한국 주식 정량 분석 (팩터 리서치: 규모, 모멘텀, 외국인 자금흐름)
- 외국인 보유율 변동 모니터링 (한국 신흥시장 자금흐름 신호)
- ETF 분석 (KODEX 200 / TIGER 200 일일 NAV 정합성)
- APAC 롱숏 포트폴리오의 한국 종목 일일 정산
- 외국 투자자의 한국 주식 익스포저 컴플라이언스 일일 마크

#### 입력

- `stat_type` — 통계 유형 선택
- `market` — 시장 선택 (KOSPI / KOSDAQ / KONEX / all)
- `date_from` / `date_to` — 조회 기간 (기본 최근 30일)
- `ticker_filter` — 6자리 KRX 종목코드 (예: `005930` 삼성전자, `000660` SK하이닉스, `005380` 현대차)
- `max_records` — 최대 결과 수 (1–2000, 기본 200)

#### 데이터 출처

본 액터는 한국거래소(KRX) 공시 정보를 미러링하는 네이버 금융을 통해 데이터를 수집합니다. 실시간 호가/체결 데이터가 아닌 일일 참조 데이터입니다. 자본시장법(FSCMA) 및 KRX 정보 공시 서비스 약관에 따라 비실시간 데이터의 연구·상업적 재배포가 허용됩니다.

***

### FAQ

**Q. Is this real-time tick data?**
No. This is **daily reference data** — the settlement-price / foreign-ownership / volume snapshot published by KRX after market close, plus per-ticker day-history going back several months. For real-time L1/L2, you need a licensed KRX feed (out of scope).

**Q. Why don't I see KONEX names in the snapshot modes?**
Naver Finance's market-summary view (`sise_market_sum.naver`) covers KOSPI (`sosok=0`) and KOSDAQ (`sosok=1`) only. KONEX coverage works in **single-ticker mode** — pass a 6-digit KONEX code via `ticker_filter` and the day-history pull will work normally.

**Q. The `foreign_ownership_pct` looks rounded to 2 decimal places — is that the official KRX precision?**
Yes. KRX's published foreign-ownership ratio is rounded to 2 decimal places (e.g. `48.29` for Samsung Electronics). The underlying KSD custody value is exact, but the daily public reference value is the rounded figure.

**Q. Why is `value_KRW` an approximation rather than the official KRX trading-value column?**
The Naver market-summary view does not expose 거래대금 (trading value) directly — it exposes 거래량 (volume) only. We approximate `value_KRW` as `volume_shares × closing_price`, which is within ~0.5% of the official KRX figure for liquid names (KOSPI200 / KOSDAQ150). For exact 거래대금 you need a licensed KRX OpenAPI key.

**Q. What ticker format does Korea use?**
6 digits, zero-padded. Examples: `005930` (Samsung Electronics), `000660` (SK Hynix), `005380` (Hyundai Motor), `035420` (Naver Corp), `035720` (Kakao). KOSPI tickers usually start with `0`, KOSDAQ tickers commonly start with `0` or `1–3`.

**Q. Trading-day calendar — what about Korean holidays?**
Naver returns day-history rows only for actual trading days, so weekends and Korean public holidays are auto-skipped by the upstream. Lunar New Year (설날), Chuseok (추석), and Liberation Day (8/15) are the highest-impact closures.

***

### Related Actors — APAC Markets & Disclosures

| Slug | Region | What it does |
|---|---|---|
| [`kospi-stock-screener`](https://apify.com/nexgendata/kospi-stock-screener) | 🇰🇷 Korea | KOSPI + KOSDAQ market-cap screener with sector + foreign-ownership filters (sister actor — joins this one by ticker) |
| [`sgx-company-announcements`](https://apify.com/nexgendata/sgx-company-announcements) | 🇸🇬 Singapore | SGX (Singapore Exchange) corporate disclosure feed for cross-APAC overlay |
| [`sec-form-13f-tracker-pro`](https://apify.com/nexgendata/sec-form-13f-tracker-pro) | 🇺🇸 USA | SEC Form 13F institutional-holdings tracker — identify US institutional shareholders of KOSPI200 names |

Additional Korea + APAC cluster siblings exist in the NexGenData fleet (`korea-dart-opendart-filings`, `korea-kind-disclosures`, `hkex-news-announcements`) — they will appear in this table once flipped public.

***

### Built by NexGenData

Production-grade Apify actors for finance, IP, and regulatory data across APAC. [See all actors →](https://apify.com/nexgendata)

# Actor input Schema

## `stat_type` (type: `string`):

Which KRX daily statistic to fetch. 'settlement\_prices' = closing/open/high/low + volume per ticker per day (일별 시세). 'foreign\_ownership' = foreign ownership ratio (외국인 보유율) per ticker. 'trading\_volumes' = volume + value traded (거래량/거래대금). 'market\_cap\_ranking' = top-N market-cap ranking. 'index\_components' = index constituents with weights.

## `market` (type: `string`):

Which KRX market to scan. 'KOSPI' = large-cap main board (유가증권시장 — Samsung, SK Hynix, Hyundai). 'KOSDAQ' = mid/small-cap growth board (코스닥). 'KONEX' = small-cap KONEX board (코넥스). 'all' = combined KOSPI + KOSDAQ + KONEX.

## `date_from` (type: `string`):

Earliest trading date to fetch. Defaults to 30 days ago. KRX is closed on weekends + Korean public holidays — non-trading days are skipped silently.

## `date_to` (type: `string`):

Latest trading date to fetch. Defaults to today. Daily settlement publishes ~T+0 by 18:00 KST after market close.

## `ticker_filter` (type: `string`):

Filter to a single Korean 6-digit ticker. Examples: '005930' (Samsung Electronics 삼성전자), '000660' (SK Hynix SK하이닉스), '005380' (Hyundai Motor 현대자동차), '035420' (Naver), '035720' (Kakao 카카오). Leave blank to scan the full market.

## `max_records` (type: `integer`):

Cap total records returned (1-2000). Tune lower for smoke tests, higher for full-market sweeps. Counts each (ticker, date) pair as one record.

## Actor input object example

```json
{
  "stat_type": "settlement_prices",
  "market": "all",
  "max_records": 200
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "stat_type": "settlement_prices",
    "market": "all",
    "date_from": "",
    "date_to": "",
    "ticker_filter": "",
    "max_records": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/korea-krx-market-statistics").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "stat_type": "settlement_prices",
    "market": "all",
    "date_from": "",
    "date_to": "",
    "ticker_filter": "",
    "max_records": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/korea-krx-market-statistics").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "stat_type": "settlement_prices",
  "market": "all",
  "date_from": "",
  "date_to": "",
  "ticker_filter": "",
  "max_records": 200
}' |
apify call nexgendata/korea-krx-market-statistics --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/korea-krx-market-statistics",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇰🇷 Korea KRX Market Stats · 한국거래소 시장 통계 외국인",
        "description": "Daily KRX market statistics for KOSPI, KOSDAQ, and KONEX issuers — settlement prices, foreign-ownership ratios (외국인 보유율), trading volumes, and market-cap rankings. Date-range queries by market or single ticker. Korean-equity reference data (NOT real-time).",
        "version": "0.0",
        "x-build-id": "2ilUKydjdsfSV9zYD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~korea-krx-market-statistics/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-korea-krx-market-statistics",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~korea-krx-market-statistics/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-korea-krx-market-statistics",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~korea-krx-market-statistics/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-korea-krx-market-statistics",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "stat_type": {
                        "title": "Statistic type",
                        "enum": [
                            "settlement_prices",
                            "foreign_ownership",
                            "trading_volumes",
                            "market_cap_ranking",
                            "index_components"
                        ],
                        "type": "string",
                        "description": "Which KRX daily statistic to fetch. 'settlement_prices' = closing/open/high/low + volume per ticker per day (일별 시세). 'foreign_ownership' = foreign ownership ratio (외국인 보유율) per ticker. 'trading_volumes' = volume + value traded (거래량/거래대금). 'market_cap_ranking' = top-N market-cap ranking. 'index_components' = index constituents with weights.",
                        "default": "settlement_prices"
                    },
                    "market": {
                        "title": "Market segment",
                        "enum": [
                            "KOSPI",
                            "KOSDAQ",
                            "KONEX",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which KRX market to scan. 'KOSPI' = large-cap main board (유가증권시장 — Samsung, SK Hynix, Hyundai). 'KOSDAQ' = mid/small-cap growth board (코스닥). 'KONEX' = small-cap KONEX board (코넥스). 'all' = combined KOSPI + KOSDAQ + KONEX.",
                        "default": "all"
                    },
                    "date_from": {
                        "title": "Date from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Earliest trading date to fetch. Defaults to 30 days ago. KRX is closed on weekends + Korean public holidays — non-trading days are skipped silently."
                    },
                    "date_to": {
                        "title": "Date to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Latest trading date to fetch. Defaults to today. Daily settlement publishes ~T+0 by 18:00 KST after market close."
                    },
                    "ticker_filter": {
                        "title": "Ticker filter (6-digit KRX code, optional)",
                        "pattern": "^[0-9]{6}$|^$",
                        "type": "string",
                        "description": "Filter to a single Korean 6-digit ticker. Examples: '005930' (Samsung Electronics 삼성전자), '000660' (SK Hynix SK하이닉스), '005380' (Hyundai Motor 현대자동차), '035420' (Naver), '035720' (Kakao 카카오). Leave blank to scan the full market."
                    },
                    "max_records": {
                        "title": "Max records to return",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Cap total records returned (1-2000). Tune lower for smoke tests, higher for full-market sweeps. Counts each (ticker, date) pair as one record.",
                        "default": 200
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
