← 博客

怎么用韩国行情数据API接口获取股票列表

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

怎么用韩国行情数据API接口获取股票列表:一次请求取到 KRX 全部产品的代码、名称和类型,以三星电子 005930 为例
怎么用韩国行情数据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线。

下一步