Skip to content

接口限频

为保障平台稳定与账户安全,OpenAPI 对每类接口都施加了配额。请在客户端开发初期就按限频规则设计,限额严格执行。

限频规则

类别限制
行情接口每账户仅允许 1 条长连接,同时订阅标的不超过 500 支;每秒调用不超过 10 次,并发请求不超过 5 个。
交易接口每 30 秒内调用不超过 30 次,两次调用之间的间隔不得少于 20 ms

超限响应

达到限额时,服务器返回 HTTP 429 Too Many Requests,并通过 Retry-After 响应头告知需要等待的秒数:

http
HTTP/1.1 429 Too Many Requests
Retry-After: 2
Content-Type: application/json

{ "code": 429001, "message": "rate limit exceeded" }

重试策略

推荐使用指数退避(Exponential Backoff)策略处理限流:

python
import time
import requests

def safe_request(url, headers, data, max_retries=3):
    for i in range(max_retries):
        resp = requests.post(url, headers=headers, json=data)
        if resp.status_code == 429:
            wait = int(resp.headers.get('Retry-After', 2 ** i))
            time.sleep(wait)
            continue
        return resp
    raise Exception("max retries exceeded")

最佳实践

  • 批量请求 — 把多个标的合并为一次调用,例如 code_list 支持最多 400 个标的。
  • 缓存静态数据 — 交易日历、板块列表等不常变化的数据应在本地缓存。
  • 监听响应头 — 关注 X-RateLimit-Remaining 响应头,提前预测限流。
  • 错峰调用 — 避免在开盘时段集中发送大量请求。

相关内容