API Reference

接口文档

统一的行情数据接口,覆盖加密货币、外汇、期货等市场。注册后 5 分钟内完成集成。

Base URLhttps://api.wktick.com
版本v1
鉴权x-api-key
协议HTTPS · WSS

快速开始

注册后自动绑定试用套餐并生成 Access Key,按以下三步完成首次集成。

1
注册账号

注册后自动绑定 Free Trial 套餐,无需绑定信用卡。

2
获取 Access Key

控制台复制你的 Access Key,用于所有行情接口调用。

3
发起第一个请求
bash
curl https://api.wktick.com/v1/quotes/BTCUSDT \
  -H "x-api-key: YOUR_ACCESS_KEY"

鉴权方式

行情接口(/v1/*)和 WebSocket 均使用 API Key 鉴权,通过请求头传入:

http
x-api-key: wk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

WebSocket 也支持 URL 参数传入:

http
wss://api.wktick.com/ws/quotes?apiKey=YOUR_ACCESS_KEY
每个账号只保留一个 Access Key。Key 泄漏后请在控制台立即重置,旧 Key 即刻失效。

查询产品列表

GET/v1/products

返回所有可用产品。可通过 marketType 过滤市场类型。

请求参数

参数类型必填说明
marketTypestringSTOCK / FUTURES / INDEX / FOREX / CRYPTO

请求示例

http
GET /v1/products?marketType=CRYPTO
x-api-key: YOUR_ACCESS_KEY

响应示例

json
{
  "products": [
    {
      "symbol": "BTCUSDT",
      "name": "BTC/USDT",
      "marketType": "CRYPTO",
      "exchange": "Huobi",
      "dataSource": "huobi",
      "status": "ACTIVE"
    }
  ]
}

查询实时报价

GET/v1/quotes/:symbol

返回指定产品的最新报价。优先从 Redis 缓存返回(延迟 <10ms),缓存命中时响应含 "source":"redis"

路径参数

参数说明
symbol产品代码,大小写不敏感,例如 BTCUSDT、EURUSD、XAUUSD

请求示例

http
GET /v1/quotes/BTCUSDT
x-api-key: YOUR_ACCESS_KEY

响应示例

json
{
  "quote": {
    "type": "quote",
    "symbol": "BTCUSDT",
    "price": "64218.23",
    "open": "63900.00",
    "high": "65000.00",
    "low": "63500.00",
    "volume": "1234.567890",
    "sourceTime": "2026-06-29T10:00:00.000Z",
    "receivedAt": "2026-06-29T10:00:00.050Z",
    "dataSource": "huobi"
  },
  "source": "redis"
}

查询 K 线数据

GET/v1/klines/:symbol

返回历史 K 线数据。支持多个时间周期,高周期 K 线由 1 分钟数据聚合而来。

请求参数

参数类型默认说明
intervalstring1m时间周期:1m / 5m / 15m / 30m / 1h / 4h / 1d / 1w
limitinteger200返回条数,最大 1000

请求示例

http
GET /v1/klines/BTCUSDT?interval=1h&limit=100
x-api-key: YOUR_ACCESS_KEY

响应示例

json
{
  "symbol": "BTCUSDT",
  "interval": "1h",
  "klines": [
    {
      "openTime": "2026-06-29T09:00:00.000Z",
      "open": 63900.00,
      "high": 65000.00,
      "low": 63500.00,
      "close": 64218.23,
      "volume": 7842.123456
    }
  ]
}

WebSocket 建立连接

WS/ws/quotes

连接成功后服务器立即推送 welcome 消息,包含连接 ID 和当前套餐限制。

连接示例

javascript
const ws = new WebSocket(
  "wss://api.wktick.com/ws/quotes?apiKey=YOUR_ACCESS_KEY"
);

ws.onopen = () => console.log("connected");

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  console.log(msg.type, msg);
};

Welcome 消息

json
{
  "type": "welcome",
  "connectionId": "a1b2c3d4-...",
  "limits": {
    "websocketConnectionLimit": 3,
    "websocketSymbolLimit": 100
  }
}

WebSocket 订阅行情

连接建立后发送 JSON 消息订阅或取消订阅产品。单次可传多个 symbol。

订阅

javascript
ws.send(JSON.stringify({
  "action": "subscribe",
  "symbols": ["BTCUSDT", "EURUSD", "XAUUSD"]
}));

// 服务器确认
{ "type": "subscribed", "symbols": ["BTCUSDT", "EURUSD", "XAUUSD"] }

// 实时推送格式
{
  "type": "quote",
  "data": {
    "symbol": "BTCUSDT",
    "price": "64218.23",
    "high": "65000.00",
    "low": "63500.00",
    "volume": "1234.56",
    "sourceTime": "2026-06-29T10:00:05.000Z"
  }
}

取消订阅

javascript
ws.send(JSON.stringify({
  "action": "unsubscribe",
  "symbols": ["BTCUSDT"]
}));

WebSocket 心跳保活

服务器在 60 秒内未收到任何消息将主动断开连接。建议每 30 秒发送一次 ping:

javascript
setInterval(() => {
  if (ws.readyState === WebSocket.OPEN) {
    ws.send(JSON.stringify({ "action": "ping" }));
  }
}, 30_000);

// 服务器回应
{ "type": "pong", "timestamp": "2026-06-29T10:00:30.000Z" }

频率限制

每个套餐有独立的 HTTP 每分钟查询限制。超限时返回 429,响应头含 RateLimit-* 字段。

套餐HTTP/分钟WS 连接数WS 订阅总数
Free Trial30120
Standard1203100
Enterprise按需专属2000+

错误码参考

HTTPerror 字段说明
400validation_error请求参数格式错误
401missing_api_key未传入 x-api-key
401invalid_api_keyKey 不存在或已禁用
401missing_token未传入 Bearer Token
403ip_not_allowed当前 IP 不在白名单
404quote_not_found暂无该产品的行情数据
429rate_limited超过套餐 HTTP 查询频率
500internal_server_error服务器内部错误

错误响应格式

json
{
  "error": "invalid_api_key",
  "message": "API Key 不存在或已禁用。"
}
在线调试

交互式 Demo

直接在页面内填写 API Key,向本地(或任意)API 服务发起真实请求,无需 curl / Postman。

Base URLAPI Key
SymbolIntervalLimit
点击上方按钮发起请求,结果显示在这里