速率限制
了解 API 請求限制、點數用量,以及如何妥善處理節流。
目前的限制
| 項目 | 限制 | 說明 |
|---|---|---|
| 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")
最佳做法
- 除非您的帳號有不同的限制,否則已驗證的 API 整合請維持在每分鐘 60 次、每日 5,000 次請求以下。
- 請將
/api/batch的內容維持在 500 個電子郵件以內。 - 當 API 金鑰請求收到 429 時,務必遵守
Retry-After標頭。 - 開始大型驗證作業前,先確認可用點數。
- CSV 名單請使用大量驗證,並確保帳號點數足以涵蓋檔案中的電子郵件數量。