速率限制
API 请求根据您的套餐进行速率限制。每个响应都包含速率限制头以帮助您跟踪使用情况。
各套餐限制
| 套餐 | 请求数/分钟 | 请求数/天 |
|---|---|---|
| Free | 10 | 1,000 |
| Basic | 60 | 10,000 |
| Pro | 300 | 100,000 |
| Enterprise | Custom | Custom |
响应头
每个响应都包含速率限制信息:
| 头字段 | 描述 |
|---|---|
X-RateLimit-Limit | 每个窗口最大请求数 |
X-RateLimit-Remaining | 当前窗口剩余请求数 |
X-RateLimit-Reset | 窗口重置的 Unix 时间戳 |
Retry-After | 等待秒数(仅在 429 响应中) |
处理速率限制
当超出速率限制时,API 返回 429 状态码。使用 Retry-After 头实现指数退避:
示例
import requests
import time
def make_request_with_retry(url, headers, json_data, max_retries=3):
for attempt in range(max_retries):
response = requests.post(url, headers=headers, json=json_data)
if response.status_code == 429:
retry_after = int(
response.headers.get("Retry-After", 60)
)
print(f"Rate limited. Retrying in {retry_after}s...")
time.sleep(retry_after)
continue
return response
raise Exception("Max retries exceeded")