レート制限
APIリクエストの上限、クレジットの消費、スロットリングを適切に処理する方法をご紹介します。
現在の 上限
| 項目 | 上限 | 内容 |
|---|---|---|
| APIキーのリクエスト | 60リクエスト/分、5,000リクエスト/日 | 認証済みAPIキーのデフォルトのクォータです。 |
/api/batch | 1リクエストあたり最大500件のメール | 1リクエストあたりのメール件数の上限内でバッチを送信してください。 |
| 匿名チェッカー | IPアドレスごとに1日5回 | アカウントのAPIキーを使わずに公開チェッカーを利用する場合に適用されます。 |
| 検証件数 | アカウントで利用可能なクレジット | 実行できる検証の件数はクレジットで決まります。 |
| 一括CSVアップロード | ファイル内のすべてのメール分のクレジットが必要 | アップロードには、検証するメールの件数に見合うクレジットが必要です。 |
リクエストのクォータとクレジットは別々の仕組みです。APIキーのデフォルトは1分あたり60リクエスト、1日あたり5,000リクエストです。これらのクォータは、認証済みの連携がAPIを呼び出せる速さを制御します。一方、実行できる検証の件数はアカウントのクレジットで決まります。
大量のリストを扱う場合、/api/batchは1回のリクエストで最大500件のメールを受け付けます。一括CSVアップロードはリクエスト数ではなくクレジットで管理されます。検証ジョブを実行する前に、アップロードしたファイル内のメール件数に見合うクレジットがアカウントに必要です。
公開の匿名チェッカーは、IPアドレスごとに1日5回までに制限されています。アカウント残高のルールについてはクレジットと利用状況をご覧ください。大量のインポートには一括検証をご利用ください。連携時の動作については、こちらをご確認ください:エラー処理、 クイックスタート、料金。
レート 制限時の レスポンス
APIキーがリクエストのクォータを超えると、APIは429 Too Many Requestsレスポンスを返します。レスポンスにはRetry-Afterが含まれるため、クライアントは再試行までに待つべき時間を把握できます。
{
"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/1.1 429 Too Many Requests
Retry-After: 15
Content-Type: application/json
コードでの レート制限の 処理
まずヘッダーを読み取り、示された秒数だけ待ってから再試行します。ヘッダーがない場合は、余裕を持たせた待機時間をフォールバックとして使用してください。
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連携は1分あたり60リクエスト、1日あたり5,000リクエスト未満に抑えてください。
- 送信する
/api/batchのペイロードは500件以下に抑えてください。 - APIキーのリクエストが429を受け取った場合は、必ず
Retry-Afterヘッダーに従ってください。 - 大規模な検証を始める前に、利用可能なクレジットを確認してください。
- CSVリストには一括検証を使用し、ファイル内のメール件数に見合うクレジットがアカウントにあることを確認してください。