文件/速率限制

速率限制

了解 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")

最佳做法