# KRX Stock Scraper — Korean Market Data for Global Investors (`huggable_quote/krx-stock-scraper`) Actor

Scrape Korean stock market data (KOSPI & KOSDAQ) with English field names. 11 data modes: market overview, stock detail, top movers, foreign investor flow, fundamentals, index data, stock list, financial statements (DART), major shareholders (DART), disclosures (DART), and news (Naver Finance).

- **URL**: https://apify.com/huggable\_quote/krx-stock-scraper.md
- **Developed by:** [OrbitData Labs](https://apify.com/huggable_quote) (community)
- **Categories:** News, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

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

## KRX Stock Scraper — Korean Market Data for Global Investors 🇰🇷📈

Access South Korea's stock market data (KOSPI & KOSDAQ) with **English field names**. The only KRX data scraper on Apify.

### Why this scraper?

- **Only Korean stock market scraper on Apify** — no alternatives exist
- **All data in English** — field names, stock name translations, standardized formats
- **11 data modes** — from market overview to financial statements and news
- **Zero setup** — all API keys built-in, just run it
- **No proxy needed** — KRX public data, ultra-low compute cost
- From the maker of [Naver Map Scraper](https://apify.com/huggable_quote/naver-map-scraper) (Korea's #1 map data scraper on Apify)

### 🌟 Key Feature: Foreign Investor Flow

Track what foreign institutional investors are buying and selling in the Korean market. Samsung Electronics, SK Hynix, and other K-semiconductor / K-battery stocks are increasingly on global investors' radar. This scraper lets you monitor foreign capital flows in real-time.

### Data Modes

#### KRX Market Data (modes 1–7)

##### 1. Market Overview (`market_overview`)

Full market snapshot: all KOSPI/KOSDAQ stocks with OHLCV, market cap, and daily change.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `market`, `open`, `high`, `low`, `close`, `volume`, `tradingValue`, `changePercent`, `marketCap`, `sharesOutstanding`, `date`

##### 2. Stock Detail (`stock_detail`)

Deep dive into any stock: OHLCV + valuation (PER/PBR/EPS) + investor flow (foreign/retail/institutional). Requires `tickers` input.

**Output fields:** All OHLCV fields + `per`, `pbr`, `eps`, `bps`, `dividendYield`, `dps`, `foreignNetBuy`, `retailNetBuy`, `institutionalNetBuy`, `marketCap`

##### 3. Top Movers (`top_movers`)

Biggest gainers and losers by percentage change. Returns top N gainers + top N losers.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `direction` (gainer/loser), `open`, `close`, `changeAmount`, `changePercent`, `volume`, `tradingValue`, `period`

##### 4. Foreign Flow (`foreign_flow`) 🔥

Foreign investor net buying/selling rankings. Essential for tracking global capital movement into Korea.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `foreignBuyVolume`, `foreignSellVolume`, `foreignNetBuyVolume`, `foreignBuyValue`, `foreignSellValue`, `foreignNetBuyValue`, `period`

##### 5. Fundamentals Screening (`fundamentals`)

Screen stocks by PER, PBR, dividend yield across the entire market.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `bookValuePerShare`, `priceToEarnings`, `priceToBook`, `earningsPerShare`, `dividendYield`, `dividendPerShare`, `date`

##### 6. Index Data (`index_data`)

KOSPI, KOSDAQ, KOSPI 200 index OHLCV with constituent stock lists.

**Output fields:** `indexName`, `indexCode`, `date`, `open`, `high`, `low`, `close`, `volume` + constituent list

##### 7. Stock List (`stock_list`)

Complete list of all listed stocks with Korean/English names and tickers.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `market`, `date`

#### 🆕 Financial Data via DART (modes 8–10)

Institutional-grade financial data powered by DART API (built-in, no API key needed).

##### 8. Financial Statements (`financials`)

Income statement, balance sheet, cash flow — annual and quarterly. Korean accounting standards (K-IFRS) data translated to English field names.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `fiscalYear`, `reportType`, `fsType`, `statementType`, `accountNameKr`, `accountNameEn`, `currentPeriodAmount`, `previousPeriodAmount`, `beforePreviousAmount`, `currency`, `sortOrder`

##### 9. Major Shareholders (`major_holders`)

Track 5%+ shareholders and executive stock holdings. Monitor insider buying/selling activity.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `holderName`, `shareCount`, `ownershipPercent`, `changeDate`, `changeReason`, `holderType`

##### 10. Disclosures / Filings (`disclosures`)

Recent corporate filings and regulatory disclosures with direct links to official DART documents.

**Output fields:** `ticker`, `corpName`, `reportName`, `reportType`, `filingDate`, `filerName`, `receiptNumber`, `dartUrl`

#### 🆕 News (mode 11)

##### 11. News (`news`)

Latest stock news from Naver Finance in Korean. Titles, sources, dates, and article URLs. Use Google Translate API or DeepL for English translation.

**Output fields:** `ticker`, `stockNameKr`, `stockNameEn`, `title`, `source`, `publishedDate`, `articleUrl`, `language`

### Setup

**No setup needed.** All API keys and credentials are built-in. Just select a mode, set your parameters, and run. All 11 modes work out of the box.

### Popular Korean Stocks (Quick Reference)

| Ticker | Name | Sector |
|--------|------|--------|
| 005930 | Samsung Electronics | Semiconductors |
| 000660 | SK Hynix | Semiconductors |
| 373220 | LG Energy Solution | Battery |
| 207940 | Samsung Biologics | Biotech |
| 005380 | Hyundai Motor | Automotive |
| 000270 | Kia | Automotive |
| 035420 | NAVER | Internet |
| 035720 | Kakao | Internet |
| 068270 | Celltrion | Biotech |
| 006400 | Samsung SDI | Battery |
| 051910 | LG Chem | Chemicals |
| 005490 | POSCO Holdings | Steel |

### Input Examples

#### Market Overview (default)

```json
{
    "mode": "market_overview",
    "market": "KOSPI",
    "toDate": "2025-05-09"
}
````

#### Samsung Electronics — 30-day detail

```json
{
    "mode": "stock_detail",
    "tickers": ["005930"],
    "fromDate": "2025-04-01",
    "toDate": "2025-05-09",
    "frequency": "daily"
}
```

#### Foreign investor flow — this week

```json
{
    "mode": "foreign_flow",
    "market": "KOSPI",
    "fromDate": "2025-05-05",
    "toDate": "2025-05-09",
    "topN": 20
}
```

#### Samsung Electronics — Financial Statements

```json
{
    "mode": "financials",
    "tickers": ["005930"],
    "fiscalYear": 2024,
    "reportType": "annual",
    "fsType": "consolidated"
}
```

#### Samsung Electronics — Major Shareholders

```json
{
    "mode": "major_holders",
    "tickers": ["005930"]
}
```

#### Recent Disclosures

```json
{
    "mode": "disclosures",
    "tickers": ["005930"],
    "fromDate": "2025-01-01",
    "toDate": "2025-05-10"
}
```

#### Samsung Electronics — Latest News

```json
{
    "mode": "news",
    "tickers": ["005930"],
    "maxNewsPerStock": 20
}
```

### Output Examples

#### market\_overview

```json
{
    "ticker": "005930",
    "stockNameKr": "삼성전자",
    "stockNameEn": "Samsung Electronics",
    "market": "KOSPI",
    "open": 55500,
    "high": 56200,
    "low": 55100,
    "close": 55800,
    "volume": 12345678,
    "tradingValue": 687654321000,
    "changePercent": 1.45,
    "marketCap": 333120000000000,
    "sharesOutstanding": 5969782550,
    "date": "2025-05-09",
    "scrapedAt": "2025-05-09T10:30:00+00:00"
}
```

#### financials

```json
{
    "ticker": "005930",
    "stockNameKr": "삼성전자",
    "stockNameEn": "Samsung Electronics",
    "fiscalYear": 2024,
    "reportType": "annual",
    "fsType": "consolidated",
    "statementType": "incomeStatement",
    "accountNameKr": "매출액",
    "accountNameEn": "revenue",
    "currentPeriodAmount": 300922052000000,
    "previousPeriodAmount": 258935489000000,
    "beforePreviousAmount": 302231360000000,
    "currency": "KRW",
    "sortOrder": 1,
    "scrapedAt": "2025-05-09T10:30:00+00:00"
}
```

#### news

```json
{
    "ticker": "005930",
    "stockNameKr": "삼성전자",
    "stockNameEn": "Samsung Electronics",
    "title": "삼성전자, 2분기 실적 전망치 상향",
    "source": "한국경제",
    "publishedDate": "2025-05-09 09:30",
    "articleUrl": "https://finance.naver.com/item/news_read.naver?...",
    "language": "ko",
    "scrapedAt": "2025-05-09T10:30:00+00:00"
}
```

### Pricing

**$5.00 per 1,000 results** (Pay per event)

All 11 modes at the same rate. Financial data commands premium value — institutional-grade Korean market data is worth every cent.

### Technical Details

- **Data sources**: KRX (Korea Exchange), DART (Financial Supervisory Service), Naver Finance
- **Proxy**: Not required
- **Rate limiting**: Built-in delays between API calls (1s for KRX, 0.5s for DART, 1s for Naver)
- **Memory**: 256MB is sufficient
- **All monetary values**: In KRW (Korean Won), raw integer amounts — no currency conversion applied
- **DART**: Built-in API key, no setup needed for financial data modes

### Use Cases

- Track foreign institutional buying trends in Korean semiconductor stocks
- Screen Korean stocks by valuation metrics (PER, PBR, dividend yield)
- Monitor KOSPI/KOSDAQ index performance and composition changes
- Analyze corporate financial statements (K-IFRS) in English
- Track insider / major shareholder stock transactions
- Monitor regulatory filings and corporate disclosures
- Build Korean stock news aggregation pipelines
- Build Korean stock market dashboards and alerts
- Academic research on Korean capital markets
- Quantitative analysis and algorithmic trading data pipeline
- AI agent integration for Korean market intelligence

### Korea Data Suite by huggable\_quote 🇰🇷

Need more Korean data? Check out our other scrapers:

- 🗺️ [Naver Map Scraper](https://apify.com/huggable_quote/naver-map-scraper) — Korea's #1 business & POI data scraper
- 🗺️ [Kakao Map Scraper](https://apify.com/huggable_quote/kakao-map-scraper) — Restaurants, attractions & local businesses

### FAQ

**Q: Do I need any API keys or accounts?**
A: No. All credentials are built-in. Just select a mode and run — all 11 modes work out of the box with zero setup.

**Q: How fresh is the data?**
A: KRX data is updated after market close (~3:30 PM KST). DART filings appear within hours of submission. Naver news is near real-time.

**Q: Why are some English names null?**
A: We provide English translations for the top ~100 stocks by market cap. Smaller companies show `null` for `stockNameEn` but always have `stockNameKr` (Korean name).

**Q: Are news articles in English?**
A: No — news is in Korean (from Naver Finance). The `language` field is always `"ko"`. Use Google Translate API or DeepL for translation.

**Q: All prices are in KRW?**
A: Yes. All monetary values (price, market cap, trading value) are in Korean Won. No currency conversion is applied — convert on your end using your preferred exchange rate.

# Actor input Schema

## `mode` (type: `string`):

What kind of data to extract. All modes work out of the box — no API keys or accounts needed.

**KRX Market Data:**

- **market\_overview**: Full market snapshot — all stocks with OHLCV, market cap, daily change
- **stock\_detail**: Deep dive into specific stocks — OHLCV + valuation (PER/PBR) + investor flow
- **top\_movers**: Biggest gainers and losers by percentage change
- **foreign\_flow**: Foreign investor net buying/selling rankings
- **fundamentals**: Screen stocks by PER, PBR, dividend yield
- **index\_data**: KOSPI/KOSDAQ index OHLCV with constituent stock lists
- **stock\_list**: Complete list of all listed stocks with Korean/English names

**DART Financial Data:**

- **financials**: Financial statements (income statement, balance sheet, cash flow)
- **major\_holders**: Major shareholders and executive stock holdings
- **disclosures**: Corporate filings and regulatory disclosures

**News:**

- **news**: Latest stock news from Naver Finance (Korean language)

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

Target market. KOSPI is the main board (~950 stocks), KOSDAQ is the secondary board (~1,700 stocks). For index\_data mode, you can also use KOSPI200, KOSPI100, KOSPI50, KOSDAQ150.

## `tickers` (type: `array`):

KRX stock ticker codes. Required for stock\_detail, financials, major\_holders, and news modes. Examples: 005930 = Samsung Electronics, 000660 = SK Hynix, 373220 = LG Energy Solution, 005380 = Hyundai Motor, 035420 = NAVER

## `fromDate` (type: `string`):

Start date in YYYY-MM-DD format. Default: 30 days ago. Used for stock\_detail, top\_movers, foreign\_flow, index\_data, and disclosures modes.

## `toDate` (type: `string`):

End date in YYYY-MM-DD format. Default: today. Used as the reference date for market\_overview, fundamentals, stock\_list, and disclosures modes.

## `frequency` (type: `string`):

Data aggregation frequency. Only applies to stock\_detail and index\_data modes.

## `topN` (type: `integer`):

Number of top stocks to return. Applies to top\_movers (returns N gainers + N losers) and foreign\_flow modes.

## `includeEnglishNames` (type: `boolean`):

Translate Korean stock names to English for top ~100 stocks by market cap (Samsung Electronics, SK Hynix, etc.). Smaller stocks will show null for English name.

## `fiscalYear` (type: `integer`):

Fiscal year for financial statements (e.g., 2024). Default: most recent full year. Only used in financials mode.

## `reportType` (type: `string`):

Type of financial report. Only used in financials mode.

## `fsType` (type: `string`):

Consolidated (연결) or separate (개별) financial statements. Only used in financials mode.

## `maxNewsPerStock` (type: `integer`):

Maximum number of news articles to fetch per stock. Only used in news mode.

## `proxyConfiguration` (type: `object`):

Usually NOT needed. KRX serves public data without IP restrictions. Only enable if you experience blocks from heavy usage.

## Actor input object example

```json
{
  "mode": "market_overview",
  "market": "KOSPI",
  "frequency": "daily",
  "topN": 20,
  "includeEnglishNames": true,
  "fiscalYear": 2024,
  "reportType": "annual",
  "fsType": "consolidated",
  "maxNewsPerStock": 10
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("huggable_quote/krx-stock-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("huggable_quote/krx-stock-scraper").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 '{}' |
apify call huggable_quote/krx-stock-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "KRX Stock Scraper — Korean Market Data for Global Investors",
        "description": "Scrape Korean stock market data (KOSPI & KOSDAQ) with English field names. 11 data modes: market overview, stock detail, top movers, foreign investor flow, fundamentals, index data, stock list, financial statements (DART), major shareholders (DART), disclosures (DART), and news (Naver Finance).",
        "version": "0.1",
        "x-build-id": "vndSJYw3Xsr0iZn1D"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/huggable_quote~krx-stock-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-huggable_quote-krx-stock-scraper",
                "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/huggable_quote~krx-stock-scraper/runs": {
            "post": {
                "operationId": "runs-sync-huggable_quote-krx-stock-scraper",
                "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/huggable_quote~krx-stock-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-huggable_quote-krx-stock-scraper",
                "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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Data Mode",
                        "enum": [
                            "market_overview",
                            "stock_detail",
                            "top_movers",
                            "foreign_flow",
                            "fundamentals",
                            "index_data",
                            "stock_list",
                            "financials",
                            "major_holders",
                            "disclosures",
                            "news"
                        ],
                        "type": "string",
                        "description": "What kind of data to extract. All modes work out of the box — no API keys or accounts needed.\n\n**KRX Market Data:**\n- **market_overview**: Full market snapshot — all stocks with OHLCV, market cap, daily change\n- **stock_detail**: Deep dive into specific stocks — OHLCV + valuation (PER/PBR) + investor flow\n- **top_movers**: Biggest gainers and losers by percentage change\n- **foreign_flow**: Foreign investor net buying/selling rankings\n- **fundamentals**: Screen stocks by PER, PBR, dividend yield\n- **index_data**: KOSPI/KOSDAQ index OHLCV with constituent stock lists\n- **stock_list**: Complete list of all listed stocks with Korean/English names\n\n**DART Financial Data:**\n- **financials**: Financial statements (income statement, balance sheet, cash flow)\n- **major_holders**: Major shareholders and executive stock holdings\n- **disclosures**: Corporate filings and regulatory disclosures\n\n**News:**\n- **news**: Latest stock news from Naver Finance (Korean language)",
                        "default": "market_overview"
                    },
                    "market": {
                        "title": "Market",
                        "enum": [
                            "KOSPI",
                            "KOSDAQ",
                            "ALL"
                        ],
                        "type": "string",
                        "description": "Target market. KOSPI is the main board (~950 stocks), KOSDAQ is the secondary board (~1,700 stocks). For index_data mode, you can also use KOSPI200, KOSPI100, KOSPI50, KOSDAQ150.",
                        "default": "KOSPI"
                    },
                    "tickers": {
                        "title": "Stock Tickers",
                        "type": "array",
                        "description": "KRX stock ticker codes. Required for stock_detail, financials, major_holders, and news modes. Examples: 005930 = Samsung Electronics, 000660 = SK Hynix, 373220 = LG Energy Solution, 005380 = Hyundai Motor, 035420 = NAVER",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fromDate": {
                        "title": "From Date",
                        "type": "string",
                        "description": "Start date in YYYY-MM-DD format. Default: 30 days ago. Used for stock_detail, top_movers, foreign_flow, index_data, and disclosures modes."
                    },
                    "toDate": {
                        "title": "To Date",
                        "type": "string",
                        "description": "End date in YYYY-MM-DD format. Default: today. Used as the reference date for market_overview, fundamentals, stock_list, and disclosures modes."
                    },
                    "frequency": {
                        "title": "Data Frequency",
                        "enum": [
                            "daily",
                            "monthly",
                            "yearly"
                        ],
                        "type": "string",
                        "description": "Data aggregation frequency. Only applies to stock_detail and index_data modes.",
                        "default": "daily"
                    },
                    "topN": {
                        "title": "Top N Stocks",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Number of top stocks to return. Applies to top_movers (returns N gainers + N losers) and foreign_flow modes.",
                        "default": 20
                    },
                    "includeEnglishNames": {
                        "title": "Include English Stock Names",
                        "type": "boolean",
                        "description": "Translate Korean stock names to English for top ~100 stocks by market cap (Samsung Electronics, SK Hynix, etc.). Smaller stocks will show null for English name.",
                        "default": true
                    },
                    "fiscalYear": {
                        "title": "Fiscal Year",
                        "type": "integer",
                        "description": "Fiscal year for financial statements (e.g., 2024). Default: most recent full year. Only used in financials mode.",
                        "default": 2024
                    },
                    "reportType": {
                        "title": "Report Type",
                        "enum": [
                            "annual",
                            "semiannual",
                            "q1",
                            "q3"
                        ],
                        "type": "string",
                        "description": "Type of financial report. Only used in financials mode.",
                        "default": "annual"
                    },
                    "fsType": {
                        "title": "Financial Statement Type",
                        "enum": [
                            "consolidated",
                            "separate"
                        ],
                        "type": "string",
                        "description": "Consolidated (연결) or separate (개별) financial statements. Only used in financials mode.",
                        "default": "consolidated"
                    },
                    "maxNewsPerStock": {
                        "title": "Max News Articles Per Stock",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of news articles to fetch per stock. Only used in news mode.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Usually NOT needed. KRX serves public data without IP restrictions. Only enable if you experience blocks from heavy usage."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
