← 博客

怎么用香港行情数据API接口获取实时报价

做港股的行情页面、自选股列表或者价格提醒,最基础的一件事就是取到一只或者一批股票的实时报价。这篇教学方案用我们的香港行情数据API接口,以腾讯控股(HK00700)和阿里巴巴(HK09988)为例,三步取到最新价、涨跌幅、成交量和五档买卖盘,文末有可以直接运行的完整代码。

怎么用香港行情数据API接口获取实时报价:以腾讯控股 HK00700 为例,一次请求取到最新价、涨跌幅和五档买卖盘
怎么用香港行情数据API接口获取实时报价:以腾讯控股 HK00700 为例,一次请求取到最新价、涨跌幅和五档买卖盘

准备工作

  • 一把密钥。能用哪些市场是开通账号时确定的,申请时说明要用香港的行情。
  • 接入地址。HTTP 的接入地址写在开发文档的通用规则里,下文用「HTTP 接入地址」代替。
  • 市场代码:港股写 market=HK。其它市场的取值见国家与市场参数。

第一步:确认产品代码

港股的产品代码是「HK + 5 位数字」,例如腾讯控股是 HK00700,不是 700,也不是 00700。代码以产品列表接口返回的原值为准:

GET /api/all_symbol?market=HK

返回的是一个数组,每个产品一项(港股有三千五百多项)。其中腾讯控股这一项是:

{
  "status": 0,
  "interval": null,
  "market": "HK",
  "code": "HK00700",
  "message": "SUCCESS",
  "data": {
    "code": "HK00700",
    "contract": "00700",
    "name": "腾讯控股",
    "Market": "HK",
    "Varieties": "stock"
  }
}

code 就是后面要用的产品代码。列表比较大,建议取一次存下来,不用每次都请求。

第二步:请求实时报价

用到的接口是单个 / 多个产品完整行情。请求头带 Authorization: 你的密钥,多个产品用英文逗号隔开:

GET /api/mini_prices?market=HK&symbol=HK00700,HK09988

返回的是一个数组,每个查到的产品一项,行情在 data 里。下面是其中腾讯控股这一项(阿里巴巴那一项写法相同):

{
  "status": 0,
  "interval": null,
  "market": "HK",
  "code": "HK00700",
  "message": "SUCCESS",
  "data": {
    "Market": "HK",
    "varieties": "stock",
    "contract": "00700",
    "code": "HK00700",
    "name": "腾讯控股",
    "open": "415.0",
    "high": "425.8",
    "low": "414.8",
    "price": "424.8",
    "close": "411.4",
    "amount": "8610388000.0",
    "volume": "20422500.0",
    "tick": "1791533286",
    "turnoverRate": "0.2243",
    "amplitude": "2.674",
    "mcc": "3867023353111.2",
    "marketValue": "3867023353111.2",
    "LYR": "0.0",
    "PBR": "2.953",
    "up": "3.257",
    "change": "13.4",
    "position": "23152",
    "YDP": "1",
    "settle": "0",
    "YS": "0",
    "average": "421.613",
    "NV": "2063600.0",
    "internalOrder": "10482281",
    "exteriorOrder": "9981619",
    "raisingLimit": "423.5",
    "limitDown": "346.5",
    "QR": "0",
    "MT": "0",
    "dealTransaction": "1791533286,424.8,2063600,-1,0",
    "B1": "424.8",
    "B2": "424.6",
    "B3": "424.4",
    "B4": "424.2",
    "B5": "424.0",
    "S1": "425.0",
    "S2": "425.2",
    "S3": "425.4",
    "S4": "425.6",
    "S5": "425.8",
    "B1V": "16100",
    "B2V": "80000",
    "B3V": "87900",
    "B4V": "124500",
    "B5V": "45700",
    "S1V": "908200",
    "S2V": "65300",
    "S3V": "10000",
    "S4V": "52000",
    "S5V": "41700"
  }
}

第三步:读出要用的字段

港股返回的行情有五十多个字段,常用的是这些,完整的含义见行情字段说明:

  • price:最新价;open、high、low:今开、今高、今低
  • close:昨收,是昨日收盘价,不是今天的收盘价
  • change、up:涨跌、涨跌幅。up 是百分比数值,3.257 表示 3.257%
  • volume、amount:当日累计的成交量、成交额
  • B1 ~ B5、B1V ~ B5V:买一到买五的价和量;S1 ~ S5、S1V ~ S5V:卖一到卖五的价和量
  • turnoverRate、amplitude、average:换手率、振幅、均价
  • tick:这条行情的时间,Unix 秒

有两点要注意:

  • 数值是文本。 港股的行情字段都是带引号的字符串(如 "424.8"),计算之前先转成数字。不同市场同一个字段可能是数字、也可能是字符串,统一转换一次最稳妥。
  • 查不到的产品不会出现在返回里,也不报错。 例如请求 HK00700,00700,HK99999,返回里只有 HK00700 一项。所以要逐个核对请求的产品有没有返回。

完整示例代码

下面的代码用 Node.js 18 及以上版本可以直接运行(自带 fetch),把开头两项换成自己的即可。

// 运行:node quote.js(Node.js 18 及以上)
const KEY = '你的密钥';
const HTTP_BASE = 'HTTP 接入地址';   // 见开发文档「概览 · 通用规则」,以 /api/ 结尾

// 取同一个市场里一批产品的报价,返回「产品代码 → 行情」
async function quotes(market, symbols) {
  const query = new URLSearchParams({ market, symbol: symbols.join(',') });
  const res = await fetch(`${HTTP_BASE}mini_prices?${query}`, { headers: { Authorization: KEY } });
  const text = await res.text();
  const list = JSON.parse(text);
  if (!Array.isArray(list)) throw new Error(`取不到报价:${text}`);
  const found = {};
  for (const item of list) if (item.status === 0) found[item.code] = item.data;
  return found;
}

const wanted = ['HK00700', 'HK09988'];
quotes('HK', wanted).then((found) => {
  for (const code of wanted) {
    const q = found[code];
    if (!q) { console.log(code, '没有查到,请核对产品代码'); continue; }
    const time = new Date(Number(q.tick) * 1000).toISOString().replace('T', ' ').slice(0, 19);
    console.log(code, q.name, '最新价', Number(q.price), '涨跌', Number(q.change), `(${Number(q.up)}%)`,
      '买一', Number(q.B1), '卖一', Number(q.S1), '时间(UTC)', time);
  }
}).catch((e) => console.error(e.message));

运行后的输出:

HK00700 腾讯控股 最新价 424.8 涨跌 13.4 (3.257%) 买一 424.8 卖一 425 时间(UTC) 2026-10-09 08:08:06
HK09988 阿里巴巴-SW 最新价 107 涨跌 2.7 (2.589%) 买一 107 卖一 107.1 时间(UTC) 2026-10-09 08:08:06

常见问题

一次最多能查多少个产品? 一次请求只能查一个市场,最多 200 个产品;不同市场的分开请求。调用次数怎么计算,见文档里单个 / 多个产品完整行情的「调用次数」一节。

市场代码写 HK 还是 HKEX? 港股写 HK。HKEX 是香港期货的市场代码,用它查股票代码会得到空数组。

收盘以后取到的是什么? 是最后一条行情,tick 是它的时间。示例里的数据取自 2026 年 10 月 9 日收盘后。

需要价格一变就收到怎么办? 不用反复请求这个接口,改用 WebSocket 订阅产品,行情变化时会主动推送,推送的字段和这里相同。

其它国家和市场

报价接口不分市场,把 market 换成对应的市场代码、产品代码换成那个市场产品列表里的代码即可,例如美国 NASDAQ、日本 TSE、韩国 KRX、印度 NSE。全部取值见国家与市场参数。想画 K 线图,可以接着看怎么用日本行情数据API接口获取历史K线;想先拿到一个市场的全部代码,看怎么用韩国行情数据API接口获取股票列表。

下一步