实时行情 {#realtime}

GET /v1/realtime?symbol=603778.SS
GET /v1/realtime?symbol=600519.SS&symbol=603778.SS
GET /v1/realtime?symbol=600519.SS,603778.SS
GET /v1/realtime?symbol=603778.SS&include_valuation=true
GET /v1/realtime?symbol=603778.SS&include_depth=true
参数必填说明
symbol是沪深 A 股个股代码;可重复传参,或用逗号/分号分隔;单次上限见 GET /v1/me 或 catalog.tiers
include_valuation否1 / true / yes / on 时额外返回估值字段(需 realtime_valuation)
include_depth否1 / true / yes / on 时额外返回买卖五档(需 realtime_depth)

单只时 data 为对象;多只时 data 为数组。部分未命中时 HTTP 200,meta.missing 列出未找到的代码。

字段说明
symbol标准代码,如 603778.SS
timestamp行情时间戳(毫秒)
date交易日期 YYYYMMDD
price / close最新价
open / high / low开高低
volume / turnover成交量、成交额
name证券简称
change_percent涨跌幅(小数,0.1 表示 10%)
change涨跌额
trade_status交易状态,如 TRADE

include_valuation=true 时额外返回:

字段说明
valuationPE/PB/市值等:pe_ttm、pe_dynamic、pb、bps、total_market_cap(亿元)、circulation_market_cap(亿元)、total_shares / circulation_shares(万股)
quote顶层未包含的扩展行情:pre_close、turnover_ratio、amplitude、volume_ratio、time

需 realtime_valuation。

include_depth=true 时额外返回 depth(需 realtime_depth):

字段说明
depth.bids买盘五档,每项 price / volume / orders
depth.asks卖盘五档,每项 price / volume / orders
depth.inner_volume内盘成交量(主动卖)
depth.outer_volume外盘成交量(主动买)

需 realtime 权限(基础版及以上)。当前 Key 单次上限见 GET /v1/me 的 max_realtime_symbols。

ETF 不可走本接口(返回 400),须改用 /v1/etf/realtime 等专用路径。

指数不可走本接口(返回 400),须改用 /v1/index/realtime 等专用路径。

北交所不可走本接口(返回 400)。北交所无实时行情;分时请用 /v1/bj/trend,K 线可用 /v1/kline、/v2/kline 或 /v1/bj/kline。

实时行情 v2(compact) {#realtime-v2}

紧凑格式:字段名只出现一次,data 为字符串数组(一条一行),行内用 | 按 fields 顺序分割。适合全市场 / 大批量拉取。

GET /v2/realtime?symbol=600519.SS,000001.SZ
GET /v2/realtime?all=1
GET /v2/realtime?all=1&market=SS
GET /v2/realtime?all=1&market=US
GET /v2/realtime?symbol=AAPL.US,TSLA.US
GET /v2/realtime?symbol=600519.SS&include_depth=1&include_valuation=1
参数必填说明
symbol与 all 二选一批量代码;A 股如 600519.SS,美股如 AAPL.US;单次上限默认 500(不受套餐 max_realtime_symbols 限制)
all与 symbol 二选一1 拉全市场(无套餐只数 / 每分钟品种配额限制)
market否SS/SZ/BJ/CN(A 股)或 US(美股,不可混用);常与 all=1 联用
include_valuation否默认关;true 需 realtime_valuation,否则 403
include_depth否默认关;true 需 realtime_depth,否则 403

响应示例:

{
  "success": true,
  "format": "compact",
  "fields": ["symbol","name","price","open","high","low","pre_close","change","change_percent","volume","turnover","timestamp","time"],
  "sep": "|",
  "data": [
    "600519.SS|贵州茅台|1294.88|1308|..."
  ],
  "meta": {
    "count": 1,
    "mode": "batch",
    "trade_date": "20260727",
    "updated_at": "2026-07-27 14:02:56"
  }
}

解析:row.split(sep) 后与 fields[i] 对齐。含五档时 fields 追加 bp1,bv1,...,ap5,av5;含估值时追加 pe_ttm,pe_dynamic,pb,...。

压缩: 请求头带 Accept-Encoding: gzip 时,服务端对较大响应做 gzip(Content-Encoding: gzip)。curl 示例:

curl -s --compressed -H "X-API-Key: YOUR_KEY" -H "Accept-Encoding: gzip" \
  "https://klineshare.cn/v2/realtime?all=1&market=SS"

盘中全市场实时行情。需独立权限 realtime_v2(不在套餐默认 scopes 内,需单独开通;与 /v1/realtime 的 realtime 无关)。

沪深京个股 Tick WS {#realtime-ws}

沪深京个股 Tick 推送(与期货推送无关)。需独立权限 realtime_stream(不在套餐默认 scopes 内,需单独开通;与 HTTP /v1/realtime 的 realtime 无关)。

WS /v1/realtime/ws?api_key=YOUR_KEY&symbol=600519.SS
WS /v1/realtime/ws?api_key=YOUR_KEY&symbol=600519.SS,000001.SZ,920000.BJ
参数必填说明
api_key是*浏览器无法自定义 Header 时用 query;非浏览器亦可用 Header X-API-Key
symbol否握手时预订阅;逗号分隔或重复 symbol=;单次及连接内只数见 GET /v1/me 的 max_realtime_stream_symbols

握手后也可发 JSON 控制帧:

{"op":"sub","symbols":["600519.SS","000001.SZ"],"snapshot":true}
{"op":"unsub","symbols":["000001.SZ"]}
{"op":"ping"}

不支持全市场订阅。同一账号并发连接数见 GET /v1/me 的 max_realtime_stream_subscriptions(超出顶掉最早连接)。握手或 JSON sub 单次及同一连接内合计不得超过 max_realtime_stream_symbols。

服务端帧:

type说明
ready连接就绪;可能含当前订阅 symbols;若顶掉旧连接则含 evicted
tick单票行情变化
pong心跳应答
error参数/权限等错误
evicted本连接因超出并发路数被顶替

tick 主要字段:

字段说明
symbol标准码,如 600519.SS / 000001.SZ / 920000.BJ
name名称(若有)
t行情时间
o / h / l / c开高低最新
pc昨收
ul / ll涨停 / 跌停
v / to成交量 / 成交额
ba买卖盘相关(若有)
s状态(若有)

示例(Node / 浏览器):

const ws = new WebSocket(
  'wss://YOUR_HOST/v1/realtime/ws?api_key=YOUR_KEY&symbol=600519.SS'
);
ws.onmessage = (ev) => console.log(JSON.parse(ev.data));

Level2 WS {#level2-ws}

沪深个股 Level2 推送(十档 / 委托队列 / 逐笔成交 / 逐笔委托)。需独立权限 level2(不在套餐默认 scopes 内,需单独开通)。

WS /v1/level2/ws?api_key=YOUR_KEY&symbol=600519.SS&channels=depth
WS /v1/level2/ws?api_key=YOUR_KEY&symbol=600519.SS,000001.SZ&channels=depth,orders,trades,entrust
参数必填说明
api_key是*浏览器无法自定义 Header 时用 query;非浏览器亦可用 Header X-API-Key
symbol否握手时预订阅;逗号分隔;与 channels 相乘占用订阅槽,上限见 GET /v1/me 的 max_level2_slots
channels否通道,逗号分隔:depth(十档,默认)、orders(委托队列)、trades(逐笔成交)、entrust(逐笔委托)。须在 GET /v1/me 的 level2_channels 内;未列出则不可订

握手后也可发 JSON 控制帧:

{"op":"sub","symbols":["600519.SS"],"channels":["depth","orders","trades","entrust"]}
{"op":"unsub","symbols":["600519.SS"],"channels":["trades"]}
{"op":"ping"}

不支持全市场订阅。同一账号并发连接数见 GET /v1/me 的 max_level2_subscriptions(超出顶掉最早连接)。握手或 JSON sub 占用的「标的×通道」合计不得超过 max_level2_slots。当下可订通道以 level2_channels 为准(套餐已开通但当前行情不提供的通道不会出现在该列表中)。

服务端帧:

type说明
ready连接就绪;symbols 为当前订阅标的列表,interest 为标的→通道清单,另含 channels / slots / max_slots;若顶掉旧连接则含 evicted
depth十档盘口
orders买卖委托队列
trades逐笔成交
entrust逐笔委托
pong心跳应答
error参数/权限等错误
evicted本连接因超出并发路数被顶替

depth 主要字段:symbol、name、time、date、pre_close、open/high/low/last、volume/amount、bids/asks(各最多 10 档,price + volume)。

orders:仅 买一 / 卖一 挂单明细(不是十档每档队列)。字段含 bid_price / ask_price、bid_amount / ask_amount / bid_orders / ask_orders、bid_queue / ask_queue(各最多约 50 笔量,单位手)。

trades:trades[],每项含 id、time、price、volume、可选 amount、side(B 买 / S 卖 / N 中性)、可选 buy_order / sell_order(买卖委托号,同号可归组识别一笔吃多笔)、可选 buy_volume / sell_volume(成交后该委托剩余量,有则给出)。时间以推送为准,含收盘集合竞价与盘后固定价格时段。

entrust:entrusts[],每项含 id(委托号,可与 trades 的 buy_order/sell_order 对齐)、time、price、volume(手)、side(B/S)。

ready 示例(握手或 sub/unsub 后都会回):

{
  "type": "ready",
  "symbols": ["600519.SS", "000001.SZ"],
  "interest": {
    "600519.SS": ["depth", "entrust", "trades"],
    "000001.SZ": ["depth"]
  },
  "channels": ["depth", "entrust", "trades"],
  "slots": 4,
  "max_slots": 64,
  "allowed_channels": ["depth", "orders", "trades", "entrust"]
}

示例:

const ws = new WebSocket(
  'wss://YOUR_HOST/v1/level2/ws?api_key=YOUR_KEY&symbol=600519.SS&channels=depth,trades'
);
ws.onmessage = (ev) => console.log(JSON.parse(ev.data));

集合竞价分时(沪深京) {#auction}

单票集合竞价过程曲线(约 09:15–09:25,1 秒一点)。compact 响应,与 /v2/auction 全市场接口 不同权限。

GET /v1/auction?symbol=600519.SS
参数必填说明
symbol是标准代码,如 600519.SS / 000001.SZ / 920000.BJ;亦支持 ETF

响应形态:

{
  "success": true,
  "format": "compact",
  "fields": ["time", "price", "matched_volume", "unmatched_volume"],
  "sep": ",",
  "row_sep": ";",
  "data": "09:15:00,1355.29,0,0;09:15:01,1355.3,400,400;…",
  "meta": { "symbol": "600519.SS", "tick_count": 601, "interval": "1s", "session": "call_auction" }
}

解析:data.split(row_sep) → 每行再 split(sep),与 fields[i] 对齐。

字段说明
timeHH:MM:SS
price虚拟匹配价
matched_volume匹配量
unmatched_volume未匹配量(可负,表示方向)

最近一交易日;不支持按日查询历史。指数暂无此接口。权限 auction(基础版起)。建议请求带 Accept-Encoding: gzip。

集合竞价 v2(compact) {#auction-v2}

集合竞价时段(交易日 09:15–09:30)行情,接口形态对齐 /v2/realtime。

GET /v2/auction?symbol=600519.SS&include_minutes=1
GET /v2/auction?all=1
GET /v2/auction?all=1&market=SS
GET /v2/auction?trade_date=20260724&all=1
参数必填说明
symbol与 all 二选一批量代码;单次上限默认 500
all与 symbol 二选一1 拉全市场
market否SS/SZ/BJ/CN;常与 all=1 联用
trade_date否YYYYMMDD;指定历史交易日;未指定则为当日
include_minutes否默认 关;显式 1/true 才带分钟。minutes 为 09:15–09:26 连续序列的紧凑串(见下),volume 为竞价撮合量(股),09:26 为开盘量

响应 fields 默认含:symbol,name,trade_date,pre_close,match_price,change,change_percent,auction_volume,open_price,open_volume,open_amount,open_avg,minutes_n;include_minutes=1 时追加 minutes,并返回:

  • minutes_fields: ["time","price","volume","amount"]
  • minutes_sep: ,
  • minutes_row_sep: ;

minutes 示例(一行内,无 JSON)::

09:15,1297.41,0,0;09:20,1293.66,3400,0;09:25,1308,136600,0;09:26,1308,136600,178672800

解析:先按 minutes_row_sep 拆根,再按 minutes_sep 与 minutes_fields 对齐。 需独立权限 auction_v2(不在套餐默认 scopes 内)。

北交所行情(历史) {#bj-quote}

北交所无实时行情。分时须走 /v1/bj/trend;K 线可用 /v1/kline、/v2/kline(与沪深同路径),亦可继续用 /v1/bj/kline。

GET /v2/kline?symbol=920000.BJ&period=86400&adjust_type=forward&count=256
GET /v1/bj/kline?symbol=920000.BJ&period=86400&adjust_type=forward&count=256
GET /v1/bj/trend?symbol=920000.BJ&date=20250620
接口scope说明
/v2/kline / /v1/klinekline接受 *.BJ;参数与沪深个股相同
/v1/bj/klinekline兼容路径;参数同 /v1/kline
/v1/bj/trendtrend须传 date=YYYYMMDD

代码格式:920000.BJ 或 bj920000。

主要指数 {#indices}

指数与个股强制拆分:实时、分时、K 线须走 /v1/index/*,权限为独立 scope index_realtime / index_trend / index_kline。个股接口对指数代码返回 400。

GET /v1/index/realtime?symbol=000001.SS
GET /v1/index/trend?symbol=000001.SS
GET /v2/index/kline?symbol=000001.SS,399001.SZ&period=86400&count=120
接口scope说明
/v1/index/realtimeindex_realtime实时行情;可选 include_valuation(需 index_realtime_valuation);不支持 include_depth
/v1/index/trendindex_trend分时;可选 date=YYYYMMDD
/v2/index/klineindex_klineK 线(最多 5);无复权;响应 symbols + 可选 fields
/v1/index/klineindex_kline过时,请用 /v2/index/kline

仅接受 quote_ready=true 的指数(见公开指数目录)。

精选清单(listed=true):

GET /public/v1/indices

全量/搜索(limit 默认 200、最大 2000;加 keyword / listed / quote_ready 任一即浏览目录):

GET /public/v1/indices?quote_ready=1
GET /public/v1/indices?listed=all&limit=2000
GET /public/v1/indices?keyword=军工&limit=20
GET /public/v1/indices?keyword=399967
GET /public/v1/indices?keyword=红利
参数必填默认说明
keyword否-名称、代码或拼音首字母
listed否浏览时 all1 精选;0 非精选;all 全部
limit否200最多 2000
quote_ready否1传 1 进入目录浏览(与无参精选相对)

无参数时返回精选约 48 条。目录中的指数均可用于 /v1/index/*。

搜索响应 data[] 含 symbol、name、code、market、group、quote_ready、listed。

精选列表响应 data[] 含 symbol、name、group、quote_ready;股指期货类另含 futures(IF/IH/IC/IM)。

裸写 000001 会解析为个股平安银行(000001.SZ),查询上证请用 000001.SS。

指数 K 线无复权,请求时 adjust_type 固定为 none。

分时图 {#trend}

GET /v1/trend?symbol=300042.SZ
GET /v1/trend?symbol=600519.SS&date=20250620

需 trend 权限(基础版及以上)。每次仅 1 只 symbol;可选 date=YYYYMMDD 查询历史交易日分时。指数请用 /v1/index/trend。

响应 data 结构:

字段说明
data分时 tick 列表
pre_close昨收价
totaltick 总数

data[] 每项含 timestamp(毫秒)、price、avg_price、volume、turnover、open、high、low、change、change_percent。meta 含 symbol、instrument_type、tick_count;历史分时另含 date。

K 线 {#kline}

推荐 K 线 v2 GET /v2/kline(旧接口 GET /v1/kline 已过时)。

GET /v2/kline?symbol=600519.SS,000001.SZ&period=86400&count=120
GET /v2/kline?symbol=603778.SS&period=86400&adjust_type=forward&count=256
GET /v2/kline?symbol=920000.BJ&period=86400&count=120
GET /v2/kline?symbol=600519.SS&count=120&indicators=ma:5,10,20&indicators=rsi:14&indicators=macd:12,26,9&indicators=boll:20,2
  • symbol:逗号分隔,最多 5 只(也可只传 1 只);沪深个股与北交所 *.BJ 均可
  • 响应:symbols: { "600519.SS": [[...], ...], ... };顶层 fields 为列名(传 fields=0 可省略)
  • 指数用 /v2/index/kline,ETF 用 /v2/etf/kline;北交所亦可继续用 /v1/bj/kline
  • raw(SDK):传 format=raw(或 raw=1)时,symbols 各值为分隔字符串(默认仍为二维数组)。解析:row_sep 拆行 → sep 拆列,与 fields 对齐。建议同时带 Accept-Encoding: gzip。
GET /v2/kline?symbol=600519.SS&period=86400&count=120&format=raw
{
  "success": true,
  "format": "raw",
  "fields": ["date","timestamp","open","high","low","close","volume","amount"],
  "sep": "|",
  "row_sep": ";",
  "symbols": {
    "600519.SS": "20231115|1700000000|100|101|99|100|1|1;..."
  },
  "meta": {}
}

复权方式见响应 meta.adjust_mode:

参数必填默认说明
symbol是-沪深 A 股个股代码;可多码(最多 5)
period否86400周期(秒)
adjust_type否forwardforward / backward / none;受套餐限制
count否256返回条数,受套餐上限裁切
timestamp否-结束时间戳(秒),向前翻页
date否-交易日 YYYYMMDD(日线及以下)。未传 count 时:日线 1 根,分钟线为该日全日;与 timestamp / start / end 互斥
indicators否-技术指标,可重复传参或分号分隔
format否-传 raw 时返回极限体积分隔串(见上);默认二维数组

带 indicators 时,每行附带 indicators 对象;前段可能为 null(见 meta.warmup_bars,不计入 count)。

data[].indicators 结构示例:

{
  "date": "20250620",
  "close": 105.2,
  "indicators": {
    "ma:5,10,20": { "5": 104.2, "10": 103.1, "20": 102.0 },
    "rsi:14": { "14": 55.3 },
    "macd:12,26,9": { "dif": 0.5, "dea": 0.3, "macd": 0.4 },
    "boll:20,2": { "upper": 110.0, "mid": 105.0, "lower": 100.0 }
  }
}
indicators 取值默认参数data.indicators 字段
ma / ma:5,10,205,10,20周期键名如 "5", "10"
ema / ema:12,2612,26周期键名
rsi / rsi:1414周期键名
macd / macd:12,26,912,26,9dif / dea / macd
boll / boll:20,220,2upper / mid / lower

可用指标种类与单次上限见 GET /v1/me 的 kline.allowed_indicators_label、kline.max_indicator_specs。

周期取值(period 秒):

period含义
601 分钟
3005 分钟
90015 分钟
180030 分钟
360060 分钟
86400日线
604800周线
2592000月线

K 线 data[] 每项含 timestamp(毫秒)、date、open、high、low、close、volume、turnover、amount、以及 average_px / avg_px、px_change / px_change_rate、turnover_ratio(日 K 等;分钟线换手常为 0)。

成交额字段说明:turnover 与 amount 同值、同单位(元),互为别名,便于不同客户端习惯;volume 为成交量(股);turnover_ratio 为换手率(百分比数值,如 0.3066 表示约 0.3066%,勿与成交额混淆)。