Skip to content

实时行情 REST 接口文档

概述

本接口提供实时行情分钟、日线的 K 线查询服务。适用于需要通过 HTTP 轮询方式获取最新 K 线数据的业务场景。

分钟级 K 线(分钟 Bar)基于逐笔 Tick 数据实时合成,确保行情时效性。 活跃标的盘中数据聚合频率可达 3 秒,访问即自动激活。

接口返回的成交量、成交额与行情软件可能存在细微偏差,但不影响整体交易趋势的判断与分析。 盘后的历史数据采用独立数据源,非盘中tick数据聚合,与行情软件一致。

  • 服务地址https://zhunData.cn
  • 基础路径/api/zhunzi_v1/realtime-quotes
  • 请求方式:所有接口均为 POST
  • Content-Typeapplication/json
  • 鉴权方式:请求头携带 x-api-key,如 x-api-key: your_api_key
  • 限流策略:每 IP 每分钟 30 次请求
  • 品种订阅:单次请求可混合查询股票、指数、基金等不同品种;API Key 按品种类型订阅,可根据实际需求选择订阅股票或基金等品种,按需开通以节省开支

统一响应格式

json
{
  "code": "00000",
  "msg": "成功",
  "data": {}
}
字段类型说明
codestring业务状态码,00000 表示成功
msgstring提示信息
dataobject响应数据

常见错误码

错误码HTTP 状态码说明
00000200成功
A0400422参数校验失败
A0502429请求过于频繁(限流)
B0001500系统执行异常

通用校验规则

标的符号(symbol)格式

符号格式为 {资产类型}.{交易所}.{代码},例如 stock.sz.300898

  • 不能为空
  • 长度不超过 64 个字符
  • 仅允许字母、数字、._-
  • 必须符合 asset.exchange.code 三段式格式

合法资产类型:

资产类型说明
stock股票
index指数
fund基金(含 ETF)
bond债券

合法交易所:

交易所说明
sz深交所
sh上交所
bj北交所

符号示例:

符号说明
stock.sz.000001深市平安银行
stock.sh.603277沪市股票
fund.sh.518880沪市基金
index.sh.000300沪深300指数

接口列表

获取实时 K 线数据

POST /api/zhunzi_v1/realtime-quotes/bar

批量查询多个标的的实时 K 线数据,支持同时获取当前正在形成的 K 线和最近的历史 K 线。

请求参数

字段类型必填默认值说明
symbolsobject[]-标的列表,最多 30 个
symbols[].symbolstring-标的符号,如 stock.sz.300898
symbols[].periodstring-K 线周期:1m / 5m / 15m / 30m / 60m / date
hist_countint10历史 K 线数量,0 表示不返回历史,最大 10

补充说明

  • symbols 列表不能为空,最多 30 个
  • 同一 symbol + period 组合不能重复
  • hist_count 为 0 时仅返回当前 K 线,不返回历史
  • current 为当前正在形成的 K 线(实时更新),history 为已完成的最近 N 根 K 线
  • 非交易时段或缓存未命中时,currentnullhistory 为空数组

请求示例

json
{
    "symbols": [
        {
            "symbol": "stock.sz.000001",
            "period": "1m"
        },
        {
            "symbol": "fund.sh.518880",
            "period": "1m"
        },
        {
            "symbol": "index.sh.000001",
            "period": "1m"
        }
    ],
    "hist_count": 1
}

响应示例

交易时段(有数据):

json
{
    "code": "00000",
    "msg": "成功",
    "data": [
        {
            "symbol": "stock.sz.000001",
            "period": "1m",
            "current": {
                "datetime": "2026-08-17 11:14:39",
                "timestamp": 1786936479,
                "date": "2026-08-17",
                "minute": "11:15",
                "open": 11.11,
                "high": 11.11,
                "low": 11.1,
                "close": 11.1,
                "volume": 607,
                "money": 674100,
                "total_volume": 510942,
                "total_money": 567873000,
                "pre_close": 11.11,
                "code": "000001"
            },
            "history": [
                {
                    "datetime": "2026-08-17 11:14:00",
                    "timestamp": 1786936440,
                    "date": "2026-08-17",
                    "minute": "11:14",
                    "open": 11.1,
                    "high": 11.1,
                    "low": 11.09,
                    "close": 11.11,
                    "volume": 2153,
                    "money": 2390000,
                    "total_volume": 508789,
                    "total_money": 565483000,
                    "pre_close": 11.11,
                    "code": "000001"
                }
            ]
        },
        {
            "symbol": "fund.sh.518880",
            "period": "1m",
            "current": {
                "datetime": "2026-08-17 11:14:37",
                "timestamp": 1786936477,
                "date": "2026-08-17",
                "minute": "11:15",
                "open": 9.051,
                "high": 9.051,
                "low": 9.05,
                "close": 9.05,
                "volume": 3987,
                "money": 3608300,
                "total_volume": 2115440,
                "total_money": 1917252600,
                "pre_close": 8.946,
                "code": "518880"
            },
            "history": [
                {
                    "datetime": "2026-08-17 11:14:00",
                    "timestamp": 1786936440,
                    "date": "2026-08-17",
                    "minute": "11:14",
                    "open": 9.049,
                    "high": 9.051,
                    "low": 9.049,
                    "close": 9.051,
                    "volume": 9054,
                    "money": 8194200,
                    "total_volume": 2106386,
                    "total_money": 1909058400,
                    "pre_close": 8.946,
                    "code": "518880"
                }
            ]
        },
        {
            "symbol": "index.sh.000001",
            "period": "1m",
            "current": {
                "datetime": "2026-08-17 11:14:39",
                "timestamp": 1786936479,
                "date": "2026-08-17",
                "minute": "11:15",
                "open": 3955.028,
                "high": 3955.291,
                "low": 3954.549,
                "close": 3954.777,
                "volume": 1311247,
                "money": 2173036700,
                "total_volume": 293099371,
                "total_money": 670061596300,
                "pre_close": 3927.1764,
                "code": "000001"
            },
            "history": [
                {
                    "datetime": "2026-08-17 11:14:00",
                    "timestamp": 1786936440,
                    "date": "2026-08-17",
                    "minute": "11:14",
                    "open": 3955.337,
                    "high": 3955.337,
                    "low": 3955.266,
                    "close": 3955.028,
                    "volume": 1371449,
                    "money": 2842127000,
                    "total_volume": 291727922,
                    "total_money": 667219469300,
                    "pre_close": 3927.1764,
                    "code": "000001"
                }
            ]
        }
    ]
}

K 线数据字段说明

字段类型说明
datetimestring数据时刻
timestampint时间戳
datestring所属日期
minutestring所属分钟
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价(当前 K 线为最新价)
volumeint当前成交量
amountfloat当前成交额
total_volumeint今日成交量
total_moneyint今日成交额
pre_closefloat昨日收盘价

响应压缩

  • 响应体 ≥ 500 字节时,自动压缩为 gzip 格式,响应头包含 Content-Encoding: gzipVary: Accept-EncodingContent-Length 为压缩后大小
  • 响应体 < 500 字节时,不压缩,原样返回
  • 客户端无需发送 Accept-Encoding 请求头,服务端无条件压缩

Python 请求示例

python
import requests

url = "https://zhunData.cn/api/zhunzi_v1/realtime-quotes/bar"
headers = {"x-api-key": "your_api_key"}
resp = requests.post(url, json={
    "symbols": [{"symbol": "stock.sz.000001", "period": "1m"}],
    "hist_count": 1
}, headers=headers)
# requests 自动解压 gzip 响应
data = resp.json()
print(data)

Java 请求示例

java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://zhunData.cn/api/zhunzi_v1/realtime-quotes/bar"))
    .header("Content-Type", "application/json")
    .header("x-api-key", "your_api_key")
    .POST(HttpRequest.BodyPublishers.ofString("""
        {"symbols":[{"symbol":"stock.sz.000001","period":"1m"}],"hist_count":1}
        """))
    .build();
// HttpClient 自动解压 gzip 响应
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

数据聚合频率说明

K 线数据的聚合频率与标的的访问状态相关:

状态聚合频率说明
常规标的30 秒未被近期访问的标的,按常规频率聚合
活跃标的3 秒被访问后自动提升为活跃状态,聚合频率加快

标的在被请求后即自动进入活跃状态,无需额外操作。如需在开盘后立即获得较高时效性,可在开盘前对目标标的发起一次查询请求进行缓存预热。

注意:本接口已配置每 IP 每分钟 30 次的限流策略,缓存预热仅针对实际需要监控的少量标的,大量无意义请求将被限流拦截。


接口速查表

接口路径说明
实时 K 线/api/zhunzi_v1/realtime-quotes/bar批量查询实时 K 线及历史 K 线

配置项

配置项默认值说明
HIST_QUOTES_ENDPOINT_RATE_LIMIT30每 IP 每分钟请求限制
RATE_LIMIT_ENABLEDtrue是否启用限流

与 WebSocket 推送的关系

本 REST 接口的数据来源于 WebSocket 推送服务写入的 Redis 缓存。两种方式对比:

特性REST 接口(本接口)WebSocket 推送
协议HTTP POSTWebSocket
数据时效取决于轮询频率实时推送
适用场景低频查询、一次性获取高频监控、实时响应
数据范围K 线数据(OHLCV)逐笔 Tick + K 线
连接方式无状态,按需请求长连接,需订阅

如需实时性更高的数据,建议使用 WebSocket 推送接口