Appearance
实时行情 REST 接口文档
概述
本接口提供实时行情分钟、日线的 K 线查询服务。适用于需要通过 HTTP 轮询方式获取最新 K 线数据的业务场景。
分钟级 K 线(分钟 Bar)基于逐笔 Tick 数据实时合成,确保行情时效性。 活跃标的盘中数据聚合频率可达 3 秒,访问即自动激活。
接口返回的成交量、成交额与行情软件可能存在细微偏差,但不影响整体交易趋势的判断与分析。 盘后的历史数据采用独立数据源,非盘中tick数据聚合,与行情软件一致。
- 服务地址:
https://zhunData.cn - 基础路径:
/api/zhunzi_v1/realtime-quotes - 请求方式:所有接口均为
POST - Content-Type:
application/json - 鉴权方式:请求头携带
x-api-key,如x-api-key: your_api_key - 限流策略:每 IP 每分钟 30 次请求
- 品种订阅:单次请求可混合查询股票、指数、基金等不同品种;API Key 按品种类型订阅,可根据实际需求选择订阅股票或基金等品种,按需开通以节省开支
统一响应格式
json
{
"code": "00000",
"msg": "成功",
"data": {}
}| 字段 | 类型 | 说明 |
|---|---|---|
code | string | 业务状态码,00000 表示成功 |
msg | string | 提示信息 |
data | object | 响应数据 |
常见错误码
| 错误码 | HTTP 状态码 | 说明 |
|---|---|---|
00000 | 200 | 成功 |
A0400 | 422 | 参数校验失败 |
A0502 | 429 | 请求过于频繁(限流) |
B0001 | 500 | 系统执行异常 |
通用校验规则
标的符号(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 线。
请求参数
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
symbols | object[] | 是 | - | 标的列表,最多 30 个 |
symbols[].symbol | string | 是 | - | 标的符号,如 stock.sz.300898 |
symbols[].period | string | 是 | - | K 线周期:1m / 5m / 15m / 30m / 60m / date |
hist_count | int | 否 | 10 | 历史 K 线数量,0 表示不返回历史,最大 10 |
补充说明
symbols列表不能为空,最多 30 个- 同一
symbol + period组合不能重复 hist_count为 0 时仅返回当前 K 线,不返回历史current为当前正在形成的 K 线(实时更新),history为已完成的最近 N 根 K 线- 非交易时段或缓存未命中时,
current为null,history为空数组
请求示例
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 线数据字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
datetime | string | 数据时刻 |
timestamp | int | 时间戳 |
date | string | 所属日期 |
minute | string | 所属分钟 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价(当前 K 线为最新价) |
volume | int | 当前成交量 |
amount | float | 当前成交额 |
total_volume | int | 今日成交量 |
total_money | int | 今日成交额 |
pre_close | float | 昨日收盘价 |
响应压缩
- 响应体 ≥ 500 字节时,自动压缩为 gzip 格式,响应头包含
Content-Encoding: gzip、Vary: Accept-Encoding,Content-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_LIMIT | 30 | 每 IP 每分钟请求限制 |
RATE_LIMIT_ENABLED | true | 是否启用限流 |
与 WebSocket 推送的关系
本 REST 接口的数据来源于 WebSocket 推送服务写入的 Redis 缓存。两种方式对比:
| 特性 | REST 接口(本接口) | WebSocket 推送 |
|---|---|---|
| 协议 | HTTP POST | WebSocket |
| 数据时效 | 取决于轮询频率 | 实时推送 |
| 适用场景 | 低频查询、一次性获取 | 高频监控、实时响应 |
| 数据范围 | K 线数据(OHLCV) | 逐笔 Tick + K 线 |
| 连接方式 | 无状态,按需请求 | 长连接,需订阅 |
如需实时性更高的数据,建议使用 WebSocket 推送接口。