レート制限
BrazeのAPIインフラは、顧客ベース全体で大量のデータを処理できるように設計されています。このため、ワークスペースごとにAPIレート制限を設けています。
レート制限とは、APIが一定時間内に受け取れるリクエスト数のことです。大規模システムにおける負荷ベースのサービス拒否インシデントの多くは、悪意のある攻撃ではなく、ソフトウェアや設定のエラーによって引き起こされる意図しないものです。レート制限は、このようなエラーによってBraze APIのリソースがお客様に提供できなくなることを防ぎます。一定時間内に多くのリクエストが送信された場合、ステータスコード429のエラー応答が返されることがあります。これは、レート制限に達したことを示します。

APIレート制限は、システムの適切な使用状況に応じて変更される場合があります。損害や悪用を防ぐため、APIコールを行う際には適切な制限を設けることを推奨します。
リクエストタイプ別のレート制限
さまざまなリクエストタイプのデフォルトAPIレート制限については、以下を参照してください。これらのデフォルト制限はリクエストに応じて引き上げることができます。詳細については、カスタマーサクセスマネージャーまでお問い合わせください。
レート制限が異なるリクエスト
共有レート制限のリクエスト
以下のリクエストには、1時間あたり250,000リクエストの共有レート制限が適用されます。
/app_group/sdk_authentication/create/app_group/sdk_authentication/keys/app_group/sdk_authentication/delete/app_group/sdk_authentication/primary/campaigns/details/campaigns/list/campaigns/trigger/send(非ブロードキャスト呼び出し、つまりexternal_user_idsまたはaliasesを指定する場合のみ)/campaigns/trigger/schedule/create(非ブロードキャスト呼び出しのみ)/campaigns/trigger/schedule/delete/campaigns/trigger/schedule/update/canvas/data_series/canvas/data_summary/canvas/details/canvas/list/canvas/trigger/send(非ブロードキャスト呼び出しのみ)/canvas/trigger/schedule/create(非ブロードキャスト呼び出しのみ)/canvas/trigger/schedule/delete/canvas/trigger/schedule/update/content_blocks/create/content_blocks/info/content_blocks/list/content_blocks/update/email/blocklist/email/blacklist/email/bounce/remove/email/hard_bounces/email/spam/remove/email/status/email/unsubscribes/events/data_series/kpi/dau/data_series/kpi/mau/data_series/kpi/new_users/data_series/kpi/uninstalls/data_series/messages/live_activity/start/messages/live_activity/update/messages/send(非ブロードキャスト呼び出しのみ)/messages/schedule/create/messages/schedule/delete/messages/schedule/update/messages/scheduled_broadcasts/segments/data_series/segments/details/segments/list/sends/data_series/sessions/data_series/sms/invalid_phone_numbers/sms/invalid_phone_numbers/remove/subscription/status/get/subscription/user/status/templates/email/create/templates/email/info/templates/email/list/templates/email/update/users/export/global_control_group/users/export/segment
同一ユニークオーディエンスとは?
これは以下のエンドポイントに適用されます: /messages/send、/campaigns/trigger/send、/canvas/trigger/send、/campaigns/trigger/schedule/create、および /canvas/trigger/schedule/create。
これらのエンドポイントでは、以下のすべてが一致する場合、ブロードキャストリクエストは同一のユニークオーディエンスをターゲットにしているとみなされます。
- トリガーされるキャンペーンまたはキャンバス(APIリクエストの
campaign_idまたはcanvas_id(指定されている場合)) - ターゲットにしているオーディエンス(セグメントまたはフィルター、またはAPIキャンペーンの場合はAPIリクエストの
segment_id) - コネクテッドオーディエンスフィルター(APIリクエストの
audienceオブジェクト(指定されている場合))
これらの属性のユニークな組み合わせはそれぞれ個別のオーディエンスとしてカウントされるため、各ユニークオーディエンスの追加レート制限はそれぞれの組み合わせに独立して適用されます。
APIリクエストのバッチ処理
Braze APIはバッチ処理をサポートするように構築されています。バッチ処理を使用すると、Brazeは単一のAPI呼び出しでできるだけ多くのデータを取り込むことができるため、大量のAPI呼び出しを行う必要がありません。データを一度に1回ずつ処理するよりも、バッチでデータを処理する方がBrazeにとって効率的です。たとえば、1,000件のバッチ処理されたAPI呼び出しを処理する方が、75,000件の個別の呼び出しを処理するよりもリソースの消費が少なくなります。バッチ処理は、1時間あたり75,000件を超える呼び出しが必要になる可能性のあるアプリケーションにとって非常に重要です。

REST APIのレート制限の引き上げは、APIバッチ処理機能を活用している顧客のニーズに基づいて検討されます。
ユーザーの作成および更新エンドポイントのリクエストのバッチ処理
各 /users/track リクエストには、attributes、events、purchases を合わせて最大75個のオブジェクトを含めることができます。各オブジェクトは1人のユーザーを更新できます。単一のユーザープロファイルを複数のオブジェクトで更新することも可能です。
レガシーレート制限
レガシーレート制限を使用している顧客の場合、各配列(attributes、events、purchases)にはそれぞれ独立して最大75個のオブジェクトを含めることができ、リクエストあたり最大225個のオブジェクトを組み合わせることができます。
/users/track のレート制限の詳細については、POST:ユーザーの作成と更新を参照してください。
このエンドポイントへのリクエストは、一般的に以下の順序で処理が開始されます。
- 属性
- イベント
- 購入
メッセージングエンドポイントリクエストのバッチ処理
メッセージングエンドポイントへの単一のリクエストで、以下のいずれかにリーチできます。
- 最大50個の特定の
external_ids(それぞれに個別のメッセージパラメータを指定) - Brazeダッシュボードで作成された任意のサイズのセグメント(
segment_idで指定) - リクエスト内で コネクテッドオーディエンスオブジェクトとして定義された、任意のサイズの追加オーディエンスフィルターに一致するユーザー
バッチリクエストの例
以下の例では、external_id を使用してメールとSMSに対して1回のAPI呼び出しを行います。
curl --location --request POST 'https://rest.iad-01.braze.com/v2/subscription/status/set' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"subscription_groups":[
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
}
]
}
レートリミットのモニタリング
Brazeに送信されるすべてのAPIリクエストは、レスポンスヘッダーに以下の情報を返します。
| ヘッダー名 | 説明 |
|---|---|
X-RateLimit-Limit |
指定された間隔内にリクエストできる最大数(レートリミット)。 |
X-RateLimit-Remaining |
現在のレートリミットウィンドウ内に残っているリクエスト数。 |
X-RateLimit-Reset |
現在のレートリミットウィンドウがリセットされる時刻(UTCエポック秒)。 |
この情報は、Brazeダッシュボードではなく、APIリクエストのレスポンスヘッダーに意図的に含まれています。これにより、APIとのやり取り中にシステムがリアルタイムで適切に対応できます。例えば、X-RateLimit-Remainingの値が一定のしきい値を下回った場合、すべてのトランザクションメールが確実に送信されるよう、送信速度を落とすことができます。または、値がゼロに達した場合は、X-RateLimit-Resetで指定された時刻が経過するまですべての送信を一時停止することもできます。

HTTPヘッダーはすべて小文字で返されます。この動作は、すべてのヘッダーフィールド名を小文字にすることを義務付けるHTTP/2プロトコルに準拠しています。これは、ヘッダー名が大文字小文字を区別しないものの、さまざまな大文字表記で記述されることが一般的だったHTTP/1.Xとは異なります。
APIリミットについてご質問がある場合は、カスタマーサクセスマネージャーに連絡するか、サポートチケットを送信してください。

エンドポイント間の最適な遅延

エラーを最小限に抑えるため、連続するエンドポイント呼び出しの間に5分間の遅延を設けることをお勧めします。
Braze APIに連続して呼び出しを行う場合、エンドポイント間の最適な遅延を理解することが重要です。エンドポイントが他のエンドポイントの処理完了に依存している場合、早すぎる呼び出しはエラーを引き起こす可能性があります。例えば、/user/alias/newエンドポイントを通じてユーザーにエイリアスを割り当て、その後/users/trackエンドポイントを通じてそのエイリアスにカスタムイベントを送信する場合、どのくらい待つ必要があるでしょうか。
通常の条件下では、データの結果整合性が発生するまでの時間は10〜100ミリ秒(1/10秒)です。ただし、整合性の確保により長い時間がかかる場合もあるため、エラーの可能性を最小限に抑えるために、後続の呼び出し間に5分間の遅延を設けることをお勧めします。
ペイロードサイズの制限
Braze APIリクエストには、レート制限とは別にペイロードサイズの制限があります。ほとんどのエンドポイントでは、リクエストボディのサイズは最大4 MBまで受け付けられます。リクエストが該当する制限を超えた場合、Brazeはエンドポイントに応じて HTTP 413 Request Entity Too Large または HTTP 400 Bad Request で拒否することがあります。
/users/track/bulk エンドポイントには2 MBのペイロード制限があり、リクエストボディがこの制限を超えた場合は HTTP 400 を返します。エンドポイント固有の制限やエラー処理については、ユーザーデータエンドポイントを参照してください。
レート制限のリセット
レート制限は、ローリングウィンドウではなく、時計の正時にリセットされます。たとえば、1時間あたりの制限が250,000リクエストの場合、午後10時00分から午後10時59分の間に50,000リクエストを送信し、さらに午後11時00分から午後11時59分の間に250,000リクエストを送信できます。これは、カウンターが毎時の正時にリセットされるためです。