文档/速率限制

速率限制

了解 API 请求限制、积分用量,以及如何妥善处理限流。

查看 Markdown OpenAPI JSON

当前限制

范围限制含义
API 密钥请求60 次请求 / 分钟,5,000 次请求 / 天已认证 API 密钥的默认配额。
/api/batch每次请求最多 500 个邮箱按每次请求的邮箱上限分批提交。
匿名检测工具每个 IP 地址每天 5 次检测适用于未使用账户 API 密钥的公开检测工具。
验证量账户可用积分积分决定可运行的验证次数。
批量 CSV 上传文件中每个邮箱都需要积分上传前,积分需足以覆盖待验证的邮箱数量。

请求配额和积分是两项独立的控制。API 密钥默认每分钟 60 次请求、每天 5,000 次请求。这些配额决定已认证的集成调用 API 的速度,而账户积分决定可运行的验证次数。

处理大批量列表时,/api/batch单次请求最多接受 500 个邮箱。批量 CSV 上传按积分而非请求次数控制:账户积分必须足以覆盖上传文件中的邮箱数量,验证任务才能运行。

公开的匿名检测工具限制为每个 IP 地址每天 5 次检测。账户余额规则请参阅积分与用量。大批量导入请使用批量验证;集成行为请查看错误处理, 快速开始,以及价格。

速率限制响应

当 API 密钥超出请求配额时,API 会返回429 Too Many Requests响应。响应中包含Retry-After,以便客户端知道重试前需要等待多久。

json
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded. Please retry after the indicated delay.",
  "status_code": 429,
  "retry_after": 15
}

Retry-After 请求头

而Retry-After响应头表示超出配额的 API 密钥请求在重试前需等待的秒数:

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

在代码中处理速率限制

先读取该响应头,等待指定的秒数后再重试。如果没有该响应头,请使用较保守的默认等待时间。

python
import requests, time

def verify_with_retry(email, api_key, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(
            "https://verimails.com/api/verify/single",
            headers={"Authorization": f"Bearer {api_key}"},
            json={"email": email}
        )

        if response.status_code == 200:
            return response.json()

        if response.status_code == 429:
            retry_after = int(response.headers.get("Retry-After", 15))
            print(f"Rate limited. Waiting {retry_after}s...")
            time.sleep(retry_after)
            continue

        response.raise_for_status()

    raise Exception("Max retries exceeded")

最佳实践