接口说明
实时行情流
连接后发送 action、market、symbols 字段完成订阅。
REST / WebSocket 接口
建立 WebSocket 连接后发送 subscribe JSON 订阅标的,接收实时推送。
更新日期:2026-09-12
实时行情流
连接后发送 action、market、symbols 字段完成订阅。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | 首包必须为 subscribe |
market | string | 是 | crypto|stocks|cn|hk|futures|indices|forex|commodities|metals|energy|agri |
symbols | string[] | 是 | 订阅标的列表;数量受套餐限制 |
| 字段 | 类型 | 说明 |
|---|---|---|
succ | boolean | 是否成功 |
data | object | array | 业务数据(见下方字段) |
msg | string | 失败时的可读错误信息(可选) |
code | string | 机器可读错误码(可选) |
X-Request-Id | header | 请求追踪 ID(响应头,不在 JSON body) |
X-API-Key | header | API Key;也可用 Authorization: Bearer |
| 字段 | 类型 | 说明 |
|---|---|---|
type=subscribed | object | 订阅确认:market、symbols |
type=tick | object | 实时推送 |
tick.symbol / last / at | mixed | 标的、最新价、RFC3339 时间 |
tick.bid / ask / volume | number | 盘口与量 |
tick.change / changePercent / high / low | number | 涨跌与高低 |
type=error | object | 错误帧:msg + code(如 WS_CONN_LIMIT) |
| code | HTTP | 说明 |
|---|---|---|
INVALID_REQUEST | 400 | 参数缺失或非法(如 interval) |
INVALID_SYMBOL | 400 | 标的代码格式无效 |
UNKNOWN_SYMBOL | 400 | 无法识别的标的(多市场 quote) |
NO_SUBSCRIPTION | 403 | 无有效订阅 |
SUBSCRIPTION_EXPIRED | 403 | 订阅已过期 |
MARKET_NOT_ENABLED | 403 | 当前套餐未开通该市场 |
API_KEY_SCOPE_DENIED | 403 | Key 权限范围不足 |
IP_DENIED / GEO_DENIED | 403 | IP 或地区策略拒绝 |
DAILY_LIMIT_EXCEEDED | 429 | 日请求配额用尽 |
MONTHLY_LIMIT_EXCEEDED | 429 | 月请求配额用尽 |
RATE_LIMIT_EXCEEDED | 429 | 用户级 RPM 超限 |
KEY_RATE_LIMIT_EXCEEDED | 429 | 单 Key RPM 超限 |
UPSTREAM_UNAVAILABLE | 502 | 上游行情源暂时不可用 |
RATE_LIMIT_UNAVAILABLE | 503 | 限流组件不可用 |
WS_CONN_LIMIT | WS | WebSocket 连接数达到套餐上限 |
wss://api.tiqex.io/api/v1/market/stream
{ "action": "subscribe", "market": "crypto", "symbols": ["BTCUSDT"] }import asyncio
import websockets
import json
async def main():
uri = "wss://api.tiqex.io/api/v1/market/stream"
async with websockets.connect(uri) as ws:
await ws.send(json.dumps({
"action": "subscribe",
"market": "crypto",
"symbols": ["BTCUSDT"]
}))
print(await ws.recv())
asyncio.run(main())const ws = new WebSocket("wss://api.tiqex.io/api/v1/market/stream");
ws.onopen = () => {
ws.send(JSON.stringify({
action: "subscribe",
market: "crypto",
symbols: ["BTCUSDT"]
}));
};
ws.onmessage = (ev) => console.log(ev.data);