Guide des quotas et des limites de débit

FedEx reçoit plusieurs milliers de requêtes d’API chaque jour. Nous utilisons trois mécanismes de régulation pour gérer ce volume important. Des quotas, des limites de débit et des seuils ont été mis en place afin d’allouer les ressources de FedEx de manière efficace et efficiente.

Les quotas sont définis par organisation et par projet d’API.

 

Quotas par organisation

Le quota de transactions est le nombre maximum de requêtes d’API autorisées par une organisation au cours d’une journée. Cela signifie que les consommateurs d’API doivent prendre en compte le nombre total de requêtes d’API initiées pour tous les projets d’une même organisation. Chaque requête compte de la même manière, quel que soit le volume de données renvoyé dans la réponse de l’API FedEx.

Exemple : une organisation a un quota de 500 000 requêtes d’API par jour. Si elle soumet 500 000 requêtes durant les premières heures de la journée, elle aura donc atteint son quota. Pour le reste de la journée, un code d’erreur « 429 – Trop de requêtes – Le quota de transactions quotidien est dépassé. Réessayez après 12:00 GMT » sera renvoyé pour chaque requête jusqu’au lendemain.

 

Quotas par projet d’API

Ce quota est appliqué à deux niveaux différents : le projet et la fonctionnalité.

Qu’entend-on par « fonctionnalité » ?

Chaque API est groupée en fonction des fonctionnalités qu’elle propose. Chaque groupe de fonctionnalités rassemble un ou plusieurs points de terminaison. Par exemple, la fonctionnalité de l’API Track possède six points de terminaison, tandis que la fonctionnalité Address Validation n’en possède qu’un.

La limite de quota par fonctionnalité et par projet (PCPP) de la fonctionnalité Track est de 100 000 requêtes par jour. Cela signifie que lorsque le trafic provenant de l’un des projets d’une organisation vers l’un des six points de terminaison de la fonctionnalité Track dépasse cette limite, nous vous enverrons un message d’erreur « 429 Trop de requêtes » jusqu’à la fin de la journée. Ce système s’applique à toutes les requêtes Track subséquentes pour n’importe lequel des six points de terminaison.

Exemple : si un projet dispose d’une limite de 100 000 requêtes par fonctionnalité Track (avec six points de terminaison), le nombre total de transactions pour les six points de terminaison sera comptabilisé dans la limite des 100 000 requêtes. Si votre projet dépasse cette limite, toutes les transactions Track subséquentes généreront un code d’erreur « 429 Trop de requêtes – Le quota de transactions quotidien est dépassé » pour le reste de la journée jusqu’à 12:00 GMT.

 

Limites de débit

Chaque projet est limité à 1 400 transactions toutes les 10 secondes. Des restrictions sont appliquées si les transactions dépassent cette limite pendant chaque période de 10 secondes.

Si cette limite est atteinte dans les premières secondes, toutes les transactions envoyées dans les secondes restantes de ce créneau de 10 secondes seront restreintes. Pendant cette période de restriction, un code d’erreur indiquant « 429 - Trop de requêtes » sera renvoyé.

Si FedEx reçoit 1 400 requêtes dans les 2 premières secondes, toutes les transactions suivantes seront restreintes pendant les 8 secondes suivantes et un message d’erreur indiquant « 429 – Trop de requêtes – Nous avons reçu trop de requêtes en peu de temps. Veuillez patienter avant de réessayer. » apparaîtra.

Une fois les 10 secondes écoulées, les restrictions seront levées et un autre compteur commencera à comptabiliser le nombre de requêtes au cours des 10 secondes suivantes.

 

Seuils

Des seuils sont appliqués au niveau de l’adresse IP afin de rendre le processus d’autorisation de l’API FedEx résilient. Ce mécanisme est uniquement applicable au service de génération de jetons Auth. Il existe deux types de seuils :

  1. Seuil de rafale : 3 résultats par seconde, en continu, pendant une durée de 5 secondes
  2. Seuil moyen : 1 résultat par seconde, en continu, pendant une durée de 2 minutes
  • Lorsqu’une adresse IP publique dépasse l’une de ces limites de seuil, elle est pénalisée pendant 10 minutes et toutes les autres requêtes effectuées pendant cette période reçoivent un code d’état « 403 Interdit ».
  • Si les consommateurs d’API continuent à dépasser les limites de seuil pendant cette période de pénalité, celle-ci sera prolongée. Les utilisateurs d’API peuvent mettre fin à leur pénalité en ne dépassant pas la limite de seuil pendant les 10 minutes suivantes.
  • Les mécanismes de seuil sont basés sur l’adresse IP publique d’un utilisateur. Si un utilisateur configure 10 instances de machines virtuelles derrière une IP publique, toutes les requêtes provenant de cette adresse IP seront comptabilisées dans la limite du seuil.

 

Gestion du trafic

Chacun des trois mécanismes suivants concerne un aspect spécifique de la gestion du trafic :

  • Quotas appliqués au niveau de l’organisation : le trafic combiné généré par toutes les API d’une organisation sera soumis à ce quota de transactions.

  • Quotas appliqués au niveau du projet : le trafic combiné généré pour une fonctionnalité d’API au sein d’un projet est soumis à ce quota de transactions.

  • Limites de débit appliquées au niveau du projet : le trafic combiné généré par toutes les API d’un projet sera soumis à cette limite de débit.

  • Les seuils sont appliqués au niveau de l’adresse IP.

Remarque : FedEx peut réduire la ou les limites de l’un des mécanismes de restriction susmentionnés afin d’éviter toute utilisation incorrecte, abusive ou excessive. FedEx se réserve le droit de modifier l’allocation sans préavis afin de maintenir un accès équitable entre les consommateurs d’API et d’allouer les ressources de FedEx de manière efficace et efficiente.


FAQ

Toutes les transactions API d’une organisation provenant de différents projets sont-elles comptabilisées dans le quota ?
Le quota est appliqué au niveau de l’organisation. Dans une organisation, vous pouvez avoir un ou plusieurs projets, et dans chaque projet, vous pouvez avoir une ou plusieurs API. Par conséquent, le trafic combiné généré par toutes les API de différents projets (tous sous la même organisation) est comptabilisé dans le quota quotidien.

Si la même erreur 429 est renvoyée pour un dépassement de quota et un dépassement de limite de débit, comment puis-je identifier le type de dépassement que j’ai subi ?
Vous pouvez identifier le dépassement en lisant le message d’erreur.

 

DÉPASSEMENT MESSAGE D’ERREUR
Quotas par organisation Trop de requêtes – Le quota de transactions quotidien est dépassé. Réessayez après 12:00 GMT.
Quotas par projet d’API Trop de requêtes – Le quota de transactions quotidien par projet est dépassé. Réessayez après 12:00 GMT.
Limite de débit Trop de requêtes – Le seuil de limite de débit est dépassé. Réessayez après 10 secondes.
   

Quelle est la solution en cas de dépassement de la limite de seuil ?
Un jeton OAuth est valable pendant une heure. Nous suggérons aux consommateurs d’API d’utiliser ce jeton pendant toute cette heure, puis de demander un nouveau jeton uniquement lorsque le précédent a expiré.

Quel est l’exemple d’un franchissement de la limite de seuil ?
Les créneaux d’observation sont de 5 secondes et de 2 minutes, respectivement pour le seuil de rafale et le seuil moyen. Pendant l’un ou l’autre de ces créneaux, si l’une des limites de seuil est dépassée à partir d’une adresse IP, alors la pénalité de seuil est imposée.

Exemple : si une adresse IP obtient 3 résultats par seconde pendant 2 secondes, puis que le débit de résultats passe en dessous de 3 résultats par seconde, le seuil de rafale n’a pas été franchi. Toutefois, si une adresse IP obtient 3 résultats par seconde de manière continue pendant 5 secondes, puis au moins 15 résultats en 5 , le seuil de rafale de 14 résultats en 5 secondes est dépassé.