股票行情 API

A 股 / 港股 / 美股实时行情与代码搜索

数据来源:腾讯财经 (qt.gtimg.cn)

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

批量查询实时行情

GET /api/stock/quote

请求参数

  • symbols(必填):股票代码,逗号分隔,最多 30 个。前缀 sh/sz/bj(A 股 6 位)、hk(港股 5 位)、us(美股代码),示例 sh600519,hk00700,usAAPL

返回字段

  • quotes(array):查到的行情,每个代码一项,顺序同上游返回。各市场字段基本相同,差异:enName 只在港股、美股出现;turnoverRate 只在 A 股(sh/sz/bj)出现;成交额、市值的货币随市场不同(见 currency)
  • quotes[].symbol(string):规范化后的代码:小写市场前缀 + 代码,港股、美股代码部分为大写,如 sh600519、hk00700、usAAPL(大小写可能与请求时的写法不同)
  • quotes[].code(string):不带市场前缀的代码:A 股 6 位数字(如 600519),港股 5 位数字(如 00700),美股为去掉交易所后缀的代码(上游 AAPL.OQ → AAPL)
  • quotes[].name(string):中文简称(如 贵州茅台、腾讯控股、苹果)
  • quotes[].enName(string|null):英文名称(如 TENCENT、Apple Inc.)。仅港股、美股有此字段,上游为空时为 null;A 股不返回该字段
  • quotes[].market(string):市场:SH 上交所、SZ 深交所、BJ 北交所、HK 港股、US 美股
  • quotes[].currency(string):价格、成交额、市值的计价货币:A 股(sh/sz/bj)为 CNY(人民币元),其中沪市 B 股(900 开头)为 USD、深市 B 股(200 开头)为 HKD;港股为 HKD(港元);美股取上游给出的币种(通常为 USD 美元)
  • quotes[].price(number|null):最新价,每股价格,单位见 currency(元/港元/美元);上游为空时为 null
  • quotes[].prevClose(number|null):昨日收盘价(每股,单位见 currency);上游为空时为 null
  • quotes[].open(number|null):今日开盘价(每股,单位见 currency);上游为空时为 null
  • quotes[].high(number|null):今日最高价(每股,单位见 currency);上游为空时为 null
  • quotes[].low(number|null):今日最低价(每股,单位见 currency);上游为空时为 null
  • quotes[].change(number|null):涨跌额 = 最新价 − 昨收(每股,单位见 currency)。上游未给出时用 price − prevClose 计算(保留 4 位小数),仍无法计算时为 null
  • quotes[].changePercent(number|null):涨跌幅,百分数(0.64 表示 +0.64%,-0.76 表示 -0.76%)。上游未给出时按 change ÷ prevClose × 100 计算(保留 2 位小数),仍无法计算时为 null
  • quotes[].volume(number|null):成交量,单位统一为"股":A 股上游单位为手,已按 1 手 = 100 股换算;港股、美股上游即为股。上游为空时为 null
  • quotes[].amount(number|null):成交额,单位为 currency 对应货币的"元"(不是万元):A 股为人民币元(优先取上游精确到元的值,否则由上游的万元 × 10000 换算),港股为港元,美股为美元。上游为空时为 null
  • quotes[].turnoverRate(number|null):换手率,百分数(0.23 表示 0.23%)。仅 A 股有此字段,港股、美股不返回;上游为空时为 null
  • quotes[].pe(number|null):市盈率(倍,腾讯行情口径);上游为空时为 null
  • quotes[].marketCap(number|null):总市值,单位为 currency 对应货币的"元"(A 股人民币元、港股港元、美股美元),已由上游的"亿"换算,如 1869193000000 表示 18691.93 亿元;上游为空时为 null
  • quotes[].time(string|null):行情时间,格式 YYYY-MM-DD HH:mm:ss,为交易所当地时间(时区见 timezone,不是 UTC);上游为空时为 null,格式无法识别时原样返回
  • quotes[].timezone(string):time 所用时区(IANA 名称):A 股 Asia/Shanghai(UTC+8),港股 Asia/Hong_Kong(UTC+8),美股 America/New_York(美东时间,冬令时 UTC-5、夏令时 UTC-4)
  • notFound(array):请求了但没有查到行情的代码(字符串数组,规范化后的写法,如 sz000001),代码不存在或上游无数据时出现在这里;都查到时为空数组

按名称 / 代码 / 拼音搜索股票、指数、基金

GET /api/stock/search

请求参数

  • q(必填):关键词,示例 茅台

返回字段

  • [].symbol(string|null):可直接传给 /api/stock/quote 的代码(如 sh600519、hk00700、usAAPL);市场不是 sh/sz/bj/hk/us(如场外基金 jj)或代码格式不受支持时为 null
  • [].market(string):上游市场标识(小写,原样返回),如 sh 上交所、sz 深交所、bj 北交所、hk 港股、us 美股、jj 场外基金
  • [].code(string):代码:A 股、港股、基金原样返回(如 600519、00700、161725);美股转为大写并去掉交易所后缀(上游 aapl.oq → AAPL)
  • [].name(string):中文名称(已解码上游的 \uXXXX 转义)
  • [].pinyin(string|null):名称的拼音首字母缩写(如 gzmt);上游为空时为 null
  • [].type(string):上游原始类型代码,如 GP-A(A 股)、GP(股票)、ZS(指数)、ETF、KJ-LOF(LOF 基金);上游为空时为空字符串
  • [].typeName(string|null):类型中文名:A股、B股、股票、指数、ETF、LOF、基金、QDII、债券、可转债、分级基金、期货之一。先按完整 type 匹配,再按"-"前的部分匹配(如 KJ-LOF → 基金);都匹配不上时返回原始 type,type 为空时为 null