接口限频
为保障平台稳定与账户安全,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响应头,提前预测限流。 - 错峰调用 — 避免在开盘时段集中发送大量请求。