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

Datenobjekte befinden sich derzeit im Early Access. Ihr Workspace muss aktiviert sein, bevor die Datenobjekt-API-Schlüsselberechtigungen unter Einstellungen > API-Schlüssel angezeigt werden.
Typ-Endpunkte
Objekt-Endpunkte
Objektbeziehungs-Endpunkte
Nutzer:innenbeziehungs-Endpunkte
Basis-URL und Authentifizierung
Verwenden Sie Ihren Workspace-REST-Endpunkt und senden Sie Authorization: Bearer YOUR_REST_API_KEY. Dieser Abschnitt erklärt, wo Datenobjekte-Endpunkte gehostet werden und wie Anfragen authentifiziert werden.
- Informationen zu Endpunkt-Hosts finden Sie in der Braze-API-Übersicht.
- Alle Anfrage- und Antwort-Payloads sind JSON.
- Anfragen sind auf den Workspace beschränkt, dem der API-Schlüssel gehört.
- Wenn der Schlüssel eine IP-Zulassungsliste hat, geben nicht zugelassene IP-Adressen
403zurück.
API-Schlüssel-Berechtigungen
In diesem Abschnitt wird jedem Endpunkt die erforderliche Berechtigung zugeordnet, damit Sie API-Schlüssel sicher einschränken können.
| Berechtigung | Endpunktgruppe |
|---|---|
data_objects.read |
Typ- und Objektlesevorgänge sowie Objektbeziehungslesevorgänge |
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 Objektbeziehungslesevorgänge wird data_objects.read verwendet. Es gibt keine Berechtigung data_objects.object_relationships.read.
Rate-Limits
Dieser Abschnitt erläutert die standardmäßigen Anfragekontingente und Antwort-Header für Lese- und Schreibzugriffe.
| Bucket | Standardlimit |
|---|---|
| Datenobjekte-Lesezugriffe | 50 Anfragen pro Minute |
| Datenobjekte-Schreibzugriffe | 50 Anfragen pro Minute |
Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset.
Bei gedrosselten Anfragen gibt Braze 429 und eine Fehler-Payload mit id und message zurück.
{
"errors": [
{
"id": "rate-limit-exceeded",
"message": "You have exceeded your limit of 50 requests per minute."
}
]
}
Produktlimits
Dieser Abschnitt beschreibt die Limits, die Braze für Datenobjekte durchsetzt, und was passiert, wenn Sie eines erreichen.
Anzahl-Limits
Diese Limits gelten für Ihr gesamtes Unternehmen, sofern nicht anders angegeben. Ihr Braze-Account-Team kann die Standardwerte für Ihr Unternehmen anpassen.
| Limit | Standardwert |
|---|---|
| Datenobjekt-Datensätze pro Unternehmen (über alle Workspaces hinweg) | 1.000.000 |
| Felder pro Datenobjekttyp | 500 |
| Datenobjekte, die mit einer/einem Nutzer:in verknüpft sind | 1.000 |
| Nutzer:innen, die mit einem Datenobjekt verknüpft sind | 10.000 |
| Objektbeziehungen für ein Datenobjekt | 1.000 |
Feld- und Wertlimits
Diese Limits sind für alle Unternehmen fest vorgegeben.
| Limit | Wert |
|---|---|
| Länge des Attributwerts | 255 Zeichen |
Länge und Format von object_id |
250 Zeichen. Nur Buchstaben, Zahlen, Bindestriche und Unterstriche. |
| Länge und Format des Feldnamens | 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 benutzerdefinierte Feldnamen verwendet werden. |
Was passiert, wenn Sie ein Limit erreichen
Eine Anfrage, die ein Anzahl-Limit überschreiten würde, gibt 422 mit einer Fehler-id zurück, die das Limit identifiziert:
{
"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 |
| Datenobjekte, die mit einer/einem Nutzer:in verknüpft sind | data-objects-per-user-limit-exceeded |
| Nutzer:innen, die mit einem Datenobjekt verknüpft sind | 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 Platz unter einem Limit zu schaffen, löschen Sie Datensätze, die Sie nicht mehr benötigen, oder entfernen Sie Beziehungen, die Sie nicht mehr verwenden. Um ein Anzahl-Limit zu erhöhen, wenden Sie sich an Ihr Braze-Account-Team.
Anfragen, die die Validierung nicht bestehen, z. B. eine zu lange object_id oder ein zu langer Attributwert, geben 400 zurück. Anfragen, die das Rate-Limit überschreiten, geben 429 zurück.
Kernkonzepte
Dieser Abschnitt definiert die wichtigsten Bezeichner, die über alle Datenobjekte-Endpunkte hinweg 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:innen-ID, die auf Endpunkten für Nutzer:innenbeziehungen verwendet wird.attributes: Ein nach Feldnamen strukturiertes Objekt oder Beziehungsdaten, die anhand des konfigurierten Schemas validiert werden.
So funktionieren Beziehungen
Dieser Abschnitt erklärt Beziehungstypen, Beziehungskanten und das Verhalten von anchor, bevor Sie die Endpunkt-Referenzseiten verwenden.
Das Beziehungsmodell auf einen Blick
Verwenden Sie dieses Diagramm, um zu sehen, wie Typen, Datensätze und Beziehungen zusammenpassen und was deren Verknüpfung in Braze ermöglicht. Sie definieren die Typen im Dashboard und schreiben dann die Datensätze sowie 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 definieren, 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 zulässige
rel_kind-Werte auf mit: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 global eindeutig über alle Objekttyppaare hinweg. Zum Beispiel kannrel_kindfü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 gewünschten Beziehungstyp zusammen mit dem anderen Objekttyp in der Zuordnung zu identifizieren. - Wenn
related_type_namenicht mit dem Beziehungstyp für diesesrel_kindübereinstimmt, gibt die Anfrage400zurück.
anchor steuert die Beziehungsrichtung
Objektbeziehungen sind gerichtet. Das URL-Objekt wird basierend auf anchor interpretiert.
anchor |
Rolle des URL-Objekts | Schlüssel des verwandten Objekts in Antworten |
|---|---|---|
source (Standard) |
Ausgangsseite (ausgehende Kante) | to_data_object |
target |
Zielseite (eingehende Kante) | from_data_object |
Das Erstellen derselben Kante aus der entgegengesetzten Anchor-Perspektive zielt weiterhin auf eine zugrunde liegende Beziehung ab. Ein zweiter Erstellungsaufruf für dieselbe Kante gibt 409 (duplicate-object-relationship) zurück.
Pfad-Asymmetrie bei Nutzer:innenbeziehungen
Lese- und Schreibvorgänge für Nutzer:innenbeziehungen verwenden absichtlich 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
attributes-Feld der obersten Ebene zurück. - Objektattribute bleiben unter
to_data_objectoderfrom_data_objectverschachtelt. PUTersetzt dieattributesder Beziehung, undPATCHführt dieattributesder Beziehung zusammen.
Praxisbeispiel
Dieses Beispiel zeigt einen typischen Konto-Workflow:
- Erstellen Sie
account/acct-123. - Erstellen Sie
account/acct-456als Unterkonto. - Verknüpfen Sie eine:n Nutzer:in mit
acct-123überrel_kind: account_user. - Verknüpfen Sie
acct-123mitacct-456überrel_kind: subaccount.
Um die Verknüpfungen auszulesen:
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-Anfragekörper.
Paginierung und Datenaktualität
Dieser Abschnitt behandelt das Paginierungsverhalten bei Listen-Endpunkten und die erwartete Sichtbarkeit von Daten nach Schreibvorgängen.
- Listen-Endpunkte unterstützen
limitundoffset. limitist standardmäßig100und wird auf1bis250begrenzt.offsetist standardmäßig0, und negative Werte werden auf0gesetzt.- Schreibvorgänge sind sofort für Lesevorgänge und Liquid-Personalisierung sichtbar.
- Die Segment-Mitgliedschaft 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 in den Datenobjekte-Endpunkten 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 Standardlimitwerte variieren je nach Unternehmensvertrag.