データオブジェクトエンドポイント
これらのエンドポイントを使用して、データオブジェクトタイプの一覧取得、データオブジェクトレコードの管理、オブジェクトとユーザーのリレーションシップの管理を行います。

データオブジェクトは一般提供されていますが、これらのエンドポイントを使用する前に、ワークスペースでアカウントのプロビジョニングを完了しておく必要があります。プロビジョニングをリクエストするには、データ設定 > アカウントに移動し、アンケートに回答してください。プロビジョニングが完了すると、データオブジェクトの API キー権限が設定 > API キーに表示されます。詳細については、アカウントを有効にするを参照してください。
タイプエンドポイント
オブジェクトエンドポイント
オブジェクトリレーションシップエンドポイント
ユーザーリレーションシップエンドポイント
ベース URL と認証
ワークスペースの REST エンドポイントを使用し、Authorization: Bearer YOUR_REST_API_KEY を送信します。このセクションでは、データオブジェクトのエンドポイントがホストされている場所と、リクエストの認証方法について説明します。
- エンドポイントのホストについては、Braze API の概要を参照してください。
- すべてのリクエストペイロードとレスポンスペイロードは JSON です。
- リクエストの対象範囲は、API キーを所有するワークスペースに限定されます。
- キーに IP 許可リストが設定されている場合、許可リストにない IP アドレスからのリクエストには
403が返されます。
API キーの権限
このセクションでは、各エンドポイントに必要な権限を対応付けて示します。API キーのスコープを安全に設定する際に活用してください。
| 権限 | エンドポイントグループ |
|---|---|
data_objects.read |
タイプとオブジェクトの読み取り、およびオブジェクトの関係の読み取り |
data_objects.create |
オブジェクトの作成 |
data_objects.update |
オブジェクトの置換と更新 |
data_objects.delete |
オブジェクトの削除 |
data_objects.user_relationships.read |
ユーザーリレーションシップの読み取り |
data_objects.user_relationships.create |
ユーザーリレーションシップの作成 |
data_objects.user_relationships.update |
ユーザーリレーションシップの置換と更新 |
data_objects.user_relationships.delete |
ユーザーリレーションシップの削除 |
data_objects.object_relationships.create |
オブジェクトの関係の作成 |
data_objects.object_relationships.update |
オブジェクトの関係の置換と更新 |
data_objects.object_relationships.delete |
オブジェクトの関係の削除 |

オブジェクトの関係の読み取りには data_objects.read を使用します。data_objects.object_relationships.read という権限はありません。
レート制限
このセクションでは、読み取りトラフィックと書き込みトラフィックの両方について、デフォルトのリクエストクォータとレスポンスヘッダーを説明します。
| バケット | デフォルトの制限 |
|---|---|
| データオブジェクトの読み取り | 1分あたり1000リクエスト |
| データオブジェクトの書き込み | 1分あたり1000リクエスト |
すべてのレスポンスには、X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset が含まれます。
スロットリングされたリクエストに対して、Braze は 429 と、id および message を含むエラーペイロードを返します。
{
"errors": [
{
"id": "rate-limit-exceeded",
"message": "You have exceeded your limit of 1000 requests per minute."
}
]
}
製品の制限
このセクションでは、Braze がデータオブジェクトに適用する制限と、制限に達した場合の動作について説明します。これらの制限がアカウントレコードにどのように適用されるかについては、アカウントオブジェクトの制限を参照してください。
件数の制限
特に記載がない限り、これらの制限は会社全体に適用されます。これらは初期の上限値です。より多くのレコードやより高い制限が必要な場合は、Braze のアカウントチームに連絡して引き上げをリクエストしてください。
| 制限 | デフォルト値 |
|---|---|
| 会社あたりのデータオブジェクトレコード数 (すべてのワークスペースの合計) | 50,000 |
| データオブジェクトタイプあたりのフィールド数 | 500 |
| 1人のユーザーにリンクされるデータオブジェクト数 | 1,000 |
| 1つのデータオブジェクトにリンクされるユーザー数 | 10,000 |
| 1つのデータオブジェクトのオブジェクトリレーションシップ数 | 1,000 |
フィールドと値の制限
これらの制限はすべての会社で固定されています。
| 制限 | 値 |
|---|---|
| リレーションシップタイプあたりのフィールド数 (ユーザーリレーションシップとオブジェクトリレーションシップ) | 25。リレーションシップのフィールドは、データオブジェクトタイプあたりのフィールド数の制限にはカウントされません。 |
| 属性値の長さ | 255文字 |
object_id の長さと形式 |
250文字。英字、数字、ハイフン、アンダースコアのみ使用できます。 |
| フィールド名の長さと形式 | 250文字。英字、数字、アンダースコアのみ使用でき、アンダースコアで始めることはできません。 |
| 予約フィールド名 | id、external_id、object_id、display_name はカスタムフィールド名として使用できません。 |
制限に達した場合の動作
件数の制限を超えるリクエストは、制限を特定するエラー id とともに 422 を返します。
{
"errors": [
{
"id": "data-object-record-limit-exceeded",
"message": "This company has reached its data object record limit"
}
]
}
| 制限 | エラー id |
|---|---|
| 会社あたりのデータオブジェクトレコード数 | data-object-record-limit-exceeded |
| データオブジェクトタイプあたりのフィールド数 | data-object-field-limit-exceeded |
| リレーションシップタイプあたりのフィールド数 | data-object-field-limit-exceeded |
| 1人のユーザーにリンクされるデータオブジェクト数 | data-objects-per-user-limit-exceeded |
| 1つのデータオブジェクトにリンクされるユーザー数 | users-per-data-object-limit-exceeded |
| 1つのデータオブジェクトのオブジェクトリレーションシップ数 | data-object-relationship-limit-exceeded |
既存のレコードとリレーションシップはそのまま保持され、制限を超えるリクエストのみが拒否されます。制限内に空きを作るには、不要になったレコードを削除するか、使用しなくなったリレーションシップを削除してください。件数の制限を引き上げるには、Braze のアカウントチームに連絡してください。
object_id や属性値が長すぎるなど、検証に失敗したリクエストは 400 を返します。レート制限を超えたリクエストは 429 を返します。
コアコンセプト
このセクションでは、すべてのデータオブジェクトエンドポイントで使用される主要な識別子について説明します。
type_name:データオブジェクトタイプのマシン名。ワークスペース内で一意です。object_id:オブジェクトの識別子。タイプ内で一意です。braze_id:ユーザーリレーションシップエンドポイントで使用される Braze のユーザー ID。attributes:フィールド名をキーとするオブジェクトまたはリレーションシップのデータ。設定されたスキーマに照らして検証されます。
リレーションシップの仕組み
このセクションでは、エンドポイントのリファレンスページを使用する前に知っておくべき、リレーションシップタイプ、リレーションシップエッジ、anchor の動作について説明します。
リレーションシップモデルの概要
この図では、タイプ、レコード、リレーションシップがどのように組み合わさるか、またそれらをリンクすることで Braze で何ができるようになるかを確認できます。タイプはダッシュボードで定義し、レコードとレコード間のリンクはこれらのエンドポイントを通じて書き込みます。
%%{init: {"flowchart": {"wrappingWidth": 400}} }%%
flowchart LR
subgraph define["Set up in the dashboard"]
objtype["Data object types define<br/>the fields a record has"]
reltype["Relationship types determine<br/>which links are allowed"]
end
subgraph write["Write with the API"]
person["A person you<br/>send messages to"]
record["A business record<br/>they belong to"]
related["Another record<br/>connected to it"]
person -- "A user relationship links<br/>a person to a record" --> record
record -- "An object relationship links<br/>one record to another" --> related
end
subgraph unlock["What it unlocks"]
segment["Segment people by the<br/>records they belong to"]
liquid["Personalize messages with<br/>data from those records"]
end
define -- "decides what you<br/>are allowed to link" --> write
write -- "makes these<br/>possible" --> unlock
タイプとエッジは別のものです
- リレーションシップタイプは、どのリンクが有効かを定義するもので、ダッシュボードで管理します。
- リレーションシップエッジはレコード間の実際のリンクで、これらの API エンドポイントを通じて作成、更新、削除します。
- リレーションシップを書き込む前に、以下を使用して有効な
rel_kindの値を一覧取得してください。GET /data_objects/types/{type_name}/user_relationship_typesGET /data_objects/types/{type_name}/object_relationship_types
オブジェクトリレーションシップで related_type_name が必要な理由
rel_kindは、すべてのオブジェクトタイプの組み合わせにわたってグローバルに一意ではありません。たとえば、rel_kindは、あるオブジェクトタイプの組み合わせではsubaccountになり、別の組み合わせではpartner_accountになることがあります。- そのため、オブジェクトリレーションシップの書き込みでは、関連付けにおけるもう一方のオブジェクトタイプとともに、意図したリレーションシップタイプを識別するために
rel_kindとrelated_type_nameの両方が必要です。 related_type_nameがそのrel_kindのリレーションシップタイプと一致しない場合、リクエストは400を返します。
anchor はリレーションシップの方向を制御します
オブジェクトリレーションシップには方向があります。URL のオブジェクトは anchor に基づいて解釈されます。
anchor |
URL オブジェクトの役割 | レスポンス内の関連オブジェクトのキー |
|---|---|---|
source (デフォルト) |
起点側 (送信エッジ) | to_data_object |
target |
終点側 (受信エッジ) | from_data_object |
反対側の anchor の視点から同じエッジを作成しても、対象となるのは1つの基盤となるリレーションシップです。同じエッジに対する2回目の作成呼び出しは 409 (duplicate-object-relationship) を返します。
ユーザーリレーションシップのパスの非対称性
ユーザーリレーションシップの読み取りと書き込みでは、意図的に異なるエンドポイントパスを使用します。
- 読み取り:
GET /data_objects/objects/{type_name}/{object_id}/user_relationships - 書き込み:
POST|PUT|PATCH|DELETE /data_objects/objects/{type_name}/{object_id}/users
リレーションシップの属性はオブジェクトの属性とは別のものです
- リレーションシップのエンドポイントは、エッジレベルの属性をトップレベルの
attributesフィールドで返します。 - オブジェクトの属性は、
to_data_objectまたはfrom_data_objectの下にネストされたままです。 PUTはリレーションシップのattributesを置き換え、PATCHはリレーションシップのattributesをマージします。
具体例
この例は、一般的なアカウントのワークフローを示しています。
account/acct-123を作成します。- 子アカウントとして
account/acct-456を作成します。 rel_kind: account_userを使用して、ユーザーをacct-123にリンクします。rel_kind: subaccountを使用して、acct-123をacct-456にリンクします。
リンクを読み取るには、以下を使用します。
- リンクされたユーザーの場合は
GET /data_objects/objects/account/acct-123/user_relationships - 送信オブジェクトリンクの場合は
GET /data_objects/objects/account/acct-123/object_relationships - 受信オブジェクトリンクの場合は
GET /data_objects/objects/account/acct-456/object_relationships?anchor=target

オブジェクトリレーションシップおよびユーザーリレーションシップの DELETE エンドポイントには、JSON リクエストボディが必要です。
ページネーションとデータの鮮度
このセクションでは、一覧取得時のページネーションの動作と、書き込み後にデータが参照可能になるまでの想定タイミングについて説明します。
- 一覧取得エンドポイントは
limitとoffsetをサポートしています。 limitのデフォルトは100で、1から250の範囲に制限されます。offsetのデフォルトは0で、負の値は0として扱われます。- 書き込みは、読み取りと Liquid パーソナライゼーションに即座に反映されます。
- 計算フィルターは1時間ごとに更新されるため、データオブジェクトに基づくセグメントのメンバーシップは最大1時間遅れて反映される場合があります。
エラーの動作
このセクションでは、データオブジェクトエンドポイント全体で使用されるステータスとエラーレスポンスのパターンをまとめています。
404、409、422、429は、idとmessageを含むerrors配列を返します。400、401、403は、単一のerror文字列を返します。422は、リクエストが製品の制限を超えることを意味します。デフォルトの制限値は、会社の契約によって異なります。