Guía para cuotas y límites de transacciones

FedEx recibe varios miles de solicitudes de API cada día. Para gestionar ese volumen tan amplio, utilizamos tres mecanismos de limitación. En este sentido, se han establecido cuotas, límites de transacciones y umbrales para asignar los recursos de FedEx de forma eficiente.

Las cuotas se establecen por organización y por proyecto API.

 

Cuotas por organización

La cuota de transacciones es la cantidad máxima de solicitudes de API permitidas para una organización en un día. Esto significa que los consumidores de API deben tener en cuenta el número total de solicitudes de API iniciadas para todos los proyectos en una sola organización. Cada solicitud vale lo mismo, independientemente del volumen de datos devueltos en la respuesta de API de FedEx.

Ejemplo: Una organización tiene una cuota de 500 000 solicitudes de API al día. Si una organización alcanza las 500 000 solicitudes enviadas en las primeras horas del día, habrá alcanzado su cuota. Durante el resto del día, se devolverá el mensaje de error «429 Demasiadas solicitudes: Cuota diaria de transacciones superada. Inténtelo de nuevo después de las 12:00 GMT» para cada solicitud hasta el siguiente día

 

Cuotas por proyecto API

Esta cuota se aplica en dos niveles diferentes: proyecto y funciones.

¿Qué entendemos por funciones?

Cada API está clasificada según las funciones que ofrece. Cada grupo de funciones es un conjunto de uno o varios puntos de conexión. Por ejemplo, la función API de seguimiento tiene 6 puntos de conexión de API mientras que la función Validación de dirección tiene solo 1 punto de conexión de API.

El límite de cuota «por función/por proyecto» (PCPP) para la capacidad Seguimiento es de 100 000 solicitudes al día. Esto significa que cuando el tráfico procedente de los proyectos de una organización hacia cualquiera de los 6 puntos de conexión de la función Seguimiento supere dicho límite, enviaremos el mensaje de error «429 Demasiadas solicitudes» hasta el final del día. Esto se aplica a todas las solicitudes de seguimiento posteriores para cualquiera de los 6 puntos de conexión

Ejemplo: Si un proyecto tiene un límite de 100 000 por función de seguimiento (con 6 puntos de conexión), la cantidad total de transacciones para los 6 puntos de conexión se contabilizarán hasta el límite de 100 000. Si su proyecto supera ese límite, en las siguientes transacciones de seguimiento recibirá el código de error «429 Demasiadas solicitudes: Cuota diaria de transacciones superada» durante el resto del día hasta las 12:00 GMT.

 

Límites de transacciones

Cada proyecto tiene un límite de 1400 transacciones por cada 10 segundos. Se aplican restricciones si se supera ese límite de transacciones durante cada intervalo de 10 segundos.

Si se alcanza este límite en los primeros segundos, se restringirán las transacciones enviadas en el tiempo restante de esos 10 segundos. Durante este periodo de restricción, se devolverá el código de error «429: Demasiadas solicitudes».

Si FedEx recibe 1400 solicitudes en los primeros 2 segundos, se limitarán las transacciones posteriores durante los siguientes 8 segundos y se mostrará el mensaje de error «429 Demasiadas solicitudes: Hemos recibido demasiadas solicitudes en un breve periodo de tiempo. Espere unos instantes para volver a intentarlo»

Una vez pasados los 10 segundos, se eliminarán las restricciones y comenzará otro contador para supervisar la cantidad de solicitudes en los siguientes 10 segundos.

 

Umbrales

Los umbrales se aplican a nivel de dirección IP para reforzar el proceso de autorización de API de FedEx. Este mecanismo solo es aplicable al servicio de generación de tokens Auth. Existen dos tipos de umbrales:

  1. Umbral de ráfaga: 3 solicitudes por segundo, de manera continua, durante un intervalo de 5 segundos
  2. Umbral medio: 1 solicitud por segundo, de manera continua, durante un intervalo de 2 minutos
  • Si una dirección IP pública incumple alguno de estos umbrales, se aplicará una penalización durante 10 minutos y las solicitudes que se hagan durante ese periodo de 10 minutos recibirán un código de estado «403 Prohibido»
  • Si los consumidores de API siguen incumpliendo alguno de estos umbrales durante el tiempo de penalización, este último se extenderá. Los usuarios de API pueden finalizar su tiempo de penalización si no incumplen el umbral durante los siguientes 10 minutos
  • Los mecanismos de umbral se basan en la dirección IP pública de un usuario. Si un usuario configura 10 instancias de máquinas virtuales detrás de una IP pública, todas las solicitudes de esa dirección IP contarán para el límite del umbral

 

Gestión del tráfico

Cada uno de esos tres mecanismos se ocupa de un aspecto distinto de la gestión del tráfico:

  • Las cuotas aplicadas a nivel de organización: El tráfico combinado generado por todas las API en una organización estará sujeto a esta cuota de transacciones.

  • Cuotas aplicadas a nivel de proyecto: El tráfico combinado generado para una función API en un proyecto estará sujeto a esta cuota de transacciones.

  • Límites de transacciones aplicados a nivel de proyecto. El tráfico combinado generado por todas las API en un proyecto estará sujeto a este límite.

  • Los umbrales se aplican a nivel de dirección IP.

Atención: FedEx puede fijar los límites de cualquiera de los mecanismos de limitación mencionados para evitar el uso indebido y el uso excesivo. FedEx se reserva el derecho a cambiar la asignación sin previo aviso para mantener un acceso equitativo de los consumidores de API y para asignar los recursos de FedEx de manera efectiva y eficiente.


Preguntas frecuentes

¿Se contabilizan en la cuota todas las transacciones de API de los distintos proyectos de una organización?
La cuota se aplica a nivel de organización. En una organización puede haber uno o varios proyectos y en cada proyecto puede haber una o varias API. En consecuencia, el tráfico combinado generado por todas las API de distintos proyectos de una organización se contabiliza en la cuota diaria.

Si se devuelve el mismo error 429 tanto para un incumplimiento de la cuota como para un incumplimiento del límite, ¿cómo puedo saber qué tipo de incumplimiento he cometido?
Puede identificar el incumplimiento leyendo el mensaje de error.

 

INCUMPLIMIENTO MENSAJE DE ERROR
Cuotas por organización Demasiadas solicitudes: Cuota diaria de transacciones superada. Inténtelo de nuevo después de las 12:00 GMT
Cuotas por proyecto API Demasiadas solicitudes: Cuota diaria por proyecto superada. Inténtelo de nuevo después de las 12:00 GMT
Límite de transacciones Demasiadas solicitudes: Umbral límite de transacciones superado. Vuelva a intentarlo después de 10 segundos
   

¿Cuál es la solución si se rebasa el límite?
Un token OAuth es válido durante una hora. Recomendamos que los consumidores de API usen este token durante esa hora completa y, después, soliciten un nuevo token si el anterior caduca.

¿Cuál podría ser un ejemplo de un caso de rebasamiento del límite?
Tanto los 5 segundos como los 2 minutos son periodos de observación para el umbral de ráfaga y el umbral medio, respectivamente. Durante cualquiera de estos periodos, si se rebasa alguno los límites de los umbrales desde una dirección IP, se impone la penalización del límite.

Ejemplo: Si una dirección IP tiene 3 solicitudes por segundo durante 2 segundos y luego cae por debajo de 3 solicitudes por segundo, el umbral de ráfaga no se ha incumplido. Sin embargo, si una dirección IP tiene 3 solicitudes por segundo continuamente durante 5 segundos, seguidas de 15 solicitudes en 5 segundos, el umbral de ráfaga de 14 solicitudes en 5 segundos se habrá incumplido.