跳到正文
AllTick
行情 API 故障诊断与排查中心

行情 API 问题排查:鉴权、限流、连接与时间

面向开发者的行情 API 故障诊断指南。汇总 401 鉴权失败、429 频率超限、WebSocket 无数据推送与时间戳时区转换等高频问题的排查清单与自检代码,助你快速恢复数据流。

标准排查流程

四步快速缩小故障范围

按依赖层级从外向内逐层验证,避免对无效凭证进行盲目重试导致套餐限流。

01

状态码与业务码定位

区分鉴权失败与频率限制

先检查 HTTP 状态码与响应体中 ret。401 为 Token 错误或未授权,429/605 为调用频率超限。请勿对 401 凭证错误进行无限重试。

02

凭证完整度核验

确认 Token 与环境变量

核对代码中读取的 Token 是否为空、首尾是否有多余空格或换行,确认本地环境与生产服务器的环境变量均已正确加载。

03

接口与市场类型匹配

核实服务地址与标的格式

股票数据必须使用 quote-stock-b-api(如 700.HK, AAPL.US);外汇与贵金属使用 quote-b-api(如 EURUSD)。地址与标的不匹配将直接报错。

04

交易时段与长连接心跳

排除休市无成交与超时断开

各市场交易所休市与午间停盘期间无成交数据推送。WebSocket 连接需定时发送心跳包(cmd_id: 22000),并在自动重连后重新发起订阅。

核心专栏文档

常见问题排查指南

深入各个技术维度的详细成因分析、生产排查步骤与完整可执行代码。

共 3 篇专项排查指南
HTTP 401 / 429

行情 API 鉴权失败与限流如何排查

按“HTTP 状态 → 业务返回码 → Token → 频率”的顺序排查行情 API 鉴权失败与限流问题,附带退避重试代码。

排查重点:

  • 按“HTTP 状态 → 业务返回码 → Token → 频率”四级判断
  • 附带带随机抖动的 Python 指数退避重试(Exponential Backoff)实现
  • 多标的单次批量合并查询(symbol_list)降低 80% 请求频次
更新于 完整步骤
WebSocket 长连接

WebSocket 已连接但没有数据怎么办

WebSocket 连接成功却收不到行情时,按订阅消息、代码格式、交易时段、心跳和权限五个方面逐项排查。

排查重点:

  • 排查订阅报文(cmd_id: 22004)格式与服务端接收应答
  • 交易所交易时段、夏令时与午间停盘状态核实
  • 全天活跃品种(外汇 EURUSD)5 行代码最小可用连通性验证
更新于 完整步骤
UTC 与美东时区

美股行情的时间戳与交易时段怎么处理

处理美股行情时间的正确方式:统一保存 UTC,按美东时区展示,正确应对夏令时切换与盘前盘后时段。

排查重点:

  • 13 位毫秒级与 10 位秒级时间戳的自动识别与单位归一化
  • 美股夏令时(北京时间 21:30)与冬令时(22:30)开盘对照表
  • 防止美股跨午夜交易导致单交易日 K 线被错误切分为两天
更新于 完整步骤
速查手册

常见错误码与现象速查表

遇到报错或异常时,对照下方表格快速定位可能原因并采取对应措施。

状态 / 错误码常见现象最可能成因排查与修复方法对应指南
ret: 401 / HTTP 401token invalid (鉴权失败)Token 未传、格式不正确、已过期,或首尾含多余空格换行打印 Token 长度与首尾字符核验;在 AllTick 控制台确认 Token 状态与可用市场鉴权排查指南
ret: 429 / 605Too Many Requests (频率超限)超过套餐规定的每秒或每分钟请求频次上限,或多进程共享同一 Token 叠加频率加入指数退避重试(Exponential Backoff);合并多个单品种为单个批量请求限流排查指南
ret: 600code invalid (标的代码无效)标的代码拼写错误、后缀缺失,或使用了错误的接口路径(如用外汇接口查股票)仔细核对接口文档:股票走 quote-stock-b-api,外汇走 quote-b-api;检查品种列表代码格式核对
ret: 603 / 604level not enough / unauthorized单次请求标的数或 K 线根数超出当前套餐配额,或 Token 无该标的访问权限核对套餐单次批量查询上限;在官网控制台确认已开通对应市场权限配额说明
ret: 606Connection will be closedWebSocket 连接数超过套餐上限,或同一连接内多个请求发送间隔小于 1~3 秒控制并发连接数在套餐额度内;在长连接请求间增加至少 1 秒延时WebSocket 限制
ret: 400 / 402param invalid / query invalid请求 JSON 缺少 trace 追踪 ID,或 GET 请求中的 query 参数未进行标准 URL 编码确认 query 为合规 JSON 字符串并进行 urlencode 编码,确保 trace 与 data 结构完整参数规范
WS 连接成功但无推送No Push Data (无成交推送)未成功发送订阅报文(cmd_id: 22004)、品种处于休市时段,或未收到订阅应答检查订阅报文格式及 seq_id 应答;工作日可临时改用外汇 EURUSD 自检通道验证WebSocket 排查
时间解析为 1970 年Timestamp Parsing ErrorAllTick 的 tick_time 为 13 位毫秒时间戳,被按 10 位秒级时间戳解析判断时间戳长度:若大于 10^12 则除以 1000 转换为秒,统一存储为 UTC 后再按时区展示时间戳处理指南
自检脚本

5 行代码快速验证接口连通性

在本地或部署服务器运行此脚本,排除复杂业务代码干扰,直接验证 Token 有效性与网络延迟。

test_connection.py
# AllTick Connectivity Self-Check
import os
import requests

API_TOKEN = os.getenv("ALLTICK_API_TOKEN", "YOUR_TOKEN_HERE")
BASE_URL = "https://quote.alltick.co/quote-stock-b-api/trade-tick"

params = {
    "token": API_TOKEN,
    "query": '{"trace":"diagnose-1","data":{"symbol_list":[{"code":"700.HK"}]}}'
}

response = requests.get(BASE_URL, params=params, timeout=5)
print(f"HTTP Status: {response.status_code}")
print(f"Response Body: {response.text}")
正常预期响应 (HTTP 200 OK)
JSON
{
  "ret": 200,
  "msg": "ok",
  "trace": "diagnose-1",
  "data": {
    "tick_list": [
      {
        "code": "700.HK",
        "price": "398.20",
        "tick_time": "1712648400000"
      }
    ]
  }
}
提示:如果收到 ret: 401,请前往官网重新生成 Token;若为 ret: 429,请核查当前请求频率配额。
官方技术支持与协同排障

自行排查后仍未解决?

若按上述步骤排查后仍存在异常,请带上下列脱敏日志联系 AllTick 技术支持团队。官方技术工程师将在第一时间协助分析定位:

  • 完整的请求接口地址(隐去 Token)
  • 服务端返回的完整 HTTP 状态码与 JSON
  • 发生报错的精确 UTC 时间与持续时长
  • 使用的编程语言、第三方库及具体版本

准备好在生产环境中接入稳定行情了吗?

AllTick 提供覆盖美股、港股、外汇与大宗商品的毫秒级行情流,提供 99.95% 可用性保障与专业售后支持。