Endpoints des objets de données
Utilisez ces endpoints pour lister les types d’objets de données, gérer les enregistrements d’objets de données et gérer les relations entre objets et utilisateurs.

Les objets de données sont disponibles pour tous, mais votre espace de travail doit être provisionné pour les comptes avant que vous puissiez utiliser ces endpoints. Pour demander le provisionnement, accédez à Paramètres des données > Comptes et remplissez le questionnaire. Une fois le provisionnement terminé, les permissions de clé API des objets de données apparaissent dans Paramètres > Clés API. Pour plus de détails, consultez Activer les comptes.
Endpoints de type
Endpoints d’objet
Endpoints de relations entre objets
Endpoints de relations utilisateur
URL de base et authentification
Utilisez l’endpoint REST de votre espace de travail et envoyez Authorization: Bearer YOUR_REST_API_KEY. Cette section explique où sont hébergés les endpoints des objets de données et comment les requêtes sont authentifiées.
- Pour connaître les hôtes des endpoints, consultez l’aperçu de l’API Braze.
- Tous les payloads de requête et de réponse sont au format JSON.
- Les requêtes sont limitées à l’espace de travail propriétaire de la clé API.
- Si la clé dispose d’une liste d’adresses IP autorisées, les adresses IP qui n’y figurent pas renvoient une erreur
403.
Permissions des clés API
Cette section associe chaque endpoint à la permission requise, afin que vous puissiez définir la portée de vos clés API en toute sécurité.
| Permission | Groupe d’endpoints |
|---|---|
data_objects.read |
Lecture des types et des objets, et lecture des relations entre objets |
data_objects.create |
Création d’objets |
data_objects.update |
Remplacement et mise à jour d’objets |
data_objects.delete |
Suppression d’objets |
data_objects.user_relationships.read |
Lecture des relations utilisateur |
data_objects.user_relationships.create |
Création de relations utilisateur |
data_objects.user_relationships.update |
Remplacement et mise à jour de relations utilisateur |
data_objects.user_relationships.delete |
Suppression de relations utilisateur |
data_objects.object_relationships.create |
Création de relations entre objets |
data_objects.object_relationships.update |
Remplacement et mise à jour de relations entre objets |
data_objects.object_relationships.delete |
Suppression de relations entre objets |

La lecture des relations entre objets utilise la permission data_objects.read. Il n’existe pas de permission data_objects.object_relationships.read.
Limites de débit
Cette section présente les quotas de requêtes par défaut et les en-têtes de réponse pour le trafic en lecture comme en écriture.
| Compartiment | Limite par défaut |
|---|---|
| Lectures d’objets de données | 1 000 requêtes par minute |
| Écritures d’objets de données | 1 000 requêtes par minute |
Chaque réponse inclut X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset.
Pour les requêtes limitées, Braze renvoie 429 et un payload d’erreur contenant id et message.
{
"errors": [
{
"id": "rate-limit-exceeded",
"message": "You have exceeded your limit of 1000 requests per minute."
}
]
}
Limites du produit
Cette section répertorie les limites que Braze applique aux objets de données et ce qui se passe lorsque vous en atteignez une. Pour savoir comment ces limites s’appliquent aux enregistrements de compte, consultez Limites des objets de compte.
Limites de nombre
Sauf mention contraire, ces limites s’appliquent à l’ensemble de votre entreprise. Il s’agit de capacités de départ. Si vous avez besoin de plus d’enregistrements ou d’une limite plus élevée, contactez votre équipe de compte Braze pour demander une augmentation.
| Limite | Valeur par défaut |
|---|---|
| Enregistrements d’objets de données par entreprise (tous espaces de travail confondus) | 50 000 |
| Champs par type d’objet de données | 500 |
| Objets de données liés à un même utilisateur | 1 000 |
| Utilisateurs liés à un même objet de données | 10 000 |
| Relations entre objets pour un même objet de données | 1 000 |
Limites des champs et des valeurs
Ces limites sont fixes pour toutes les entreprises.
| Limite | Valeur |
|---|---|
| Champs par type de relation (relations utilisateur et relations entre objets) | 25. Les champs de relation ne sont pas pris en compte dans la limite de champs par type d’objet de données. |
| Longueur de la valeur d’attribut | 255 caractères |
Longueur et format de object_id |
250 caractères. Lettres, chiffres, traits d’union et traits de soulignement uniquement. |
| Longueur et format du nom de champ | 250 caractères. Lettres, chiffres et traits de soulignement uniquement, sans commencer par un trait de soulignement. |
| Noms de champs réservés | id, external_id, object_id et display_name ne peuvent pas être utilisés comme noms de champs personnalisés. |
Que se passe-t-il lorsque vous atteignez une limite ?
Une requête qui dépasserait une limite de nombre renvoie une erreur 422 avec un id d’erreur qui identifie la limite concernée :
{
"errors": [
{
"id": "data-object-record-limit-exceeded",
"message": "This company has reached its data object record limit"
}
]
}
| Limite | id d’erreur |
|---|---|
| Enregistrements d’objets de données par entreprise | data-object-record-limit-exceeded |
| Champs par type d’objet de données | data-object-field-limit-exceeded |
| Champs par type de relation | data-object-field-limit-exceeded |
| Objets de données liés à un même utilisateur | data-objects-per-user-limit-exceeded |
| Utilisateurs liés à un même objet de données | users-per-data-object-limit-exceeded |
| Relations entre objets pour un même objet de données | data-object-relationship-limit-exceeded |
Vos enregistrements et relations existants restent en place : seule la requête qui dépasserait la limite est rejetée. Pour libérer de la place sous une limite, supprimez les enregistrements dont vous n’avez plus besoin ou retirez les relations que vous n’utilisez plus. Pour augmenter une limite de nombre, contactez votre équipe de compte Braze.
Les requêtes qui échouent à la validation, par exemple avec un object_id ou une valeur d’attribut trop long, renvoient une erreur 400. Les requêtes qui dépassent la limite de débit renvoient une erreur 429.
Concepts de base
Cette section définit les principaux identifiants utilisés dans tous les endpoints des objets de données.
type_name: nom machine du type d’objet de données, unique au sein d’un espace de travail.object_id: votre identifiant d’objet, unique au sein d’un type.braze_id: ID utilisateur Braze utilisé sur les endpoints de relations utilisateur.attributes: données d’objet ou de relation, indexées par nom de champ et validées par rapport au schéma configuré.
Fonctionnement des relations
Cette section présente les types de relations, les arêtes de relation et le comportement d’anchor avant que vous n’utilisiez les pages de référence des endpoints.
Aperçu du modèle de relations
Ce diagramme montre comment les types, les enregistrements et les relations s’articulent, et ce que leur liaison vous permet de faire dans Braze. Vous définissez les types dans le tableau de bord, puis vous écrivez les enregistrements et les liens qui les unissent à l’aide de ces endpoints.
%%{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
Les types et les arêtes sont distincts
- Les types de relations définissent les liens valides et sont gérés dans le tableau de bord.
- Les arêtes de relation sont les liens réels entre les enregistrements. Elles sont créées, mises à jour et supprimées via ces endpoints de l’API.
- Avant d’écrire des relations, listez les valeurs
rel_kindvalides avec :GET /data_objects/types/{type_name}/user_relationship_typesGET /data_objects/types/{type_name}/object_relationship_types
Pourquoi les relations entre objets exigent related_type_name
rel_kindn’est pas unique pour l’ensemble des paires de types d’objets. Par exemple,rel_kindpeut valoirsubaccountpour une paire de types d’objets etpartner_accountpour une autre.- Les écritures de relations entre objets exigent donc à la fois
rel_kindetrelated_type_namepour identifier le type de relation visé ainsi que l’autre type d’objet de l’association. - Si
related_type_namene correspond pas au type de relation associé à cerel_kind, la requête renvoie400.
anchor détermine le sens de la relation
Les relations entre objets sont orientées. L’objet indiqué dans l’URL est interprété en fonction d’anchor.
anchor |
Rôle de l’objet de l’URL | Clé de l’objet associé dans les réponses |
|---|---|---|
source (par défaut) |
Côté départ (arête sortante) | to_data_object |
target |
Côté arrivée (arête entrante) | from_data_object |
Créer la même arête depuis la perspective d’ancrage opposée cible toujours une seule et même relation sous-jacente. Un second appel de création pour la même arête renvoie 409 (duplicate-object-relationship).
Asymétrie des chemins pour les relations utilisateur
Les lectures et les écritures de relations utilisateur utilisent volontairement des chemins d’endpoint différents :
- Lecture :
GET /data_objects/objects/{type_name}/{object_id}/user_relationships - Écriture :
POST|PUT|PATCH|DELETE /data_objects/objects/{type_name}/{object_id}/users
Les attributs de relation sont distincts des attributs d’objet
- Les endpoints de relation renvoient les attributs propres à l’arête dans le champ de premier niveau
attributes. - Les attributs d’objet restent imbriqués sous
to_data_objectoufrom_data_object. PUTremplace lesattributesde la relation, tandis quePATCHles fusionne.
Exemple concret
Cet exemple illustre un flux de travail courant pour des comptes :
- Créez
account/acct-123. - Créez
account/acct-456en tant que compte enfant. - Liez un utilisateur à
acct-123avecrel_kind: account_user. - Liez
acct-123àacct-456avecrel_kind: subaccount.
Pour relire les liens :
GET /data_objects/objects/account/acct-123/user_relationshipspour les utilisateurs liésGET /data_objects/objects/account/acct-123/object_relationshipspour les liens d’objets sortantsGET /data_objects/objects/account/acct-456/object_relationships?anchor=targetpour les liens d’objets entrants

Les endpoints DELETE des relations entre objets et des relations utilisateur exigent un corps de requête JSON.
Pagination et fraîcheur des données
Cette section décrit le comportement de la pagination des listes et les délais de visibilité des données attendus après une écriture.
- Les endpoints de liste prennent en charge
limitetoffset. limitvaut100par défaut et est limité à une plage de1à250.offsetvaut0par défaut, et les valeurs négatives sont ramenées à0.- Les écritures sont immédiatement visibles pour les lectures et la personnalisation Liquid.
- L’appartenance à un Segment basée sur les objets de données peut présenter un décalage allant jusqu’à une heure, car les filtres calculés sont actualisés toutes les heures.
Comportement en cas d’erreur
Cette section résume les modèles de statut et de réponse d’erreur utilisés par l’ensemble des endpoints des objets de données.
- Les codes
404,409,422et429renvoient un tableauerrorscontenantidetmessage. - Les codes
400,401et403renvoient une seule chaîne de caractèreserror. - Le code
422signifie que la requête dépasserait une limite du produit. Les valeurs limites par défaut varient selon le contrat de l’entreprise.