Limites de débit
L’infrastructure API de Braze est conçue pour gérer des volumes élevés de données sur l’ensemble de notre base de clients. C’est pourquoi nous appliquons des limites de débit à l’API par espace de travail.
Une limite de débit correspond au nombre de requêtes que l’API peut recevoir sur une période donnée. De nombreux incidents de déni de service liés à la charge dans les grands systèmes sont involontaires — causés par des erreurs dans les logiciels ou les configurations — et non par des attaques malveillantes. Les limites de débit garantissent que de telles erreurs ne privent pas nos clients des ressources de l’API de Braze. Si trop de requêtes sont envoyées dans un délai donné, vous risquez de recevoir des réponses d’erreur avec un code d’état 429, indiquant que la limite de débit a été atteinte.
Les limites de débit de l’API sont susceptibles d’évoluer en fonction de l’utilisation appropriée de notre système. Nous vous encourageons à définir des limites raisonnables lors de vos appels API afin d’éviter tout dommage ou toute mauvaise utilisation.
Limites de débit par type de requête
Consultez les informations ci-dessous pour connaître les limites de débit par défaut de l’API selon les différents types de requêtes. Ces limites par défaut peuvent être augmentées sur demande. Contactez votre Customer Success Manager pour plus d’informations.
Requêtes avec différentes limites de débit
| Type de requête | Limite de débit par défaut de l’API |
|---|---|
/users/track |
Requêtes : 3 000 requêtes par trois secondes. Traitement par lot : jusqu’à 75 objets au total, combinés entre attributes, events et purchases par requête API. Les clients bénéficiant d’anciennes limites de débit peuvent inclure jusqu’à 75 objets par tableau de manière indépendante. Pour en savoir plus, consultez la rubrique Mise en lot des requêtes de suivi des utilisateurs.Limites pour les utilisateurs actifs par mois CY 24-25, MAU universels, MAU Web et MAU mobiles : consultez les directives relatives aux limites ici. |
/users/export/ids |
Si votre intégration date du 22 août 2024 ou après : 250 requêtes par minute. Si votre intégration date d’avant le 22 août 2024 : 2 500 requêtes par minute. |
/users/delete/users/alias/new/users/alias/update/users/identify/users/merge |
20 000 requêtes par minute, partagées entre les endpoints. |
/users/external_id/rename |
1 000 requêtes par minute. |
/users/external_id/remove |
1 000 requêtes par minute. |
/events/list |
1 000 requêtes par heure, partagées avec l’endpoint /purchases/product_list. |
/purchases/product_list |
1 000 requêtes par heure, partagées avec l’endpoint /events/list. |
/campaigns/data_series |
50 000 requêtes par minute. |
/messages/send/campaigns/trigger/send/canvas/trigger/send |
Pour les appels de diffusion (ciblage large de segments, de filtres ou d’une audience connectée) : 250 requêtes par minute toutes audiences confondues, et 10 requêtes par minute par audience unique (c’est la première limite atteinte qui s’applique). Pour le ciblage de destinataires individuels, la requête est comptabilisée dans la limite de débit partagée de 250 000 requêtes par heure. |
/sends/id/create |
100 requêtes par jour. |
/subscription/status/set |
5 000 requêtes par minute. |
/preference_center/v1/{preferenceCenterExternalId}/url/{userId}/preference_center/v1/list/preference_center/v1/{preferenceCenterExternalId} |
1 000 requêtes par minute. |
/preference_center/v1/preference_center/v1/{preferenceCenterExternalId} |
10 requêtes par minute. |
/catalogs/{catalog_name}/catalogs/catalogs |
50 requêtes par minute, partagées entre les endpoints. |
/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items |
16 000 requêtes par minute, partagées entre les endpoints. |
/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/{item_id} |
50 requêtes par minute, partagées entre les endpoints. |
/catalogs/{catalog_name}/fields/{field_name}/catalogs/{catalog_name}/fields/catalogs/{catalog_name}/selections/{selection_name}/catalogs/{catalog_name}/selections |
50 requêtes par minute, partagées entre les endpoints. |
/scim/v2/Users/{id}/scim/v2/Users?filter={[email protected]}/scim/v2/Users/{id}/scim/v2/Users/{id}}/scim/v2/Users/ |
5 000 requêtes par jour, par société, partagées entre les endpoints. |
/cdi/integrations |
50 requêtes par minute. |
/cdi/integrations/{integration_id}/sync |
20 requêtes par minute. |
/cdi/integrations/{integration_id}/job_sync_status |
100 requêtes par minute. |
Requêtes avec limites de débit partagées
Les requêtes suivantes partagent une limite de débit commune de 250 000 requêtes par heure.
/app_group/sdk_authentication/create/app_group/sdk_authentication/keys/app_group/sdk_authentication/delete/app_group/sdk_authentication/primary/campaigns/details/campaigns/list/campaigns/trigger/send(uniquement pour les appels non diffusés, c’est-à-dire ceux qui spécifientexternal_user_idsoualiases)/campaigns/trigger/schedule/create/campaigns/trigger/schedule/delete/campaigns/trigger/schedule/update/canvas/data_series/canvas/data_summary/canvas/details/canvas/list/canvas/trigger/send(uniquement pour les appels non diffusés)/canvas/trigger/schedule/create/canvas/trigger/schedule/delete/canvas/trigger/schedule/update/content_blocks/create/content_blocks/info/content_blocks/list/content_blocks/update/email/blocklist/email/blacklist/email/bounce/remove/email/hard_bounces/email/spam/remove/email/status/email/unsubscribes/events/data_series/kpi/dau/data_series/kpi/mau/data_series/kpi/new_users/data_series/kpi/uninstalls/data_series/messages/live_activity/start/messages/live_activity/update/messages/send(uniquement pour les appels non diffusés)/messages/schedule/create/messages/schedule/delete/messages/schedule/update/messages/scheduled_broadcasts/segments/data_series/segments/details/segments/list/sends/data_series/sessions/data_series/sms/invalid_phone_numbers/sms/invalid_phone_numbers/remove/subscription/status/get/subscription/user/status/templates/email/create/templates/email/info/templates/email/list/templates/email/update/users/export/global_control_group/users/export/segment
Qu’est-ce qui est considéré comme la même audience unique ?
Cela s’applique aux trois endpoints suivants : /messages/send, /campaigns/trigger/send et /canvas/trigger/send.
Pour ces endpoints, les requêtes de diffusion sont considérées comme ciblant la même audience unique lorsque tous les éléments suivants correspondent :
- La campagne ou le canvas déclenché (le
campaign_idoucanvas_iddans votre requête API, si spécifié) - L’audience ciblée (les segments ou filtres, ou pour les campagnes API, le
segment_iddans votre requête API) - Les filtres d’audience connectés (l’objet
audiencedans votre requête API, s’il est spécifié)
Chaque combinaison unique de ces attributs est considérée comme une audience distincte. La limite de débit supplémentaire pour chaque audience unique s’applique donc indépendamment à chaque combinaison.
Traitement des requêtes API par lot
Les API de Braze sont conçues pour prendre en charge le traitement par lot. Grâce à cette fonctionnalité, Braze peut ingérer un maximum de données en un seul appel API, ce qui vous évite de multiplier les appels. Il est bien plus efficace pour Braze de traiter les données par lots que de les traiter appel par appel. Par exemple, la gestion de 1 000 appels API par lots nécessite moins de ressources que la gestion de 75 000 appels individuels. Le traitement par lot est essentiel pour toute application susceptible de nécessiter plus de 75 000 appels par heure.
Des augmentations de la limite de débit de l’API REST peuvent être envisagées en fonction des besoins des clients qui utilisent les capacités de traitement par lot de l’API.
Mise en lot des requêtes pour l’endpoint de suivi des utilisateurs
Chaque requête /users/track peut contenir jusqu’à 75 objets au total, combinés entre attributes, events et purchases. Chaque objet peut mettre à jour un utilisateur. Un même profil utilisateur peut être mis à jour par plusieurs objets.
Anciennes limites de débit
Pour les clients bénéficiant d’anciennes limites de débit, chaque tableau (attributes, events et purchases) peut contenir jusqu’à 75 objets de manière indépendante, pour un maximum combiné de 225 objets par requête.
Pour en savoir plus sur les limites de débit de /users/track, consultez POST : Créer et mettre à jour des utilisateurs.
Les requêtes adressées à cet endpoint commencent généralement à être traitées dans l’ordre suivant :
- Attributs
- Événements
- Achats
Mise en lot des requêtes aux endpoints de messagerie
Une seule requête adressée aux endpoints de messagerie peut cibler l’un des éléments suivants :
- Jusqu’à 50
external_idsspécifiques, chacun avec des paramètres de message individuels - Un segment de toute taille créé dans le tableau de bord de Braze, spécifié par son
segment_id - Les utilisateurs correspondant à des filtres d’audience supplémentaires de toute taille, définis dans la requête sous forme d’objet d’audience connectée
Exemple de requête par lot
L’exemple suivant utilise external_id pour effectuer un seul appel API couvrant les e-mails et les SMS.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/v2/subscription/status/set' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"subscription_groups":[
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
}
]
}
Surveiller vos limites de débit
Chaque requête API envoyée à Braze renvoie les informations suivantes dans les en-têtes de réponse :
| Nom de l’en-tête | Description |
|---|---|
X-RateLimit-Limit |
Le nombre maximum de requêtes que vous pouvez effectuer dans un intervalle donné (votre limite de débit). |
X-RateLimit-Remaining |
Le nombre de requêtes restantes dans la fenêtre de limite de débit en cours. |
X-RateLimit-Reset |
L’heure de réinitialisation de la fenêtre de limite de débit en cours, exprimée en secondes epoch UTC. |
Ces informations sont volontairement incluses dans l’en-tête de la réponse API plutôt que dans le tableau de bord de Braze. Votre système peut ainsi réagir en temps réel lors de ses interactions avec notre API. Par exemple, si la valeur de X-RateLimit-Remaining passe en dessous d’un certain seuil, vous pouvez ralentir les envois pour vous assurer que tous les e-mails transactionnels sont bien transmis. Si elle atteint zéro, vous pouvez suspendre tous les envois jusqu’à ce que le délai indiqué dans X-RateLimit-Reset soit écoulé.
Les en-têtes HTTP sont renvoyés entièrement en minuscules. Ce comportement est conforme au protocole HTTP/2, qui impose que tous les noms de champs d’en-tête soient en minuscules. Cela diffère de HTTP/1.X, où les noms d’en-tête n’étaient pas sensibles à la casse mais étaient couramment écrits avec différentes capitalisations.
Si vous avez des questions sur les limites de l’API, contactez votre Customer Success Manager ou ouvrez un ticket d’assistance.
Vous pouvez utiliser le tableau de bord d’utilisation de l’API pour visualiser et comparer le trafic entrant par rapport à vos limites de débit.
Délai optimal entre les endpoints
Nous vous recommandons de prévoir un délai de 5 minutes entre des appels d’endpoint consécutifs afin de minimiser les erreurs.
Comprendre le délai optimal entre les endpoints est essentiel lorsque vous effectuez des appels consécutifs vers l’API de Braze. Des problèmes surviennent lorsqu’un endpoint dépend du traitement réussi d’un autre endpoint : s’il est appelé trop tôt, cela peut provoquer des erreurs. Par exemple, si vous attribuez un alias à un utilisateur via l’endpoint /user/alias/new, puis que vous utilisez cet alias pour envoyer un événement personnalisé via l’endpoint /users/track, combien de temps devez-vous attendre ?
Dans des conditions normales, la cohérence à terme de nos données s’établit en 10 à 100 ms (1/10 de seconde). Toutefois, dans certains cas, ce délai peut être plus long. Nous vous recommandons donc de prévoir un délai de 5 minutes entre les appels successifs afin de minimiser la probabilité d’erreur.
Réinitialisation des limites de débit
Les limites de débit se réinitialisent à chaque heure pleine, et non sur une fenêtre glissante. Par exemple, si la limite est de 250 000 requêtes par heure, vous pouvez effectuer 50 000 requêtes entre 22 h 00 et 22 h 59, puis 250 000 requêtes supplémentaires entre 23 h 00 et 23 h 59, car le compteur se réinitialise au début de chaque heure.
Modifier cette page sur GitHub