コンテンツにスキップ

APIの概要

このリファレンス記事では、一般的な用語、REST APIキーや権限の概要、それらを安全に保つ方法など、APIの基本について説明します。

Braze REST APIコレクション

コレクション 目的
カタログ Brazeキャンペーンで参照するカタログおよびカタログアイテムを作成・管理します。
クラウドデータ取り込み データウェアハウスの連携と同期を管理します。
メールリストとアドレス Brazeとメールシステム間の双方向同期を設定・管理します。
エクスポート キャンペーン、キャンバス、KPIsなどのさまざまな詳細にアクセスしてエクスポートします。
メディアライブラリ Braze内のアセットを管理します。
メッセージ キャンペーンとキャンバスのスケジュール、送信、管理を行います。
ユーザー設定センター ユーザー設定センターを構築し、そのスタイルを更新します。
SCIM クラウドベースのアプリケーションやサービスでユーザーIDを管理します。
SMS 購読グループ内のユーザーの電話番号を管理します。
購読グループ Brazeダッシュボードに保存されているSMSとメールの両方の購読グループを一覧表示・更新します。
テンプレート メールメッセージングとContent Blocksのテンプレートを作成・更新します。
ユーザーデータ ユーザーの識別、トラッキング、管理を行います。

API定義

以下は、Braze REST APIドキュメントで使用される用語の概要です。

エンドポイント

Brazeは、ダッシュボードとRESTエンドポイント用に複数の異なるインスタンスを管理しています。アカウントがプロビジョニングされると、以下のURLのいずれかにログインします。プロビジョニングされたインスタンスに基づいて、正しいRESTエンドポイントを使用してください。不明な場合は、サポートチケットを開くか、以下の表を使用して、使用しているダッシュボードのURLを正しいRESTエンドポイントに照合してください。

BrazeでRESTエンドポイントを確認するには:

  1. Brazeにログインし、設定 > APIと識別子 > APIキーに移動します。
  2. 既存のAPIキーを選択するか、APIキーを作成を選択して新しいキーを作成します。
  3. このタブに表示されるRESTエンドポイントをコピーし、APIリクエストにそのエンドポイントを使用します。
インスタンス URL RESTエンドポイント SDKエンドポイント
US-01 https://dashboard-01.braze.com https://rest.iad-01.braze.com sdk.iad-01.braze.com
US-02 https://dashboard-02.braze.com https://rest.iad-02.braze.com sdk.iad-02.braze.com
US-03 https://dashboard-03.braze.com https://rest.iad-03.braze.com sdk.iad-03.braze.com
US-04 https://dashboard-04.braze.com https://rest.iad-04.braze.com sdk.iad-04.braze.com
US-05 https://dashboard-05.braze.com https://rest.iad-05.braze.com sdk.iad-05.braze.com
US-06 https://dashboard-06.braze.com https://rest.iad-06.braze.com sdk.iad-06.braze.com
US-07 https://dashboard-07.braze.com https://rest.iad-07.braze.com sdk.iad-07.braze.com
US-08 https://dashboard-08.braze.com https://rest.iad-08.braze.com sdk.iad-08.braze.com
US-10 https://dashboard.us-10.braze.com https://rest.us-10.braze.com sdk.us-10.braze.com
EU-01 https://dashboard-01.braze.eu https://rest.fra-01.braze.eu sdk.fra-01.braze.eu
EU-02 https://dashboard-02.braze.eu https://rest.fra-02.braze.eu sdk.fra-02.braze.eu
AU-01 https://dashboard.au-01.braze.com https://rest.au-01.braze.com sdk.au-01.braze.com
ID-01 https://dashboard.id-01.braze.com https://rest.id-01.braze.com sdk.id-01.braze.com
JP-01 https://dashboard.jp-01.braze.com https://rest.jp-01.braze.com sdk.jp-01.braze.com
KR-01 https://dashboard.kr-01.braze.com https://rest.kr-01.braze.com sdk.kr-01.braze.com

APIの制限

ほとんどのAPIについて、Brazeでは1時間あたり250,000リクエストのデフォルトレート制限を設けています。ただし、特定のリクエストタイプには、顧客ベース全体にわたる大量のデータをより適切に処理するために、独自のレート制限が適用されます。詳細については、APIレート制限を参照してください。

ユーザー ID

  • external ID: external_idは、データを送信する対象のユーザーを一意に識別する識別子です。この識別子は、同じユーザーに対して複数のプロファイルが作成されることを避けるために、Braze SDKで設定した識別子と同じである必要があります。
  • Braze ユーザー ID: braze_idは、Brazeが設定する一意のユーザー識別子です。この識別子を使用して、external_idに加えてREST APIを通じてユーザーを削除できます。

詳細については、プラットフォームに基づいて以下の記事を参照してください:iOS、Android、およびWeb。

REST APIキーについて

REST Application Programming Interface キー(REST APIキー)は、APIに渡してAPI呼び出しを認証し、呼び出し元のアプリケーションやユーザーを特定するための一意のコードです。APIへのアクセスは、会社のREST APIエンドポイントへのHTTPS Webリクエストを使用して行います。REST APIキーはアプリ識別子キーと連携して、データのトラッキング、アクセス、送信、エクスポート、分析を行い、すべてが円滑に動作していることを確認します。

ワークスペースとAPIキーはBrazeにおいて密接に関連しています。ワークスペースは、同じアプリケーションの複数プラットフォームのバージョンを格納するように設計されています。多くの顧客は、同じプラットフォーム上のアプリケーションの無料版とプレミアム版を格納するためにもワークスペースを使用しています。お気づきのとおり、これらのワークスペースもREST APIを利用しており、それぞれ独自のREST APIキーを持っています。これらのキーは、API上の特定のエンドポイントへのアクセスを含むように個別にスコープ設定できます。APIへの各呼び出しには、対象のエンドポイントへのアクセス権を持つキーを含める必要があります。

REST APIキーとワークスペースAPIキーの両方をapi_keyと呼びます。api_keyは各リクエストにリクエストヘッダーとして含まれ、REST APIを使用するための認証キーとして機能します。これらのREST APIは、ユーザーのトラッキング、メッセージの送信、ユーザーデータのエクスポートなどに使用されます。新しいREST APIキーを作成する際には、特定のエンドポイントへのアクセス権を付与する必要があります。APIキーに特定の権限を割り当てることで、APIキーが認証できる呼び出しを正確に制限できます。

APIキータブのREST APIキーパネル。

REST APIキーの作成

新しいREST APIキーを作成するには、以下の手順に従います。

  1. 設定 > APIと識別子に移動します。
  2. APIキーを作成を選択します。
  3. 新しいキーに一目でわかる名前を付けます。
  4. 新しいキーの許可リストIPアドレスとサブネットを指定します。
  5. 新しいキーに関連付ける権限を選択します。

REST APIキーの権限

APIキーの権限は、ユーザーまたはグループに割り当てて、特定のAPI呼び出しへのアクセスを制限できる権限です。APIキーの権限一覧を表示するには、設定 > APIと識別子に移動し、APIキーを選択します。

権限 エンドポイント 説明
users.track /users/track ユーザー属性、カスタムイベント、購入を記録します。
users.track.status /users/track/status 非同期/users/trackリクエストのグループの処理ステータスを取得します。
users.delete /users/delete 任意のユーザーを削除します。
users.alias.new /users/alias/new 既存のユーザーに新しいエイリアスを作成します。
users.identify /users/identify エイリアスのみのユーザーをexternal IDで識別します。
users.export.ids /users/export/ids ユーザーIDでユーザープロファイル情報を照会します。
users.export.segment /users/export/segment セグメントでユーザープロファイル情報を照会します。
users.merge /users/merge 2人の既存ユーザーを統合します。
users.external_ids.rename /users/external_ids/rename 既存のユーザーのexternal IDを変更します。
users.external_ids.remove /users/external_ids/remove 既存のユーザーのexternal IDを削除します。
users.alias.update /users/alias/update 既存のユーザーのエイリアスを更新します。
users.export.global_control_group /users/export/global_control_group グローバルコントロールグループのユーザープロファイル情報を照会します。
権限 エンドポイント 説明
email.unsubscribe /email/unsubscribes 購読解除したメールアドレスを照会します。
email.status /email/status メールアドレスのステータスを変更します。
email.hard_bounces /email/hard_bounces ハードバウンスしたメールアドレスを照会します。
email.bounce.remove /email/bounce/remove ハードバウンスリストからメールアドレスを削除します。
email.spam.remove /email/spam/remove スパムリストからメールアドレスを削除します。
email.blacklist /email/blacklist メールアドレスをブロックリストに登録します。
権限 エンドポイント 説明
messages.send /messages/send 特定のユーザーに即時メッセージを送信します。
messages.schedule.create /messages/schedule/create 特定の時間に送信するメッセージをスケジュールします。
messages.schedule.update /messages/schedule/update スケジュールされたメッセージを更新します。
messages.schedule.delete /messages/schedule/delete スケジュールされたメッセージを削除します。
messages.schedule_broadcasts /messages/scheduled_broadcasts スケジュールされたすべてのブロードキャストメッセージを照会します。
messages.live_activity.update /messages/live_activity/update iOSのLive Activityを更新します。
権限 エンドポイント 説明
campaigns.trigger.send /campaigns/trigger/send 既存のキャンペーンの送信をトリガーします。
campaigns.trigger.schedule.create /campaigns/trigger/schedule/create APIトリガー配信でキャンペーンの送信をスケジュールします。
campaigns.trigger.schedule.update /campaigns/trigger/schedule/update APIトリガー配信でスケジュールされたキャンペーンを更新します。
campaigns.trigger.schedule.delete /campaigns/trigger/schedule/delete APIトリガー配信でスケジュールされたキャンペーンを削除します。
campaigns.list /campaigns/list キャンペーンの一覧を照会します。
campaigns.data_series /campaigns/data_series 期間にわたるキャンペーン分析を照会します。
campaigns.details /campaigns/details 特定のキャンペーンの詳細を照会します。
sends.data_series /sends/data_series 期間にわたるメッセージ送信の分析を照会します。
sends.id.create /sends/id/create メッセージ一斉送信のトラッキング用に送信IDを作成します。
campaigns.url_info.details /campaigns/url_info/details キャンペーン内の特定のメッセージバリエーションのURL詳細を照会します。この権限はリンクエイリアスが有効になっているワークスペースでのみ利用できます。この権限がワークスペースで利用できない場合は、Brazeアカウントマネージャーにお問い合わせください。
transactional.send /transactional/v1/campaigns/{campaign_id}/send トランザクションメッセージングエンドポイントを使用してトランザクションメッセージを送信できるようにします。
権限 エンドポイント 説明
canvas.trigger.send /canvas/trigger/send 既存のキャンバスの送信をトリガーします。
canvas.trigger.schedule.create /canvas/trigger/schedule/create APIトリガー配信でキャンバスの送信をスケジュールします。
canvas.trigger.schedule.update /canvas/trigger/schedule/update APIトリガー配信でスケジュールされたキャンバスを更新します。
canvas.trigger.schedule.delete /canvas/trigger/schedule/delete APIトリガー配信でスケジュールされたキャンバスを削除します。
canvas.list /canvas/list キャンバスの一覧を照会します。
canvas.data_series /canvas/data_series 期間にわたるキャンバス分析を照会します。
canvas.details /canvas/details 特定のキャンバスの詳細を照会します。
canvas.data_summary /canvas/data_summary 期間にわたるキャンバス分析のロールアップを照会します。
canvas.url_info.details /canvas/url_info/details キャンバスステップ内の特定のメッセージバリエーションのURL詳細を照会します。この権限はリンクエイリアスが有効になっているワークスペースでのみ利用できます。この権限がワークスペースで利用できない場合は、Brazeアカウントマネージャーにお問い合わせください。
権限 エンドポイント 説明
segments.list /segments/list セグメントの一覧を照会します。
segments.data_series /segments/data_series 期間にわたるセグメント分析を照会します。
segments.details /segments/details 特定のセグメントの詳細を照会します。
権限 エンドポイント 説明
purchases.product_list /purchases/product_list アプリで購入された製品の一覧を照会します。
purchases.revenue_series /purchases/revenue_series 期間にわたるアプリでの1日あたりの合計支出額を照会します。
purchases.quantity_series /purchases/quantity_series 期間にわたるアプリでの1日あたりの購入総数を照会します。
権限 エンドポイント 説明
events.list /events/list カスタムイベントの一覧を照会します。
events.data_series /events/data_series 期間にわたるカスタムイベントの発生回数を照会します。
権限 エンドポイント 説明
sessions.data_series /sessions/data_series 期間にわたる1日あたりのセッション数を照会します。
権限 エンドポイント 説明
kpi.dau.data_series /kpi/dau/data_series 期間にわたる1日あたりのユニークアクティブユーザー数を照会します。
kpi.mau.data_series /kpi/mau/data_series 期間にわたる30日間のローリングウィンドウでのユニークアクティブユーザー総数を照会します。
kpi.new_users.data_series /kpi/new_users/data_series 期間にわたる1日あたりの新規ユーザー数を照会します。
kpi.uninstalls.data_series /kpi/uninstalls/data_series 期間にわたる1日あたりのアプリアンインストール数を照会します。
権限 エンドポイント 説明
templates.email.create /templates/email/create ダッシュボードに新しいメールテンプレートを作成します。
templates.email.info /templates/email/info 特定のテンプレートの情報を照会します。
templates.email.list /templates/email/list メールテンプレートの一覧を照会します。
templates.email.update /templates/email/update ダッシュボードに保存されたメールテンプレートを更新します。
権限 説明
sso.saml.login IDプロバイダー主導のログインを設定します。詳細については、サービスプロバイダー(SP)主導のログインを参照してください。
権限 エンドポイント 説明
content_blocks.info /content_blocks/info 特定のテンプレートの情報を照会します。
content_blocks.list /content_blocks/list Content Blocksの一覧を照会します。
content_blocks.create /content_blocks/create ダッシュボードに新しいContent Blockを作成します。
content_blocks.update /content_blocks_update ダッシュボード上の既存のContent Blockを更新します。
権限 エンドポイント 説明
preference_center.get /preference_center/v1/{preferenceCenterExternalId} ユーザー設定センターを取得します。
preference_center.list /preference_center/v1/list ユーザー設定センターの一覧を取得します。
preference_center.update /preference_center/v1

/preference_center/v1/{preferenceCenterExternalID}
ユーザー設定センターを作成または更新します。
preference_center.user.get /preference_center/v1/{preferenceCenterExternalId}/url/{userId} ユーザーのユーザー設定センターリンクを取得します。
権限 エンドポイント 説明
subscription.status.set /subscription/status/set 購読グループのステータスを設定します。
subscription.status.get /subscription/status/get 購読グループのステータスを取得します。
subscription.groups.get /subscription/user/status 特定のユーザーが明示的に購読および購読解除している購読グループのステータスを取得します。
権限 エンドポイント 説明
sms.invalid_phone_numbers /sms/invalid_phone_numbers 無効な電話番号を照会します。
sms.invalid_phone_numbers.remove /sms/invalid_phone_numbers/remove ユーザーから無効な電話番号フラグを削除します。
権限 エンドポイント 説明
catalogs.add_items /catalogs/{catalog_name}/items 既存のカタログに複数のアイテムを追加します。
catalogs.update_items /catalogs/{catalog_name}/items 既存のカタログ内の複数のアイテムを更新します。
catalogs.delete_items /catalogs/{catalog_name}/items 既存のカタログから複数のアイテムを削除します。
catalogs.get_item /catalogs/{catalog_name}/items/{item_id} 既存のカタログから1つのアイテムを取得します。
catalogs.update_item /catalogs/{catalog_name}/items/{item_id} 既存のカタログ内の1つのアイテムを更新します。
catalogs.create_item /catalogs/{catalog_name}/items/{item_id} 既存のカタログに1つのアイテムを作成します。
catalogs.delete_item /catalogs/{catalog_name}/items/{item_id} 既存のカタログから1つのアイテムを削除します。
catalogs.replace_item /catalogs/{catalog_name}/items/{item_id} 既存のカタログ内の1つのアイテムを置き換えます。
catalogs.create /catalogs カタログを作成します。
catalogs.get /catalogs カタログの一覧を取得します。
catalogs.delete /catalogs/{catalog_name} カタログを削除します。
catalogs.get_items /catalogs/{catalog_name}/items 既存のカタログからアイテムのプレビューを取得します。
catalogs.replace_items /catalogs/{catalog_name}/items 既存のカタログ内のアイテムを置き換えます。
権限 エンドポイント 説明
sdk_authentication.create /app_group/sdk_authentication/create アプリの新しいSDK認証キーを作成します。
sdk_authentication.primary /app_group/sdk_authentication/primary SDK認証キーをアプリのプライマリキーとしてマークします。
sdk_authentication.delete /app_group/sdk_authentication/delete アプリのSDK認証キーを削除します。
sdk_authentication.keys /app_group/sdk_authentication/keys アプリのすべてのSDK認証キーを取得します。

REST APIキーの管理

既存のREST APIキーの詳細を表示したり削除したりするには、設定 > APIと識別子 > APIキータブに移動します。REST APIキーは作成後に編集できないことに注意してください。

APIキータブには、各キーについて以下の情報が表示されます。

フィールド 説明
APIキー名 作成時にキーに付けられた名前です。
識別子 APIキーです。
作成者 キーを作成したユーザーのメールアドレスです。2023年6月以前に作成されたキーの場合、このフィールドは「N/A」と表示されます。
作成日 このキーが作成された日付です。
最終使用日 このキーが最後に使用された日付です。一度も使用されていないキーの場合、このフィールドは「N/A」と表示されます。

APIキーの詳細を表示するには、キーにカーソルを合わせて 表示を選択します。これには、このキーが持つすべての権限、ホワイトリストに登録されたIP(ある場合)、およびこのキーがBraze IPホワイトリストにオプトインしているかどうかが含まれます。

BrazeダッシュボードのAPIキー権限の一覧。

ユーザーを削除する際、Brazeはそのユーザーが作成した関連APIキーを削除しないことに注意してください。キーを削除するには、キーにカーソルを合わせて 削除を選択します。

「最終使用日」という名前のAPIキーにゴミ箱アイコンがハイライト表示され、「削除」と表示されています。

REST APIキーのセキュリティ

APIキーはAPI呼び出しの認証に使用されます。新しいREST APIキーを作成する際には、特定のエンドポイントへのアクセス権を付与する必要があります。APIキーに特定の権限を割り当てることで、APIキーが認証できる呼び出しを正確に制限できます。

REST APIキーは機密性の高いREST APIエンドポイントへのアクセスを許可する可能性があるため、これらのキーを安全に管理し、信頼できるパートナーとのみ共有してください。キーを公開してはいけません。たとえば、このキーをWebサイトからのAJAX呼び出しに使用したり、その他の公開された方法で公開したりしないでください。

優れたセキュリティプラクティスとして、ユーザーに業務の遂行に必要な最小限のアクセス権のみを割り当てるという原則があります。この原則はAPIキーにも適用でき、各キーに権限を割り当てることで実現できます。これらの権限により、アカウントのさまざまな領域に対するより優れたセキュリティとコントロールが得られます。

キーを誤って公開してしまった場合は、開発者コンソールから削除できます。このプロセスについてのサポートが必要な場合は、サポートチケットを作成してください。

REST APIキーとSDK APIキーのセキュリティ

REST APIキーとSDK APIキーには異なるセキュリティプロファイルがあります。

属性 REST APIキー SDK APIキー
目的 REST APIのサーバーサイド認証(メッセージ送信、データエクスポート、ユーザー管理) Braze SDKのクライアントサイド識別(データ取り込み、アプリ内メッセージ、Content Cards)
可視性 プライベートに保つ必要があります。クライアントサイドのコード、公開リポジトリ、またはユーザーアプリケーションに公開しないでください。 公開されることを前提に設計されています。アプリのバイナリに含まれたり、WebブラウザのJavaScriptで表示されたりします。Google AnalyticsのトラッキングIDと同様です。
公開された場合の対処法 直ちにキーを無効にし、設定 > APIと識別子 > APIキーで新しいキーを作成してください。公開されたREST APIキーは、メッセージの送信、ユーザーデータのエクスポート、またはアカウント設定の変更に使用される可能性があります。 対応は不要です。SDK APIキーはデータの取り込みとクライアントサイドのメッセージング(アプリ内メッセージやContent Cardsなど)の取得のみが可能です。ユーザーデータのエクスポート、ユーザーに代わってのメッセージ送信、キャンペーンの変更はできません。

API IP許可リスト

セキュリティを強化するために、特定のREST APIキーに対してREST APIリクエストの送信を許可するIPアドレスとサブネットのリストを指定できます。これは許可リスト(またはホワイトリスト)と呼ばれます。特定のIPアドレスまたはサブネットを許可するには、新しいREST APIキーの作成時にIPホワイトリストセクションに追加します。

APIキー作成時のIP許可リストオプション。

何も指定しない場合、すべてのIPアドレスからリクエストを送信できます。

API認証とセキュリティ

Bearerトークン認証

Brazeは、AuthorizationリクエストヘッダーにBearerトークンとして渡されるREST APIキーを使用してREST APIリクエストを認証します。リクエストを送信する際は、APIキーを以下の形式で含めてください。

Authorization: Bearer YOUR_REST_API_KEY

各リクエストに対して、Brazeはサーバー側で以下の検証チェックを実行します。

  1. トークンの有効性: REST APIキーがBrazeに存在し、アクティブであること(例えば、取り消しや無効化されていないこと)を確認します。
  2. トークンの認可: APIキーがリクエストされたエンドポイントに必要な権限を持っていることを確認します。

認証に失敗した場合、APIはHTTPステータスコードを含むエラーレスポンスを返します。例えば、401 Unauthorizedは無効または欠落しているキーを示し、403 Forbiddenはキーがリクエストされたエンドポイントに対する権限を持っていないことを示します。詳細については、APIエラーを参照してください。

リクエストヘッダーの大文字・小文字

HTTPヘッダー名は大文字・小文字を区別しないため、Authorizationとauthorizationは同等です。Content-Typeなどの他の標準リクエストヘッダーについても同様です。お使いのHTTPクライアントが生成する大文字・小文字をそのまま送信してください。

BrazeはBearerスキームの大文字・小文字の違い(Bearer、bearer、BEARER)もすべて受け入れます。REST APIキー自体は、発行されたとおりに正確に送信してください。

ネットワークレベルのセキュリティ

Brazeへの REST APIリクエストは、リクエストパス全体にわたってTransport Layer Security(TLS)暗号化によって保護されます。以下の表は、サーバーからBrazeへのAPIリクエストのネットワークフローを説明しています。

ステップ コンポーネント 説明
1 サーバー TLS暗号化を使用してHTTPSリクエストを開始します。
2 Cloudflare クライアントのTLS接続を終端し、ネットワークレベルの保護を適用します。
3 Network Load Balancer(NLB) アプリケーションインフラにパケットを転送します。NLBはレイヤー4で動作するため、レイヤー7のプロキシ処理は行いません。パケットはHTTPレベルの検査や変更なしに転送されます。
4 NGINXイングレス 内部TLS接続を終端し、リクエストをルーティングします。
5 Unicorn(アプリケーションサーバー) 認証済みリクエストを処理します。

TLS暗号化はチェーン内のすべてのリンクをカバーします。サーバーはTLSを介してCloudflareに接続し、CloudflareはNLBを経由してNGINXイングレスへの別のTLS接続を確立するため、APIキーとリクエストデータは転送中も暗号化された状態を維持します。

その他のリソース

Ruby クライアントライブラリ

Ruby を使用して Braze を実装している場合、Ruby クライアントライブラリを使用してデータインポート時間を短縮できます。クライアントライブラリとは、特定のプログラミング言語(この場合は Ruby)に固有のコードの集まりであり、API の使用を容易にします。

Ruby クライアントライブラリはユーザーエンドポイントをサポートしています。

New Stuff!