レート制限
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 は 1 回の API 呼び出しでできるだけ多くのデータを受け取れるため、API 呼び出しの回数を抑えられます。Braze にとっても、1 回ずつ呼び出しを処理するより、まとめて処理するほうが効率的です。たとえば、バッチ処理された 1,000 件の API 呼び出しは、75,000 件の個別呼び出しよりも少ないリソースで処理できます。1 時間あたり 75,000 件を超える呼び出しが必要になる可能性があるアプリケーションでは、バッチ処理が特に重要です。

REST APIのレート制限の引き上げは、API のバッチ処理機能を活用している顧客を対象に、必要性に応じて検討されます。
ユーザーの作成および更新エンドポイントへのリクエストのバッチ処理
各 /users/track リクエストには、attributes、events、purchases を合わせて最大 75 個のオブジェクトを含めることができます。各オブジェクトで 1 人のユーザーを更新できます。1 つのユーザープロファイルを複数のオブジェクトで更新することも可能です。
従来のレート制限
従来のレート制限が適用される顧客の場合、各配列 (attributes、events、purchases) にそれぞれ最大 75 個のオブジェクトを含めることができ、1 リクエストあたり合計で最大 225 個のオブジェクトになります。
/users/track のレート制限の詳細については、POST: ユーザーの作成および更新を参照してください。
このエンドポイントへのリクエストは、通常、次の順序で処理が開始されます。
- 属性
- イベント
- 購入
メッセージングエンドポイントへのリクエストのバッチ処理
メッセージングエンドポイントへの 1 回のリクエストで、次のいずれかに到達できます。
- 最大 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]"]
}
]
}
レート制限のモニタリング
標準の REST API レート制限の対象となる Braze へのすべての API リクエストは、レスポンスヘッダーで次の情報を返します。
| ヘッダー名 | 説明 |
|---|---|
X-RateLimit-Limit |
指定された間隔内で実行できるリクエストの最大数 (レート制限)。 |
X-RateLimit-Remaining |
現在のレート制限ウィンドウで残っているリクエスト数。 |
X-RateLimit-Reset |
現在のレート制限ウィンドウがリセットされる時刻 (UTC エポック秒)。 |
トランザクションメールエンドポイントなど、標準の REST API レート制限の対象外となるエンドポイントは、外部 API レート制限全体にカウントされず、これらのヘッダーも返しません。
この情報は、Braze ダッシュボードではなく、API リクエストに対するレスポンスのヘッダーに意図的に含まれています。これにより、API とやり取りする際に、システムがリアルタイムでより適切に対応できます。たとえば、X-RateLimit-Remaining の値が特定のしきい値を下回った場合は、リクエストの頻度を落とすとよいでしょう。また、値がゼロになった場合は、X-RateLimit-Reset で指定された時刻が経過するまでリクエストを一時停止するとよいでしょう。
429 Too Many Requests レスポンスのトラブルシューティング
インテグレーションがレート制限を超えたためにエンドポイントが HTTP 429 Too Many Requests レスポンスを返した場合は、レスポンスヘッダーを使用して再試行のタイミングを判断します。
- リクエストを一時停止します。レスポンスに
X-RateLimit-Retry-Afterが含まれている場合は、指定された秒数だけ待機します。含まれていない場合は、X-RateLimit-Resetの UTC エポックタイムスタンプまで待機します。 - より低いレートでリクエストを再開します。各レート制限ウィンドウ内で送信するリクエストを減らし、再び
429レスポンスが発生する可能性を低減します。 - サポートされている場合は、複数の更新を 1 つのリクエストにまとめます。
/users/trackについては、アカウントのリクエストオブジェクト制限に従ってください。 - API 使用状況ダッシュボードを使用して、リクエストの急増や
429レスポンスの傾向を特定します。
エンドポイントごとのデフォルトについては、リクエストタイプ別のレート制限を参照してください。

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

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

エラーを最小限に抑えるため、連続するエンドポイント呼び出しの間には 5 分間の遅延を設けることをお勧めします。
Braze API を連続して呼び出す場合、エンドポイント間の最適な遅延を理解することが非常に重要です。エンドポイントが他のエンドポイントの処理の成功に依存している場合に問題が発生し、呼び出しが早すぎるとエラーが発生する可能性があります。たとえば、/user/alias/new エンドポイントを使用してユーザーにエイリアスを割り当て、次にそのエイリアスを使用して /users/track エンドポイントからカスタムイベントを送信する場合、どのくらい待機すればよいでしょうか。
通常の状況では、データの結果整合性が確保されるまでの時間は 10~100ms (10 分の 1 秒) です。ただし、整合性の確保にそれ以上の時間がかかる場合もあるため、エラーの可能性を最小限に抑えるために、後続の呼び出しを行う間に 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リクエストの場合、カウンターは毎時0分にリセットされるため、午後10:00から午後10:59の間に50,000リクエストを送信し、さらに午後11:00から午後11:59の間に250,000リクエストを送信できます。