Limites de débit
L’infrastructure API Braze est conçue pour gérer des volumes élevés de données sur l’ensemble de notre base de clients. À cette fin, nous appliquons des limites de débit à l’API par espace de travail.
Une limite de débit correspond au nombre de demandes que l’API peut recevoir sur une période donnée. De nombreux incidents de déni de service basés sur 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 permettent de vérifier que de telles erreurs ne privent pas nos clients des ressources de l’API de Braze. Si trop de demandes sont envoyées dans un délai donné, vous risquez de recevoir des réponses d’erreur avec un code de statut de 429
, qui indique que la limite de débit a été atteinte.
Les limites de débit de l’API sont sujettes à modification en fonction de l’utilisation propre à notre système. Nous encourageons des limites raisonnables lors de l’appel d’API afin d’éviter tout dommage ou toute mauvaise utilisation.
Limites de débit par type de demande
Le tableau suivant répertorie les limites de débit d’API par défaut pour différents types de demandes. Ces limites par défaut peuvent être augmentées sur demande. Contactez votre gestionnaire du succès des clients pour plus d’informations.
Les requêtes qui ne figurent pas dans ce tableau partagent une limite de débit totale par défaut de 250 000 requêtes par heure.
Type de demande | Limite de débit par défaut de l’API |
---|---|
/users/track |
Demandes : 3 000 demandes par trois secondes. Traitement par lot : 75 événements, 75 achats et 75 attributs par requête d’API. Pour en savoir plus, consultez la rubrique Mise en lot des demandes de suivi des utilisateurs. Limites pour les utilisateurs actifs par mois CY 24-25 : voir Limites pour les utilisateurs actifs par mois CY 24-25 |
/users/export/ids |
Si vous avez embarqué à partir du 22 août 2024 : 250 demandes par minute. Si vous avez embarqué avant le 22 août 2024 : 2 500 demandes par minute. |
/users/delete /users/alias/new /users/alias/update /users/identify /users/merge |
20 000 demandes par minute, partagées entre les endpoints. |
/users/external_id/rename |
1 000 demandes par minute. |
/users/external_id/remove |
1 000 demandes par minute. |
/events/list |
1 000 demandes par heure, partagées avec l’endpoint /purchases/product_list . |
/purchases/product_list |
1 000 demandes par heure, partagées avec l’endpoint /events/list . |
/campaigns/data_series |
50 000 demandes par minute. |
/messages/send /campaigns/trigger/send /canvas/trigger/send |
250 requêtes par minute pour les appels de diffusion (lorsque vous ne spécifiez qu’un segment ou une audience connectée). Sinon, 250 000 requêtes par heure réparties entre les endpoints. |
/sends/id/create |
100 demandes par jour. |
/subscription/status/set |
5 000 demandes par minute. |
/preference_center/v1/{preferenceCenterExternalId}/url/{userId} /preference_center/v1/list /preference_center/v1/{preferenceCenterExternalId} |
1 000 demandes par minute, par espace de travail. |
/preference_center/v1 /preference_center/v1/{preferenceCenterExternalId} |
10 demandes par minute, par espace de travail. |
/catalogs/{catalog_name} /catalogs /catalogs |
50 demandes 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 réparties 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 demandes par minute, partagées entre les endpoints. |
/scim/v2/Users/{id} /scim/v2/Users?filter={userName@example.com} /scim/v2/Users/{id} /scim/v2/Users/{id}} /scim/v2/Users/ |
5 000 demandes par jour, partagées entre les endpoints. |
Traitement des demandes d’API par lot
Les API de Braze sont créées pour prendre en charge la mise en lots. Grâce au traitement par lot, Braze peut récupérer autant de données que possible en un seul appel d’API afin de limiter le nombre d’appels d’API à passer. Il est plus efficace pour Braze de traiter les données par lots que de les traiter par appel. Par exemple, la gestion de 1 000 appels d’API par lots nécessite moins de ressources que la gestion de 75 000 appels individuels. L’utilisation du traitement par lot est extrêmement importante pour les applications qui peuvent nécessiter plus de 75 000 appels par heure.
Selon les besoins des clients qui utilisent les capacités de traitement par lot de l’API, des augmentations de limite de débit API REST peuvent être envisagées.
Requêtes User Track (Suivi Utilisateur) en lot
Chaque demande /users/track
peut contenir jusqu’à 75 objets d’événement, 75 objets d’attributs et 75 objets d’achats. Chaque objet (événement, attribut et tableau d’achat) peut mettre à jour un utilisateur chacun. Au total, cela signifie qu’un maximum de 225 utilisateurs peuvent être mis à jour en un seul appel. En outre, un profil utilisateur unique peut être mis à jour par plusieurs objets.
Les demandes adressées à cet endpoint commencent généralement à traiter dans cet ordre :
- Attributs
- Événements
- Achats
Demandes de traitement par lot aux endpoints de messagerie
Une seule demande adressée aux endpoints de messages peut atteindre l’un des éléments suivants :
- Jusqu’à 50
external_ids
spé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 qui correspondent à des filtres d’audience supplémentaires de toute taille, définis dans la demande comme un objet d’audience connecté.
Exemple de demande de lot
L’exemple suivant utilise external_id
pour effectuer un appel API pour les e-mails et 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","example1@email.com"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","example1@email.com"]
}
]
}
Surveiller vos limites de débit
Chaque demande API envoyée à Braze renvoie les informations suivantes dans les en-têtes de réponse :
Nom d’en-tête | Description |
---|---|
X-RateLimit-Limit |
Nombre maximum de demandes que vous pouvez effectuer dans un intervalle spécifié (votre limite de débit). |
X-RateLimit-Remaining |
Nombre de demandes restant dans la fenêtre de limite de débit actuelle. |
X-RateLimit-Reset |
Heure à laquelle la fenêtre de limite de débit actuelle se réinitialise en secondes d’époque UTC. |
Ces informations sont intentionnellement incluses dans l’en-tête de la réponse à la demande API plutôt que sur le tableau de bord de Braze. Cela permet à votre système de mieux réagir en temps réel lorsque vous interagissez avec notre API. Par exemple, si la valeur de X-RateLimit-Remaining
passe en dessous d’un certain seuil, vous pouvez ralentir l’envoi pour vous assurer que tous les e-mails transactionnels sont envoyés. Ou, si elle atteint zéro, vous voudrez peut-être suspendre tous les envois jusqu’à ce que le temps spécifié dans X-RateLimit-Reset
s’écoule.
Les en-têtes HTTP seront retournés en minuscules. Ce comportement est conforme au protocole HTTP/2 qui exige que tous les noms de champs d’en-tête soient en minuscules. Cela diffère de HTTP/1.X où les noms des en-têtes n’étaient pas sensibles à la casse, mais étaient généralement écrits avec différentes majuscules.
Si vous avez des questions sur les limites de l’API, contactez votre gestionnaire satisfaction client ou ouvrez un ticket d’assistance.
Délai optimal entre les endpoints
Nous vous recommandons de laisser un délai de 5 minutes entre des appels d’endpoint consécutifs pour réduire les possibilités d’erreur.
Il est crucial de comprendre le délai optimal entre les endpoints lors de la réalisation d’appels consécutifs vers l’API Braze. Des problèmes surviennent lorsque les endpoints dépendent de la réussite du traitement d’autres endpoints, et s’ils sont appelés trop tôt, ils peuvent provoquer des erreurs. Par exemple, si vous attribuez un alias à un utilisateur par l’intermédiaire de notre point d’accès /user/alias/new
, puis que vous utilisez cet alias pour envoyer un événement personnalisé par l’intermédiaire de notre point d’accès /users/track
, combien de temps devez-vous attendre ?
Dans des conditions normales, le temps pour que la cohérence éventuelle de nos données se produise est de 10 à 100 ms (1/10 d’une seconde). Toutefois, dans certains cas, il faut plus de temps pour que cette cohérence se produise. Nous vous recommandons donc de prévoir un délai de 5 minutes entre les appels suivants afin de minimiser la probabilité d’une erreur.