先行利用を申し込む

お名前とメールアドレスまたは電話番号をご入力ください。Tajo のアクセス方法をご案内します。

グローバル制限

Brevo は、公平な利用と最適なパフォーマンスを確保するため、すべての API エンドポイントにグローバルなレート制限を適用しています。

レート制限のティア

Free プラン

  • 1 日あたりの上限: 300 リクエスト
  • 1 時間あたりの上限: 50 リクエスト
  • バースト上限: 1 分あたり 10 リクエスト
  • メールクレジット: 月 300 通

Starter プラン

  • 1 日あたりの上限: 20,000 リクエスト
  • 1 時間あたりの上限: 1,000 リクエスト
  • バースト上限: 1 分あたり 100 リクエスト
  • メールクレジット: 無制限

Business プラン

  • 1 日あたりの上限: 50,000 リクエスト
  • 1 時間あたりの上限: 3,000 リクエスト
  • バースト上限: 1 分あたり 300 リクエスト
  • メールクレジット: 無制限

Enterprise プラン

  • 1 日あたりの上限: カスタム(100,000 以上)
  • 1 時間あたりの上限: カスタム(10,000 以上)
  • バースト上限: カスタム(1 分あたり 1,000 以上)
  • メールクレジット: 無制限

レート制限のヘッダー

すべての API レスポンスにレート制限の情報が含まれます。

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
X-RateLimit-Retry-After: 3600

ヘッダーの説明

  • X-RateLimit-Limit: 現在のウィンドウで許可されるリクエストの総数
  • X-RateLimit-Remaining: 現在のウィンドウで残っているリクエスト数
  • X-RateLimit-Reset: 上限がリセットされる Unix タイムスタンプ
  • X-RateLimit-Retry-After: 再試行までに待機する秒数

使用状況の監視

現在の使用状況を確認する

const checkRateLimit = async () => {
const response = await fetch('https://api.brevo.com/v3/account', {
headers: { 'api-key': process.env.BREVO_API_KEY }
});
console.log({
limit: response.headers.get('X-RateLimit-Limit'),
remaining: response.headers.get('X-RateLimit-Remaining'),
reset: new Date(response.headers.get('X-RateLimit-Reset') * 1000)
});
};

ダッシュボードでの監視

  1. Brevo のダッシュボードにログインします
  2. 設定 → API Keys に移動します
  3. API キーごとの使用状況を確認します
  4. 上限に近づいたときのアラートを設定します

レート制限のリセットウィンドウ

  • 1 日あたりの上限: 00:00 UTC にリセットされます
  • 1 時間あたりの上限: 毎時 00 分にリセットされます
  • バースト上限: スライディングウィンドウ(直近 60 秒)で計算されます

レート制限への対処

指数バックオフ

const makeRequestWithBackoff = async (url, options, maxRetries = 3) => {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('X-RateLimit-Retry-After') || 60;
const delay = Math.min(1000 * Math.pow(2, i), retryAfter * 1000);
console.log(`Rate limited. Waiting ${delay}ms before retry ${i + 1}`);
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
return response;
} catch (error) {
if (i === maxRetries - 1) throw error;
}
}
};

プランのアップグレード

レート制限に継続的に到達する場合は、次の手順で対応します。

  1. 使用状況を分析する: 最も多く利用しているエンドポイントを確認します
  2. コードを最適化する: キャッシュとバッチ処理を実装します
  3. アップグレードを検討する: 必要に応じて上位ティアに移行します
  4. 営業に問い合わせる: エンタープライズ要件に対応します

レート制限の例外

Webhook エンドポイント

  • 標準のレート制限は適用されません
  • 別途、Webhook 配信の上限が適用されます

ヘルスチェックのエンドポイント

  • /v3/ping には緩やかな上限が適用されます
  • 監視や稼働確認のために設計されています

バッチ操作

  • 1 件のリクエストとして数えられますが、ペイロードの上限が適用される場合があります
  • 個別のリクエストを複数回送るより効率的です

先行利用を申し込む

お名前とメールアドレスまたは電話番号をご入力ください。Tajo のアクセス方法をご案内します。

自動判定
AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。