API 文档A 股实时行情 · WebSocket 实时推送 + REST 快照/历史查询。一次接入,覆盖快照、五档盘口、1m/5m K 线与日 K(前复权)。

datapush 提供统一的实时行情数据 API:REST 用于历史与快照查询,WebSocket 用于实时流式推送。REST 数据接口按实际用量计费,注册即刻体验并签发 API Key。

所有示例中的域名与 Key 均为占位符,请替换为你自己的 sk-…

快速开始

1. 获取 API Key

在 注册 或 登录 后,到控制台即可查看你的 API Key(sk- 前缀)。

2. 发起第一次请求

curl "https://api.datapush.vip/api/v1/stocks/600108/kline?size=5" \
  -H "Authorization: Bearer sk-xxx"

3. 建立实时连接

const ws = new WebSocket('wss://api.datapush.vip/ws', ['sk-xxx']);
ws.onopen = () => ws.send(JSON.stringify({ action: 'sub', codes: ['sz.000725'], types: ['quote'] }));
ws.onmessage = (e) => console.log(JSON.parse(e.data));

Python SDK(datapush-sdk)

官方 Python SDK:零第三方依赖(仅标准库,Python 3.8+),同时提供 命令行 与 Python import 两种用法,前缀都是 datapush;内置本地按需缓存(只存不复权原始价 + 因子表,复权本地计算 ⇒ 除权后无需重下历史)。

pip install datapush-sdk -i https://pypi.org/simple  # pip安装datapush-sdk
datapush config set-key sk-xxx      # 或设置环境变量 DATAPUSH_API_KEY
datapush kline 000001               # 一行拿数据(自动缓存 + 自动前复权 + 增量刷新)
import datapush
c = datapush.Client()               # Key 自动读;缓存默认开启(~/.datapush/cache/datapush.db)
c.kline("000001", days=250)         # 日K(前复权)
c.kline("000001", days=250, kind="hfq")     # 后复权(本地按因子表算)
c.minute("000001", days=1)          # 1 分钟 K 线
c.codes()                           # 全市场代码(实时,不缓存)
c.stock("000001")                   # 基础信息(实时,不缓存)
c.factors("000001", size=30)        # 量化因子数组(高级用户;直连不缓存)
c.factor_catalog()                  # 量化因子目录(高级用户;直连不缓存)
c.trading_today()                   # 今日是否交易日(实时,不缓存)
c.stats()                           # 服务端统计(公开接口)
c.quote("000001")                   # 实时快照(WS 首帧)
for e in c.watch(["000001"], types=["quote", "k1"], seconds=30):
    print(e.type)
CLI说明
datapush kline|minute|fiveminute <code>K 线:--days/--size/--offset/--start/--end/--since/--kind qfq|hfq|raw/--csv/--json
datapush xdxr <code>复权因子表(segments + ltgb + latest_event_date)
datapush stocks|codes|stock列表 / 全市场代码 / 单只基础信息(实时,不缓存)
datapush factors <code>量化因子数组(高级用户):--size 30/--offset/--fields close,ma5/--daily-kline 0|1(直连不缓存)
datapush factor-catalog量化因子目录(高级用户;直连不缓存)
datapush trading-today | boards今日是否交易日 / 指数板块清单(实时,不缓存)
datapush quote|watch实时快照 / 持续订阅(WebSocket)
datapush update <code>手动增量更新缓存(平时查询自动做)
datapush health | stats服务健康检查 / 服务端统计(公开接口)
datapush cache info|path|clear|prune缓存:概况 / 路径 / 清理 / 按天保留
datapush doctor | config一键排障 / 本地配置(Key、缓存目录)
datapush get <path>通用逃生舱:直接请求任意后端路径(调试新接口)
通用选项:--json(原始 JSON)、--csv FILE、--api-key、 --timeout、--cache-dir、--no-cache、--offline (服务地址固定为 https://api.datapush.vip,无需配置);退出码 0 成功 / 1 业务或网络错 / 2 参数错。
提示:若 datapush 命令提示「找不到命令」(pip 的脚本目录不在 PATH),可直接用 python -m datapush <命令>(完全等价),或执行 datapush doctor 查看针对本机的修复命令。
需要 adj=none 的原始价与本地复权公式见复权因子表; 注意 PyPI 上另有一个无关的 datapush 包,若同装冲突可改用 import datapush_sdk as datapush。
哪些不缓存:股票列表 / 基础信息 / 交易日(trading-today)/ 板块(boards)/ 量化因子(factors 数组与 factor-catalog 目录)都是直连; 因子的当日行盘中随行情实时更新,需要实时因子请用 datapush watch <code> --types factor(WebSocket 推送全字段)。

认证

所有数据接口通过 API Key 鉴权,支持两种传递方式:

方式示例
请求头Authorization: Bearer sk-…(推荐)或 X-API-Key: sk-…
WebSocket 子协议new WebSocket(url, [apiKey])

REST 通用约定

Base URL:https://api.datapush.vip。请求与响应均为 application/json; charset=utf-8。

统一响应结构

{
  "code": 0,       // 0=成功,非 0=错误
  "message": "ok", // 状态描述
  "data": { ... }  // 业务数据(成功时返回)
}

数据接口(/api/v1/stocks*)需携带 API Key,无效返回 401,余额不足返回 402;其余错误见错误码。

交易日查询

GET/api/v1/trading/today需 API Key

查询今天是否为 A 股交易日。

curl "https://api.datapush.vip/api/v1/trading/today" \
  -H "Authorization: Bearer sk-xxx"

// 返回
{ "code": 0, "message": "ok", "data": {
  "date": "2026-09-07", "trading": true } }

指数/板块列表

GET/api/v1/market/boards需 API Key

返回可用的板块/指数列表,如上证指数、深证成指、沪深300 等。

curl "https://api.datapush.vip/api/v1/market/boards" \
  -H "Authorization: Bearer sk-xxx"

// 返回
{ "code": 0, "message": "ok", "data": [
  { "code": "sh.000300", "name": "沪深300" },
  { "code": "sh.999999", "name": "上证指数" },
  { "code": "sz.399001", "name": "深证成指" },
  { "code": "sz.399005", "name": "中小板指" },
  { "code": "sz.399006", "name": "创业板指" }
] }

股票列表

GET/api/v1/stocks需 API Key

分页查询股票基础信息(轻量字段)。

参数类型默认说明
pageint1页码
page_sizeint20每页条数(最大 1000)
curl "https://api.datapush.vip/api/v1/stocks?page=1&page_size=20" \
  -H "Authorization: Bearer sk-xxx"

// 返回(data 为数组,元素为轻量字段)
{ "code": 0, "message": "ok", "data": [
  { "code": "000001", "name": "平安银行", "market": "sz", "price": 11.52,
    "roe": 8.5, "zgb": 194.1, "ltgb": 194.1, "ltsz": 2233.9, "zsz": 2233.9,
    "ipo_date": "1991-04-03" }
] }

单只股票基础信息

GET/api/v1/stocks/{code}需 API Key

查询单只股票的基础信息(含总股本、流通股本、市值、ROE 等字段,复权数据不返回)。

参数位置说明
codepath股票代码,可带交易所前缀(sz.000001)或纯数字(600108)
curl "https://api.datapush.vip/api/v1/stocks/sz.000001" \
  -H "Authorization: Bearer sk-xxx"

// 返回(data 为完整基础信息,复权数据不返回)
{ "code": 0, "message": "ok", "data": {
  "code": "000001", "name": "平安银行", "market": "sz", "price": 11.52,  "industry": "白酒",
  "region": "贵州板块", "roe": 8.5, "zgb": 194.1, "ltgb": 194.1, "ltsz": 2233.9, "zsz": 2233.9,
  "ipo_date": "1991-04-03" } }

1 分钟 K 线

GET/api/v1/stocks/{code}/minute需 API Key

返回 1 分钟前复权(默认) K 线,最新时间在前,所有参数选填(offset,size 或者 since 模式二选一)。通常 A 股每个交易日 240 根 K 线。

参数类型默认说明
offsetint0跳过交易日数
sizeint10返回交易日数(最大 50)
sincestring—取数流程:首次用 offset+size 建基线(记下响应里的 latest_time),之后每次只用 since 做增量。
增量取数:只返回时间 ≥ since 的数据(YYYY-MM-DD HH:MM,闭区间含该根)。用响应里的 latest_time 推进下一次请求;最多只能获取最近 30天 的数据(建议设置定时任务定期自动同步),被截断时返回的是离游标最近的那批;若 last_time > since 说明中间有缺口,请用 offset/size 补齐
adjstringqfqqfq 前复权(默认)/ none 不复权原始价(增量取数与本地缓存建议用 none,复权在本地按因子表计算)
curl "https://api.datapush.vip/api/v1/stocks/000001/minute?offset=0&size=10" \
  -H "Authorization: Bearer sk-xxx"

// 返回(data 为对象;count 为根数,kline 为 8 字段数组、最新在前,last_time/latest_time 为本批最老/最新一根)
{ "code": 0, "message": "ok", "data": {
  "code": "sz.000001", "type": "minute", "count": 240,
  "kline": [[开, 收, 高, 低, 量, 额, 换手率, "YYYY-MM-DD HH:MM"], ...],
  "last_time": "YYYY-MM-DD HH:MM", "latest_time": "YYYY-MM-DD HH:MM"
} }

5 分钟 K 线

GET/api/v1/stocks/{code}/fiveminute需 API Key

返回 5 分钟前复权(默认) K 线,最新时间在前,所有参数选填(offset,size 或者 since 模式二选一)。通常 A 股每个交易日 48 根 K 线。

参数类型默认说明
offsetint0跳过交易日数
sizeint30返回交易日数(最大 200)
sincestring—增量取数(首次用 offset+size 建基线,之后只用本参数增量):只返回时间 ≥ since 的数据(闭区间含该根);语义与推进规则见 1 分钟 K 线的 since 说明
adjstringqfqqfq 前复权(默认)/ none 不复权原始价(增量与本地缓存建议用 none,见复权因子表)
curl "https://api.datapush.vip/api/v1/stocks/000001/fiveminute?offset=0&size=30" \
  -H "Authorization: Bearer sk-xxx"

// 返回(data 为对象;count 为根数,kline 为 8 字段数组、最新在前,last_time/latest_time 为本批最老/最新一根)
{ "code": 0, "message": "ok", "data": {
  "code": "sz.000001", "type": "fiveminute", "count": 48,
  "kline": [[开, 收, 高, 低, 量, 额, 换手率, "YYYY-MM-DD HH:MM"], ...],
  "last_time": "YYYY-MM-DD HH:MM", "latest_time": "YYYY-MM-DD HH:MM"
} }

日K 线

GET/api/v1/stocks/{code}/kline需 API Key

查询日 K 历史前复权(默认),所有参数选填(offset,size 或者 since 模式二选一)。返回 kline 为按时间倒序的 8 字段数组,见K 线字段。

参数类型默认说明
offsetint0跳过交易日数(分页偏移)
sizeint100返回交易日数(最大 1000)
sincestring—增量取数(首次用 offset+size 建基线,之后只用本参数增量):只返回时间 ≥ since 的日K(YYYY-MM-DD HH:MM);语义与推进规则见 1 分钟 K 线的 since 说明
adjstringqfqqfq 前复权(默认)/ none 不复权原始价(增量与本地缓存建议用 none,见复权因子表)
curl "https://api.datapush.vip/api/v1/stocks/000001/kline?offset=0&size=100" \
  -H "Authorization: Bearer sk-xxx"

// 返回(data 为对象;count 为根数,kline 为 8 字段数组、最新在前,last_time/latest_time 为本批最老/最新一根)
{ "code": 0, "message": "ok", "data": {
  "code": "sz.000001", "type": "day", "count": 100,
  "kline": [[复权开, 复权收, 复权高, 复权低, 量, 复权额, 换手率, "YYYY-MM-DD 15:00"], ...],
  "last_time": "YYYY-MM-DD 15:00", "latest_time": "YYYY-MM-DD 15:00"
} }

复权因子表(本地复权计算)

GET/api/v1/stocks/{code}/xdxr需 API Key

返回按日期区间压缩的复权因子表(segments),用于本地计算前复权与后复权。 典型用法:用 adj=none 拉不复权原始价(原始价历史永不改写,适合本地缓存与增量追加), 再用本表一次乘法派生复权序列 —— 除权后无需重下历史。

curl "https://api.datapush.vip/api/v1/stocks/000001/xdxr" -H "Authorization: Bearer sk-xxx"

{ "code": 0, "message": "ok", "data": {
  "code": "sz.000001",
  "latest_event_date": "2026-09-25",   // 与上次不同 ⇒ 重拉本表并本地重算
  "count": 4,                           // = segments 长度(可自检表是否完整)
  "ltgb": 1234000000,                   // 流通股本(股)—— 算换手率的分母
  "segments": [                         // 按 from 降序
    { "from": "2026-09-25", "qfq": 1.0,    "hfq": 1.5,  "share_ratio": 1.0   },
    { "from": "2024-06-14", "qfq": 1.0,    "hfq": 1.5,  "share_ratio": 1.2   },
    { "from": "2010-01-01", "qfq": 0.8333, "hfq": 1.25, "share_ratio": 1.44  },
    { "from": "",           "qfq": 0.6667, "hfq": 1.0,  "share_ratio": 1.728 }
  ]
} }
字段 / 列说明
latest_event_date最新除权除息日;变更探测:与本地记录不同就重拉本表(无事件为空串)
count段数 = 事件数 + 1(客户端可自检表是否被截断)
ltgb流通股本(股,原始值)。注意 基础信息接口的 ltgb 是「亿股、四舍五入」,不能用于精确复算换手率
from区间起点(事件日,YYYY-MM-DD);空串 = 兜底段(覆盖最早事件之前)
qfq前复权价格因子 = Π(事件日 > from) f ⇒ 最新段恒为 1.0(当日即前复权基准)
hfq后复权价格因子 = Π(事件日 ≤ from) 1/f ⇒ 兜底段恒为 1.0(后复权基准 = 该标的最早)
share_ratio换手率股本比例 = Π(事件日 > from)(1 + 送转 + 配股)(与 qfq 同方向)

怎么算:本地前复权 / 后复权

① 用 adj=none 取原始价 bar:“[open, close, high, low, cjl, cje, hsl, "YYYY-MM-DD HH:MM"]” (价格与成交额都是原始值)。② 取本接口的 segments。③ 每根 bar 选一段: 按 from 降序取第一个 from ≤ bar.date 的段;都不满足(或该段 from 为空)⇒ 用 兜底段。 ④ 一次乘法:

前复权价 = raw价 × seg.qfq        // 基准 = 当日;除权后全部历史被改写
后复权价 = raw价 × seg.hfq        // 基准 = 该标的最早;除权后历史不变、只影响事件日之后
换手率   = cjl / ltgb × seg.share_ratio × 100      // 与价格口径无关
成交额   = raw.cje                          // **成交量与成交额都不复权**(金额是历史事实,不随因子缩放)

自检(建议写进 SDK 断言):seg.hfq × P == seg.qfq,其中 P = 兜底段.qfq (兜底段覆盖全部事件 ⇒ 它的 qfq 就是全体事件因子连乘)。逐段成立即说明表自洽、未被截断。

def pick_segment(segments, date):        # segments 按 from 降序
    for s in segments:
        if s["from"] and s["from"] <= date:
            return s
    return segments[-1]                  # from 为空的兜底段

def adjust_bar(bar, segments, ltgb):
    seg = pick_segment(segments, bar[7][:10])
    raw = bar[:7]
    qfq = [raw[0]*seg["qfq"], raw[1]*seg["qfq"], raw[2]*seg["qfq"], raw[3]*seg["qfq"],
           raw[4], raw[5]]                       # 量、额不缩放
    hfq = [raw[0]*seg["hfq"], raw[1]*seg["hfq"], raw[2]*seg["hfq"], raw[3]*seg["hfq"],
           raw[4], raw[5]*seg["hfq"]]
    hsl = raw[4] / ltgb * seg["share_ratio"] * 100
    return qfq, hfq, hsl

增量更新流程(推荐)

1) 本地只存 adj=none 原始价(永不改写)⇒ 用 since 增量拉取、直接追加
2) 记录 xdxr.latest_event_date;与本地不同 ⇒ 重拉因子表
3) 除权后本地重算:
     后复权:只有「事件日之后」的 bar 受影响(历史不变,只需算新增区间)
     前复权:全部历史受影响(本地重乘一遍,或直接重拉服务端 adj=qfq)
4) 全程无需重下历史数据
注意事项:① 按段因子一次乘完(不要逐事件累乘、不要反复乘除),结果与服务端位级一致; ② 后复权跨标的不可比、数值随事件累积放大(适合回测/缓存,不适合直接展示);想以自定义起点为基准, 把所用因子统一除以「起点那一段」的因子即可(因子' = 段因子 ÷ 起点段因子); ③ 除权日当天 qfq = 1(当日即基准)⇒ WS 实时推送的当日数值与两种口径的当日值天然相同; ④ 服务端不提供 adj=hfq 视图(后复权当日因子 ≠ 1,会破坏 REST/增量/WS 的当日一致性),后复权请按上表本地派生; ⑤ adj=none 下除权日前后价格会跳变(原始成交价本就如此,非数据错误)—— 需要连续价格序列时用默认 adj=qfq 或本地复权。

量化因子目录

GET/api/v1/factors需 API Key(高级用户)

返回全部因子字段的元数据(字段名 / 中文名 / 单位 / 行内下标)。字段以响应内容为准。

curl "https://api.datapush.vip/api/v1/factors" -H "Authorization: Bearer sk-xxx"

// 返回:count = 69 = date + 日K 7 + 因子 61(存量 15 + 实时计算 46);实际列数以响应为准
{ "code": 0, "message": "ok", "data": {
  "count": 69,
  "fields_order": ["date","open","close","high","low","cjl","cje","hsl","vol_pct_pre_high", ... ,"coef_adj_line"],
  "factors": [
    { "key": "open", "name": "开盘价", "unit": "元", "order": 0 },
    { "key": "ener_raw", "name": "原始量能累计", "unit": "%", "order": 9 },
    { "key": "pot_x_turn", "name": "势能原始值", "unit": "%", "order": 26 }
  ]
} }
请求参数说明
无仅需请求头里的 API Key
字段说明
count字段总数(含 date)
fields_order列顺序(表头):数组接口 rows 每行的下标与它一一对应
factors因子元数据:key 字段名(同时是 fields 参数可传的字段名字)/ name 中文名 / unit 单位 / order 行内下标
请以响应内容为准:用 fields_order 与 factors[*].key 解析数据,不要硬编码列数与列位置。请求了不存在的字段会返回 400(field not available: 字段名)。
该接口仅面向高级用户;可能会临时开放给普通用户(到期自动关闭,不另行通知;普通用户在未开放期访问返回 403)。

量化因子数组(默认包含日K数据)

GET/api/v1/stocks/{code}/factors需 API Key(高级用户)

一次拿全「日K + 因子」:日K列(前复权,与日K线接口同序:open, close, high, low, cjl, cje, hsl)+ 因子列。只要部分因子时用 fields 指定因子列(日K列默认仍会带上;daily_kline=0 可关掉)。

参数类型默认说明
offsetint0从最新往前跳过的交易日数量
sizeint100返回交易日数,上限 750(超出按 750 截断)
fieldsstring因子列白名单(逗号分隔,保持目录顺序;date 恒在首位)。日K 7 列不受它控制;只能写接口支持的字段(写了不存在的字段 → 400 field not available: 字段名)
daily_klineint11 = 拼日K列(7 列恒在因子列之前);0 = 不拼日K列(在 fields 里显式点名的日K列仍返回)
curl "https://api.datapush.vip/api/v1/stocks/600108/factors?size=30" \
  -H "Authorization: Bearer sk-xxx"

// 返回:rows 的元素顺序见 fields_order;缺值一律 null
{ "code": 0, "message": "ok", "data": {
  "code": "sz.000001", "name":"平安银行", "type": "factor",
  "count": 30, "latest_time": "2026-09-15 15:00:00",
  "fields_order": ["date","open","close","high","low","cjl","cje","hsl","vol_pct_pre_high", ...],
  "rows": [ ["2026-09-15", 12.34, 12.55, 12.60, 12.20, 1234567, 15234567.0, 1.23, 0.41, ...], ... ]
} }
字段说明
count本次返回交易日数
latest_time本页最新交易日的数据时点(YYYY-MM-DD HH:MM:SS)
fields_order本次实际返回的列顺序(受 fields / daily_kline 影响;date 恒在首位,daily_kline≠0 时其后恒为日K 7 列)
rows数据行;缺值一律 null
该接口仅面向高级用户;由于因子数据计算将耗费大量CPU资源,为保障其它用户使用,盘中查询时我们可能会根据CPU资源的使用情况动态延缓响应的时间。建议用户仅在需要使用的时刻(如中午休盘 / 根据自己需要的时间)通过REST接口查询使用,如果需要当日实时数据可通过WebSocket接口盘中订阅实时量化因子数据。

WebSocket 连接与鉴权

WSwss://api.datapush.vip/ws需 API Key

实时行情通过 WebSocket 推送。API Key 三种传递方式(按优先级):

方式示例
浏览器子协议new WebSocket(url, [apiKey])
请求头(非浏览器)Authorization: Bearer sk-…
查询参数(旧客户端)?api_key=sk-…(可用,但不推荐,泄露风险高)
无效 Key 或积分余额 ≤ 0 时,连接会被拒绝。单连接最多订阅 50 个 code。普通用户最多允许同时10个连接(如需更多需要申请成为高级用户),超过限制将自动踢最旧的连接,请合理安排连接数。

订阅与消息格式

连接成功后,客户端发送订阅指令;服务端按事件实时推送。

客户端 → 服务端

{ "action": "sub", "codes": ["sz.000001", "sh.600108"], "types": ["quote", "depth", "k1", "k5", "factor"] }
字段说明
actionsub 订阅 / unsub 退订 / ping 心跳
codes标的编码数组,可同时订阅多个;支持带前缀(sh./sz./bj./hk.)或纯 6 位数字
types订阅类型数组,可单选也可多选:quote 快照 / depth 五档 / k1 分钟K线 / k5 5分K线 / factor 量化因子(全字段);省略时默认订阅 ["quote"]

服务端 → 客户端

{ "type": "quote", "code": "sz.000001", "data": {
  "c": "sz.000001", "n": "平安银行", "t": 1750042500,
  "p": 11.52, "z": 0.61, "o": 11.46, "h": 11.58, "l": 11.41,
  "pc": 11.45, "v": 1265432, "a": 1458200000, "tr": 0.75, "vr": 1.12 } }

{ "type": "depth", "code": "sz.000001", "data": {
  "b": [[11.51,12800],[11.50,5600],[11.49,2300],[11.48,900],[11.47,1500]],
  "a": [[11.52,3200],[11.53,4100],[11.54,1800],[11.55,2600],[11.56,700]],
  "bv": 456000, "sv": 512000 } }

{ "type": "kline", "code": "sz.000001", "period": "1m", "state": "close",
  "data": [11.50, 11.52, 11.54, 11.49, 12800, 1474500, 0.75, "2026-09-05 10:31"] }

{ "type": "factor", "code": "sz.000001", "latest_time": "2026-09-16 14:23:05",
  "data": ["2026-09-16", 12.34, 12.55, 12.60, 12.20, 1234567, 15234567.0, 1.23, 0.41, ...] }
typedata 内容
quote快照 {c,n,t,p,z,o,h,l,pc,v,a,tr,vr}
depth五档 {b:[[价,量]x5], a:[[价,量]x5], bv, sv}
klineperiod=1m|5m,state=open|close,data=8 字段数组(与 K 线字段的 REST 数组同列同序)
factorlatest_time=数据时点(YYYY-MM-DD HH:MM:SS);data=最新因子列(date + 日K + 量化因子,列顺序同「因子目录」的 fields_order)
ack订阅成功确认,msg=ok,data 含 {"subscribed":N}(N=成功订阅的 code 数)
error / pong文本经 msg 字段返回

心跳:服务端每 20s 发送 Ping,客户端需自动回 Pong;60s 无 Pong 判定连接断开。

k1/k5 订阅只推送增量分钟K线;如需初始/回补历史行情请使用 REST 1m/5m 接口获取。仅获取当日 1/5 分钟K线设置offect=0,size=1即可

非交易时段(盘前 09:15 前 / 午休 / 15:00 收盘后 / 周末)订阅成功但不会推送实时数据,属正常;保持连接即可,下一交易日约 09:15 起自动恢复推送。

指数 / 板块 code 也可订阅(如 sh.999999 上证、sz.399001 深证、sh.000300 沪深300 等,清单见板块 / 指数清单);指数仅有 quote,无五档 depth。

factor类型的数据字段结构为默认排序方式(含日K),可通过因子目录查询。另外该数据仅高级用户订阅可用,普通用户可订阅不会报错,但是不会推送。开放日期内除外。

标的编码

市场格式示例
A 股 / 指数sh. / sz. / bj. + 6 位sh.600108、sz.399001

REST 接口与 WebSocket 订阅的 code 都接受不带前缀的纯 6 位数字(如 600108)。注意:000001 默认解析为深市个股 sz.000001(平安银行),上证指数为 sh.999999。

快照字段(quote)

quote 消息的 data 为紧凑快照,各字段含义:

字段含义
c标的编码(如 sz.000001)
n名称
t时间戳(Unix 秒)
p最新价
z涨跌幅(%)
o开盘价
h最高价
l最低价
pc昨收价
v成交量
a成交额
tr换手率
vr量比

五档盘口

紧凑格式:b 买一~买五、a 卖一~卖五,每档为 [价格, 量];bv/sv 为主动买/卖总量。

{ "b": [[7.82,5200],[7.81,1800],[7.80,940],[7.79,300],[7.78,150]],
  "a": [[7.83,4300],[7.84,1200],[7.85,1900],[7.86,800],[7.87,400]],
  "bv": 953417, "sv": 1252467 }

K 线字段

REST 的三个 K 线接口(日K / 1 分钟 / 5 分钟,前复权)统一返回 data.kline(按时间倒序的 8 字段数组,最新在前)和 data.count(本次返回的 K 线根数,即 kline 数组长度):

[复权开盘, 复权收盘, 复权最高, 复权最低, 成交量, 成交额, 换手率, "YYYY-MM-DD HH:MM"]

注意:8 个字段里只有价格是复权值;成交量与成交额均为原始值 —— 成交额是"当天真实成交金额"这一历史事实,不随复权因子缩放(多年多次除权后因子可能降到 0.3,若缩放会与其它行情软件对不上)。

日 K 的时间戳为当日 "YYYY-MM-DD 15:00";1 分钟 / 5 分钟的时间戳为分钟 "YYYY-MM-DD HH:MM"。

推荐取数流程:初次用 offset/size,之后用 since

  1. 首次(或本地缓存为空):用 offset=0&size=N 拉一批建基线,记下响应里的 latest_time;
  2. 之后:每次只带 since=<上次的 latest_time> 做增量(闭区间含该根;最多只能获取最近 30天 的数据(建议设置定时任务定期自动同步),被截断时用 latest_time 连续续拉即可追平);
  3. 补齐缺口:若响应里 last_time > since,说明中间缺了一段(跨度过大触发服务端护栏)⇒ 改用 offset/size 把缺口补上。

size 上限以当前部署为准(线上:1m 50 / 5m 200 / 日K 1000;默认配置:1m 20 / 5m 100 / 日K 500),超出会被服务端夹到上限。

换手率口径:换手率 = 成交量 / 当日流通股本 × 100 —— 历史换手率已前复权处理

1m/5m K 线(WebSocket kline)的 data 为同一套 8 字段(REST 与 WS 同列同序,WS 推的是其中一根):

[open, close, high, low, cjl, cje, hsl, "YYYY-MM-DD HH:MM"]

当日即前复权基准,故两处数值一致;hsl 同样按当日流通股本计算(指数 / 板块为 0)。

增量取数(since)建议配合 adj=none(不复权原始价):原始价历史永不改写,本地只需追加; 复权在本地用 复权因子表一次乘法完成,除权后无需重下历史。

错误码

codeHTTP说明
0200成功
400400参数错误
401401API Key 无效
402402积分不足
403403无权限
404404资源不存在
429429请求过于频繁
500500服务器内部错误

计量与限流

连接不设限 · 不用不扣积分 —— 真正收到行情数据才计入用量,按实际用量计费,用多少付多少积分。

  • 不限连接:连接数不设上限,随便开、随便连,不按连接数扣除积分。
  • 不用不扣:行情静止、休市或未订阅时不产生任何消耗,连接即使空挂也不扣积分。
  • 价格低:注册立即送积分,也可通过捐助服务器服务费用获取积分,1元=10积分,盯 1 只股票一整天通常1个积分都不需要,轻量查询几乎免费。
  • 分钟 K 线(1m/5m):由于数据量过于庞大,为保障其它用户使用效率,每用户 QPS 限流当前为 10 次/秒。为满足用户需求,自 2026 年 10 月 1 日起将提升至 30 次/秒,超限返回 429。
  • 积分余额不足时:REST 返回 402、WS 断开连接。
  • 费用详情:注册账号后可在 控制台 查看费用详细说明。高级接口限时开放中,现在注册可申请永久权限,无门槛要求。