接口說明
實時行情流
連接後發送 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);