快速开始
按下面三步,从注册到收到第一条实时推送。免费版无需信用卡。
- 创建 API Key注册后在控制台 · API Key生成密钥;开发、预发、生产各用一把。
- 发起首个 REST 请求在请求头带上
X-API-Key,调用加密报价端点验证鉴权。 - 订阅 WebSocket连接 stream 通道发送 subscribe;握手计一次配额,之后的 tick 推送不重复计次。
curl "https://api.tiqex.io/api/v1/market/crypto/quote?symbols=BTCUSDT" \\
-H "X-API-Key: $TIQEX_KEY"{
"succ": true,
"data": { ... } // Field details are documented per endpoint; on failure succ=false with msg and code
}Base URL 与响应外壳
| 用途 | 地址 |
|---|---|
| REST | https://api.tiqex.io/api/v1 |
| WebSocket | wss://api.tiqex.io/api/v1/market/stream |
| 字段 | 类型 | 说明 |
|---|---|---|
succ | boolean | 是否成功。HTTP 2xx 时也可能为 false,需同时检查 |
data | object | array | 业务数据,字段见各端点 |
msg | string | 失败时的可读错误信息(可选) |
code | string | 机器可读错误码(可选),见错误码 |
X-Request-Id | 响应头 | 请求追踪 ID,不在 JSON body 内;排查与提交工单时请附上 |
鉴权
所有 REST 与 WebSocket 请求都需要 API Key。推荐用X-API-Key: YOUR_API_KEY请求头,也支持Authorization: Bearer YOUR_API_KEY。
- 密钥只放服务端或密钥管理服务,不要写进前端代码或 Git 仓库。
- 可为不同环境创建多把密钥,并随时在控制台轮换、吊销。
- 密钥缺失或无效返回 401;市场未开通或 scope 不足返回 403。
阅读完整专题:鉴权 →
REST 端点
统一 JSON 外壳,支持按 symbol / interval 过滤,响应含分页与速率限制头。端点按市场权限分组。
加密货币
crypto 权限- GET
/api/v1/market/crypto/quote最新报价快照,参数 symbols(如 BTCUSDT) - GET
/api/v1/market/crypto/kline历史 K 线:symbol、interval(1s–1M,默认 1h)、limit 1–1000
美股
stocks 权限- GET
/api/v1/market/equity/quote美股报价 - GET
/api/v1/market/equity/kline美股 K 线
多市场统一报价
按标的所属市场计权限- GET
/api/v1/market/quote外汇 / 大宗 / A股 / 港股 / 期货 / 指数报价;codes 逗号分隔,最多 50 个
A股 · 港股
cn / hk 权限- GET
/api/v1/market/cn/klineA股 K 线
外汇 · 指数 · 期货
forex / indices / futures 权限- GET
/api/v1/market/forex/kline外汇 K 线 - GET
/api/v1/market/continuous-futures/kline连续期货 K 线(路径为 /tv-futures,归 futures 权限)
大宗商品
metals / energy / agri / commodities 权限- GET
/api/v1/market/metals/kline金属 K 线 - GET
/api/v1/market/energy/kline能源 K 线 - GET
/api/v1/market/agri/kline农产品 K 线 - GET
/api/v1/market/commodities/kline大宗商品 K 线
实时推送
按订阅的 market 计权限- WS
wss://api.tiqex.io/api/v1/market/stream实时行情流:subscribe 后接收 tick 推送
没有匹配的端点
换个关键词,或查看市场覆盖表。
WebSocket 实时推送
连接wss://api.tiqex.io/api/v1/market/stream后,首包必须是 subscribe。一个连接可批量订阅多个标的,数量受套餐限制。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | 首包必须为subscribe |
market | string | 是 | crypto | stocks | cn | futures | forex | commodities | metals | energy | agri |
symbols | string[] | 是 | 订阅标的列表 |
发送订阅
{ "action": "subscribe", "market": "crypto", "symbols": ["BTCUSDT", "ETHUSDT"] }服务端消息示例值
消息为扁平结构:订阅成功回 type=subscribed(含 market 与 symbols),行情推送 type=tick(字段见上表);已与线上实现核对。
{ "type": "subscribed", "market": "crypto", "symbols": ["BTCUSDT", "ETHUSDT"] }{
"type": "tick",
"tick": {
"symbol": "BTCUSDT",
"last": 0.00, "bid": 0.00, "ask": 0.00, "volume": 0,
"change": 0.00, "changePercent": 0.00, "high": 0.00, "low": 0.00,
"at": "2026-10-12T06:00:00.000Z"
}
}{ "type": "error", "code": "WS_CONN_LIMIT", "msg": "WebSocket 连接数达到套餐上限" }客户端示例
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) => {
const msg = JSON.parse(ev.data);
if (msg.type === "tick") console.log(msg.tick.symbol, msg.tick.last);
if (msg.type === "error") console.warn(msg.code, msg.msg);
};
// On disconnect, reconnect with 1s, 2s, 4s... backoff and resend every subscribe限流与配额
REST 的 quote / kline 和 stream 握手计入日(月)配额与 RPM;握手之后的 tick 推送不重复计次。数值为线上文档的默认值,以控制台套餐为准。
| 套餐 | REST 配额 | 默认 RPM | WS 连接 / 标的 | 市场与延迟 |
|---|---|---|---|---|
| 免费版 $0 | 300 次 / 日 | 30 | 1 / 10 | 仅加密实时 |
| 标准版 $99/月 | 500,000 次 / 月 | 120 | 3 / 25 | 加密 / 美股 / 指数 / 金属 / 外汇 实时 |
| 专业版 $299/月 | 5,000,000 次 / 月 | 600 | 10 / 50 | 全部市场实时(含期货、能源、农产品) |
| 企业版 定制 | 无限或协议配额 | 3000 | 50 / 200 | Level 2(外汇为实时)、私有部署 |
收到 429 时读取Retry-After,按指数退避 + 抖动重试;非实时数据做本地缓存。用配额计算器估算用量。
错误码概览
4xx 多为客户端问题,429 为配额 / 限流,5xx 为上游或服务端。下面是最常见的几种,完整列表见错误码页。
| HTTP | code | 含义 | 建议 |
|---|---|---|---|
| 401 | UNAUTHORIZED | 密钥缺失或无效 | 检查请求头与密钥状态 |
| 403 | MARKET_NOT_ENABLED | 当前套餐未开通该市场 | 升级套餐或换市场 |
| 403 | API_KEY_SCOPE_DENIED | Key 权限范围不足 | 控制台调整 Key 的 scope |
| 429 | RATE_LIMIT_EXCEEDED | 用户级 RPM 超限 | 按 Retry-After 退避 |
| 429 | DAILY_LIMIT_EXCEEDED | 日请求配额用尽 | 次日恢复或升级套餐 |
| 502 | UPSTREAM_UNAVAILABLE | 上游行情源暂时不可用 | 指数退避重试,保留 X-Request-Id |
SDK 与多语言示例
REST 是标准 HTTP + JSON,任何语言都能直接调用。以下示例与首页代码窗一致。
// Node 18+ / same-origin BFF in the browser; keep the key server-side only
const res = await fetch(
"https://api.tiqex.io/api/v1/market/crypto/quote?symbols=BTCUSDT",
{ headers: { "X-API-Key": process.env.TIQEX_KEY } }
);
const json = await res.json();
if (!json.succ) throw new Error(json.code + " " + json.msg);
console.log(json.data);import os, requests
resp = requests.get(
"https://api.tiqex.io/api/v1/market/crypto/quote",
params={"symbols": "BTCUSDT"},
headers={"X-API-Key": os.environ["TIQEX_KEY"]},
timeout=10,
)
body = resp.json()
if not body["succ"]:
raise RuntimeError(body.get("code"), resp.headers.get("X-Request-Id"))
print(body["data"])<?php
$ch = curl_init("https://api.tiqex.io/api/v1/market/crypto/quote?symbols=BTCUSDT");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("TIQEX_KEY")],
CURLOPT_TIMEOUT => 10,
]);
$body = json_decode(curl_exec($ch), true);
var_dump($body["data"]);// JDK 11+ ships HttpClient
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.tiqex.io/api/v1/market/crypto/quote?symbols=BTCUSDT"))
.header("X-API-Key", System.getenv("TIQEX_KEY"))
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());req, _ := http.NewRequest("GET",
"https://api.tiqex.io/api/v1/market/crypto/quote?symbols=BTCUSDT", nil)
req.Header.Set("X-API-Key", os.Getenv("TIQEX_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil { log.Fatal(err) }
defer res.Body.Close()
io.Copy(os.Stdout, res.Body)常见问题
WebSocket 和 REST 怎么配合?
REST 用于快照与历史 K 线回补,WebSocket 用于实时 tick。两者使用同一把 API Key;stream 握手计费一次,推送不重复计次。
标的代码如何填写?
加密多为 BTCUSDT;美股如 AAPL;多市场 quote 可用产品短码或 TV 符号。具体见各端点参数表与控制台标的列表。
免费套餐能做什么?
适合学习与集成验证。生产环境需要更多市场、实时数据或更高配额时,升级标准版或专业版。
数据延迟与覆盖范围如何理解?
延迟、字段粒度与历史深度因市场与套餐而异,以控制台权益与端点文档为准;不保证与任一交易所原生盘口逐字段一致。
