Datenobjekt-Endpunkte
Verwenden Sie diese Endpunkte, um Datenobjekttypen aufzulisten, Datenobjektdatensätze zu verwalten und Objekt- sowie Nutzer:innenbeziehungen zu verwalten.

Datenobjekte sind allgemein verfügbar, aber Ihr Workspace muss für Accounts bereitgestellt sein, bevor Sie diese Endpunkte verwenden können. Um die Bereitstellung anzufordern, gehen Sie zu Dateneinstellungen > Accounts und füllen Sie den Fragebogen aus. Nach Abschluss der Bereitstellung werden die API-Schlüssel-Berechtigungen für Datenobjekte unter Einstellungen > API-Schlüssel angezeigt. Weitere Informationen finden Sie unter Accounts aktivieren.
Typ-Endpunkte
Objekt-Endpunkte
Objektbeziehungs-Endpunkte
Nutzer:innenbeziehungs-Endpunkte
Basis-URL und Authentifizierung
Verwenden Sie den REST-Endpunkt Ihres Workspace und senden Sie Authorization: Bearer YOUR_REST_API_KEY. In diesem Abschnitt erfahren Sie, wo die Endpunkte für Datenobjekte gehostet werden und wie Anfragen authentifiziert werden.
- Informationen zu den Endpunkt-Hosts finden Sie in der Übersicht über die Braze API.
- Alle Anfrage- und Antwort-Payloads sind JSON.
- Anfragen sind auf den Workspace beschränkt, dem der API-Schlüssel gehört.
- Wenn für den Schlüssel eine IP-Allowlist konfiguriert ist, geben Anfragen von IP-Adressen, die nicht auf der Allowlist stehen,
403zurück.
API-Schlüssel-Berechtigungen
Dieser Abschnitt ordnet jedem Endpunkt die erforderliche Berechtigung zu, damit Sie den Umfang von API-Schlüsseln sicher festlegen können.
| Berechtigung | Endpunktgruppe |
|---|---|
data_objects.read |
Lesen von Typen und Objekten sowie Lesen von Objektbeziehungen |
data_objects.create |
Objekt erstellen |
data_objects.update |
Objekt ersetzen und aktualisieren |
data_objects.delete |
Objekt löschen |
data_objects.user_relationships.read |
Nutzer:innenbeziehungen lesen |
data_objects.user_relationships.create |
Nutzer:innenbeziehung erstellen |
data_objects.user_relationships.update |
Nutzer:innenbeziehung ersetzen und aktualisieren |
data_objects.user_relationships.delete |
Nutzer:innenbeziehung löschen |
data_objects.object_relationships.create |
Objektbeziehung erstellen |
data_objects.object_relationships.update |
Objektbeziehung ersetzen und aktualisieren |
data_objects.object_relationships.delete |
Objektbeziehung löschen |

Für das Lesen von Objektbeziehungen wird data_objects.read verwendet. Eine Berechtigung data_objects.object_relationships.read gibt es nicht.
Rate-Limits
In diesem Abschnitt werden die Standard-Kontingente für Anfragen und die Antwort-Header für Lese- und Schreibzugriffe erläutert.
| Bucket | Standardlimit |
|---|---|
| Lesezugriffe auf Datenobjekte | 1.000 Anfragen pro Minute |
| Schreibzugriffe auf Datenobjekte | 1.000 Anfragen pro Minute |
Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset.
Bei gedrosselten Anfragen gibt Braze 429 und einen Fehler-Payload mit id und message zurück.
{
"errors": [
{
"id": "rate-limit-exceeded",
"message": "You have exceeded your limit of 1000 requests per minute."
}
]
}
Produktlimits
In diesem Abschnitt finden Sie die Limits, die Braze für Datenobjekte durchsetzt, und was passiert, wenn Sie ein Limit erreichen. Wie diese Limits für Kontodatensätze gelten, erfahren Sie unter Limits für Kontoobjekte.
Mengenlimits
Sofern nicht anders angegeben, gelten diese Limits für Ihr gesamtes Unternehmen. Es handelt sich um Anfangskapazitäten. Wenn Sie mehr Datensätze oder ein höheres Limit benötigen, wenden Sie sich an Ihr Braze-Account-Team, um eine Erhöhung anzufragen.
| Limit | Standardwert |
|---|---|
| Datenobjekt-Datensätze pro Unternehmen (über alle Workspaces hinweg) | 50.000 |
| Felder pro Datenobjekttyp | 500 |
| Mit einem:einer Nutzer:in verknüpfte Datenobjekte | 1.000 |
| Mit einem Datenobjekt verknüpfte Nutzer:innen | 10.000 |
| Objektbeziehungen für ein Datenobjekt | 1.000 |
Feld- und Wertlimits
Diese Limits sind für alle Unternehmen fest vorgegeben.
| Limit | Wert |
|---|---|
| Felder pro Beziehungstyp (Nutzer:innenbeziehungen und Objektbeziehungen) | 25. Beziehungsfelder werden nicht auf das Limit für Felder pro Datenobjekttyp angerechnet. |
| Länge von Attributwerten | 255 Zeichen |
Länge und Format von object_id |
250 Zeichen. Nur Buchstaben, Zahlen, Bindestriche und Unterstriche. |
| Länge und Format von Feldnamen | 250 Zeichen. Nur Buchstaben, Zahlen und Unterstriche; darf nicht mit einem Unterstrich beginnen. |
| Reservierte Feldnamen | id, external_id, object_id und display_name können nicht als angepasste Feldnamen verwendet werden. |
Was passiert, wenn Sie ein Limit erreichen
Eine Anfrage, die ein Mengenlimit überschreiten würde, gibt 422 mit einer Fehler-id zurück, die das betreffende Limit angibt:
{
"errors": [
{
"id": "data-object-record-limit-exceeded",
"message": "This company has reached its data object record limit"
}
]
}
| Limit | Fehler-id |
|---|---|
| Datenobjekt-Datensätze pro Unternehmen | data-object-record-limit-exceeded |
| Felder pro Datenobjekttyp | data-object-field-limit-exceeded |
| Felder pro Beziehungstyp | data-object-field-limit-exceeded |
| Mit einem:einer Nutzer:in verknüpfte Datenobjekte | data-objects-per-user-limit-exceeded |
| Mit einem Datenobjekt verknüpfte Nutzer:innen | users-per-data-object-limit-exceeded |
| Objektbeziehungen für ein Datenobjekt | data-object-relationship-limit-exceeded |
Ihre bestehenden Datensätze und Beziehungen bleiben erhalten – nur die Anfrage, die das Limit überschreiten würde, wird abgelehnt. Um unter einem Limit wieder Platz zu schaffen, löschen Sie Datensätze, die Sie nicht mehr benötigen, oder entfernen Sie Beziehungen, die Sie nicht mehr verwenden. Um ein Mengenlimit zu erhöhen, wenden Sie sich an Ihr Braze-Account-Team.
Anfragen, die die Validierung nicht bestehen, etwa wegen einer zu langen object_id oder eines zu langen Attributwerts, geben 400 zurück. Anfragen, die das Rate-Limit überschreiten, geben 429 zurück.
Kernkonzepte
In diesem Abschnitt werden die wichtigsten Bezeichner definiert, die in allen Endpunkten für Datenobjekte verwendet werden.
type_name: Der Maschinenname des Datenobjekttyps, eindeutig innerhalb eines Workspace.object_id: Ihr Objektbezeichner, eindeutig innerhalb eines Typs.braze_id: Die Braze-Nutzer-ID, die in Endpunkten für Nutzer:innenbeziehungen verwendet wird.attributes: Nach Feldnamen geschlüsselte Objekt- oder Beziehungsdaten, die anhand des konfigurierten Schemas validiert werden.
So funktionieren Beziehungen
Dieser Abschnitt erläutert Beziehungstypen, Beziehungskanten und das Verhalten von anchor, bevor Sie die Referenzseiten zu den Endpunkten verwenden.
Übersicht über das Beziehungsmodell
Dieses Diagramm zeigt, wie Typen, Datensätze und Beziehungen zusammenhängen und was Sie in Braze durch deren Verknüpfung erreichen können. Sie definieren die Typen im Dashboard und schreiben anschließend die Datensätze und die Verknüpfungen zwischen ihnen über diese Endpunkte.
%%{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
Typen und Kanten sind getrennt
- Beziehungstypen legen fest, welche Verknüpfungen zulässig sind, und werden im Dashboard verwaltet.
- Beziehungskanten sind die tatsächlichen Verknüpfungen zwischen Datensätzen und werden über diese API-Endpunkte erstellt, aktualisiert und gelöscht.
- Bevor Sie Beziehungen schreiben, listen Sie die gültigen
rel_kind-Werte mit folgenden Endpunkten auf:GET /data_objects/types/{type_name}/user_relationship_typesGET /data_objects/types/{type_name}/object_relationship_types
Warum Objektbeziehungen related_type_name erfordern
rel_kindist nicht über alle Paare von Objekttypen hinweg global eindeutig. So kannrel_kindbeispielsweise für ein Paar von Objekttypensubaccountund für ein anderespartner_accountsein.- Schreibvorgänge für Objektbeziehungen erfordern daher sowohl
rel_kindals auchrelated_type_name, um den beabsichtigten Beziehungstyp zusammen mit dem anderen Objekttyp in der Verknüpfung zu identifizieren. - Wenn
related_type_namenicht zum Beziehungstyp für diesesrel_kindpasst, gibt die Anfrage400zurück.
anchor steuert die Beziehungsrichtung
Objektbeziehungen sind gerichtet. Das Objekt in der URL wird anhand von anchor interpretiert.
anchor |
Rolle des URL-Objekts | Schlüssel des verknüpften Objekts in Antworten |
|---|---|---|
source (Standard) |
Ausgangsseite (ausgehende Kante) | to_data_object |
target |
Zielseite (eingehende Kante) | from_data_object |
Wenn Sie dieselbe Kante aus der entgegengesetzten Anchor-Perspektive erstellen, bezieht sich dies weiterhin auf eine einzige zugrunde liegende Beziehung. Ein zweiter Erstellungsaufruf für dieselbe Kante gibt 409 (duplicate-object-relationship) zurück.
Unterschiedliche Pfade für Nutzer:innenbeziehungen
Lese- und Schreibvorgänge für Nutzer:innenbeziehungen verwenden bewusst unterschiedliche Endpunktpfade:
- Lesen:
GET /data_objects/objects/{type_name}/{object_id}/user_relationships - Schreiben:
POST|PUT|PATCH|DELETE /data_objects/objects/{type_name}/{object_id}/users
Beziehungsattribute sind von Objektattributen getrennt
- Beziehungsendpunkte geben Attribute auf Kantenebene im übergeordneten Feld
attributeszurück. - Objektattribute bleiben unter
to_data_objectoderfrom_data_objectverschachtelt. PUTersetzt die Beziehungs-attributes, undPATCHführt die Beziehungs-attributeszusammen.
Ausführliches Beispiel
Dieses Beispiel zeigt einen gängigen Konto-Workflow:
- Erstellen Sie
account/acct-123. - Erstellen Sie
account/acct-456als untergeordnetes Konto. - Verknüpfen Sie eine:n Nutzer:in mit
acct-123überrel_kind: account_user. - Verknüpfen Sie
acct-123mitacct-456überrel_kind: subaccount.
So lesen Sie die Verknüpfungen wieder aus:
GET /data_objects/objects/account/acct-123/user_relationshipsfür verknüpfte Nutzer:innenGET /data_objects/objects/account/acct-123/object_relationshipsfür ausgehende ObjektverknüpfungenGET /data_objects/objects/account/acct-456/object_relationships?anchor=targetfür eingehende Objektverknüpfungen

Die DELETE-Endpunkte für Objektbeziehungen und Nutzer:innenbeziehungen erfordern einen JSON-Anfragetext.
Paginierung und Datenaktualität
Dieser Abschnitt beschreibt das Paginierungsverhalten von Listen und den erwarteten Zeitpunkt, ab dem Daten nach Schreibvorgängen sichtbar sind.
- List-Endpunkte unterstützen
limitundoffset. limitist standardmäßig100und wird auf einen Wert zwischen1und250begrenzt.offsetist standardmäßig0, und negative Werte werden auf0angehoben.- Schreibvorgänge sind sofort für Lesevorgänge und die Liquid-Personalisierung sichtbar.
- Die Segment-Zugehörigkeit auf Basis von Datenobjekten kann bis zu einer Stunde verzögert sein, da berechnete Filter stündlich aktualisiert werden.
Fehlerverhalten
Dieser Abschnitt fasst die Status- und Fehlerantwortmuster zusammen, die von allen Endpunkten für Datenobjekte verwendet werden.
404,409,422und429geben einerrors-Array mitidundmessagezurück.400,401und403geben einen einzelnenerror-String zurück.422bedeutet, dass die Anfrage ein Produktlimit überschreiten würde. Die Standardwerte der Limits variieren je nach Vertrag des Unternehmens.