怎么用韩国行情数据API接口获取股票列表
接入一个新市场,第一件事不是取报价,而是先拿到这个市场有哪些产品:代码是什么、名称是什么、是股票还是基金。这篇教学方案用我们的韩国行情数据API接口,以韩国交易所(KRX)为例,三步取到全部股票列表,并用列表里的代码查到三星电子(005930)的报价,文末有可以直接运行的完整代码。

准备工作
- 一把密钥。能用哪些市场是开通账号时确定的,申请时说明要用韩国的行情。
- 接入地址。HTTP 的接入地址写在开发文档的通用规则里,下文用「HTTP 接入地址」代替。
- 市场代码:韩国股票写
market=KRX。其它市场的取值见国家与市场参数。
第一步:请求产品列表
用到的接口是产品列表。请求头带 Authorization: 你的密钥,只有一个参数:
GET /api/all_symbol?market=KRX
返回的是一个数组,每个产品一项,按产品代码从小到大排列,不分页。其中三星电子这一项是:
{
"status": 0,
"interval": null,
"market": "KRX",
"code": "005930",
"message": "SUCCESS",
"data": {
"code": "005930",
"contract": "stock",
"name": "삼성전자",
"Market": "KRX",
"Varieties": "stock"
}
}
产品信息在 data 里:
code:产品代码,调用其它接口时就用这个原值name:产品名称,韩国市场是韩文Market:市场代码Varieties:产品类型,stock是股票,fund是基金
字段名区分大小写,Market、Varieties 的首字母是大写。
第二步:按类型筛选,存下来
2026 年 10 月 10 日实测,KRX 一共返回 4345 个产品,其中股票 2782 个、基金 1563 个。只做股票的话,按 Varieties 等于 stock 筛一遍就是股票列表。
整份列表有几百 KB,不要每次用到都请求。建议取一次存到自己的库或者文件里,每天更新一次;页面上的搜索、代码和名称的对应,都从自己存的这一份里查。
第三步:用列表里的代码查报价
拿到代码以后,其它接口直接用。例如查三星电子和 SK 海力士的实时报价:
GET /api/mini_prices?market=KRX&symbol=005930,000660
返回的数组里每个产品一项,下面是三星电子这一项:
{
"status": 0,
"interval": null,
"market": "KRX",
"code": "005930",
"message": "SUCCESS",
"data": {
"tick": 1791457711,
"price": 262000,
"open": 269500,
"low": 262000,
"high": 270000,
"change": -6500,
"LP": 263000,
"close": 268500,
"NV": 0,
"volume": 21259056,
"amount": 5638746661250,
"B1": "",
"S1": "",
"S1V": "",
"B1V": "",
"up": -2.42,
"T": "2026-10-09",
"VWAP": "",
"amplitude": "",
"MRTA": "",
"ZDT": "",
"dealTransaction": "",
"Varieties": "stock",
"YS": "",
"position": "",
"name": "삼성전자",
"Market": "KRX",
"contract": "stock",
"code": "005930",
"varieties": "stock"
}
}
price 是最新价,close 是昨收,change、up 是涨跌和涨跌幅(%),volume、amount 是当日累计的成交量和成交额,tick 是行情时间(Unix 秒)。没有值的字段是空字符串,完整的含义见行情字段说明。
完整示例代码
下面的代码用 Node.js 18 及以上版本可以直接运行(自带 fetch),把开头两项换成自己的即可。
// 运行:node symbols.js(Node.js 18 及以上)
const KEY = '你的密钥';
const HTTP_BASE = 'HTTP 接入地址'; // 见开发文档「概览 · 通用规则」,以 /api/ 结尾
async function get(path, params) {
const res = await fetch(`${HTTP_BASE}${path}?${new URLSearchParams(params)}`, { headers: { Authorization: KEY } });
const text = await res.text();
const list = JSON.parse(text);
if (!Array.isArray(list)) throw new Error(`${path} 请求失败:${text}`);
return list.filter((item) => item.status === 0).map((item) => item.data);
}
async function main() {
// 1. 取 KRX 的全部产品
const all = await get('all_symbol', { market: 'KRX' });
if (!all.length) return console.log('没有数据,请核对市场代码和密钥的权限');
// 2. 只留股票,按代码建一张表
const stocks = all.filter((p) => p.Varieties === 'stock');
const byCode = new Map(stocks.map((p) => [p.code, p]));
console.log(`KRX 共 ${all.length} 个产品,其中股票 ${stocks.length} 个`);
console.log('前 3 个:', stocks.slice(0, 3).map((p) => `${p.code} ${p.name}`).join(','));
// 3. 用列表里的代码查报价
const wanted = ['005930', '000660'].filter((code) => byCode.has(code));
const prices = await get('mini_prices', { market: 'KRX', symbol: wanted.join(',') });
for (const q of prices) console.log(q.code, q.name, '最新价', Number(q.price), '涨跌幅', `${Number(q.up)}%`);
}
main().catch((e) => console.error(e.message));
运行后的输出:
KRX 共 4345 个产品,其中股票 2782 个
前 3 个: 000020 동화약품,000040 KR모터스,000050 경방
005930 삼성전자 最新价 262000 涨跌幅 -2.42%
000660 SK하이닉스 最新价 1681000 涨跌幅 -2.44%
常见问题
代码前面的 0 能省吗? 不能。韩国股票代码是 6 位,005930 写成 5930 会查不到(返回空数组)。一律用产品列表里的原值。
名称只有韩文吗? 产品列表里的名称是韩文。公司的简介、板块、行业可以用公司介绍(多语言)接口取,韩国的请求写 country=korea&market=KRX&symbol=005930&language=ko。
市场代码写错了会怎样? 市场代码不存在时返回空数组 [],不报错。
多久更新一次列表合适? 新股上市、退市不是每天都有,每天更新一次足够;更新时用新取到的整份列表替换旧的即可。
其它国家和市场
产品列表接口不分市场,把 market 换成对应的市场代码即可,例如美国 NASDAQ、香港 HK、日本 TSE、印度 NSE。全部取值见国家与市场参数。拿到代码以后,可以接着看怎么用香港行情数据API接口获取实时报价和怎么用日本行情数据API接口获取历史K线。