Planes de uso y límites de tarifas
Obtén información sobre los planes de uso y sobre cómo se usan los límites de tarifas en SP-API.
La confiabilidad de las API depende del tamaño de la capacidad y los recursos para satisfacer las necesidades cambiantes de la aplicación a lo largo del tiempo. Por este motivo, la API de socios vendedores (SP-API) define los planes de uso para controlar la cantidad de solicitudes que puedes realizar a una operación en un período de tiempo determinado.
Los planes de uso dependen de varios factores. Estos factores pueden incluir la cuenta del socio vendedor, la aplicación que llama a la SP-API en nombre de la cuenta del socio vendedor, el mercado, etc.
Este documento describe el algoritmo de limitación de tarifas de la SP-API, los factores que determinan los planes de uso, cómo encontrar tu plan de uso y las preguntas frecuentes sobre cómo trabajar dentro de tus límites de tarifas.
Para obtener orientación sobre cómo optimizar las cargas de trabajo de las aplicaciones para aprovechar los límites de velocidad de cada operación de SP-API de manera eficiente, consulte Optimice los límites de velocidad para las cargas de trabajo de las aplicaciones.
Terminología
Los siguientes términos se refieren a la limitación de velocidad en la SP-API:
- Límite de velocidad: El número máximo de solicitudes que la SP-API permite realizar a una operación concreta por segundo. Para evitar la limitación, manténgase por debajo de este límite.
- Límite de ráfaga: El número máximo de solicitudes para una operación en particular que puedes acumular con el tiempo y luego enviar simultáneamente.
- Plan de uso: La combinación de límite de velocidad y límite de ráfaga que se aplica a una operación específica. Para obtener más información, consulte Tipos de planes de uso y Factores que determinan los planes de uso.
- Algoritmo de depósito de fichas: El algoritmo que utiliza la SP-API para limitar la velocidad de las solicitudes, basado en una analogía del intercambio de tokens por solicitudes de API. Para ver un recorrido por el algoritmo, consulte Algoritmo de limitación de velocidad.
- Aceleración: El caso en el que la SP-API rechaza temporalmente tus solicitudes cuando superas tu límite de velocidad. Una solicitud limitada produce una respuesta de error HTTP 429. Puedes volver a intentar las solicitudes limitadas más adelante.
- Cuenta: La cuenta del socio vendedor en cuyo nombre la aplicación para desarrolladores llama a la SP-API. Para especificar la cuenta, debes proporcionar un
sellerId
cuando llama a ciertas operaciones de SP-API. - Solicitud: La aplicación para desarrolladores que llama a la SP-API en nombre de un socio vendedor. En la consola para desarrolladores del socio vendedor, puedes encontrar el identificador de la aplicación después del nombre de la aplicación.
- Operaciones sin subvenciones: Operaciones que no requieren un
sellerId
como parte de la solicitud. En el caso de las operaciones sin subvención, el socio vendedor no es un factor a tener en cuenta en el plan de uso de esa operación. Para obtener una lista de las operaciones sin subvenciones, consulta Operaciones sin subvenciones.
Algoritmo de limitación de velocidad
La SP-API usa el algoritmo token bucket para limitar la velocidad de las solicitudes a la API. El algoritmo se basa en la analogía de un bucket que contiene tokens, donde puedes intercambiar cada token por una solicitud a la API.
En esta analogía, la SP-API agrega automáticamente los tokens a su depósito a una velocidad fija por segundo hasta alcanzar el tamaño máximo del depósito. El tamaño máximo también se denomina velocidad de ráfaga.
Cuando llamas a la SP-API, la SP-API recupera tu plan de uso (límite de velocidad y límite de ráfaga) para esa operación en función del token de acceso que identifica la identidad de la persona que llama en el encabezado de la solicitud. Cada solicitud que realices a la SP-API resta un token del bucket. La limitación se produce cuando haces una solicitud para la que no hay ningún token disponible porque tu depósito está vacío. Una solicitud limitada produce una respuesta de error.
La siguiente ilustración muestra cómo funciona la limitación de velocidad en función del algoritmo de depósitos de fichas y los criterios de asignación de depósitos. El ejemplo utiliza una operación que tiene un límite de velocidad de uno y un límite de ráfaga de dos.
- El cubo está inicialmente lleno y contiene dos fichas (límite de ráfaga). A las 01:00:100, una aplicación inicia una operación de la SP-API en nombre de un socio vendedor que opera en el mercado de la UE. La solicitud se ha realizado correctamente. El bucket ahora contiene un único token porque la solicitud agotó un token del bucket.
- Transcurridos 100 milisegundos, a las 01:00:200, la misma aplicación llama a la misma operación en nombre del mismo socio vendedor de la misma región. La solicitud se realiza correctamente y utiliza el último token del bucket. El depósito ahora está vacío.
- Transcurridos otros 100 milisegundos, a las 01:00:300, la misma aplicación llama a la misma operación en nombre del mismo socio vendedor de la misma región. Esta vez, debido a que los límites están agotados (depósito vacío), la solicitud se limita.
- Un segundo después del inicio de este ejemplo, a las 01:01:000, la SP-API coloca un token en el bucket, porque el límite de velocidad es de un token por segundo. La aplicación ahora puede ejecutar la operación correctamente sin sufrir ningún tipo de limitación.
- Tras un segundo más, a las 01:02:00, la SP-API añade otro token al bucket.
- A la 01:03:00, la SP-API no agrega otro token al bucket porque el bucket ha alcanzado su tamaño máximo (límite de ráfaga).
Los factores que determinan los límites de velocidad y ráfaga hacen que, en algunos casos, haya un depósito de fichas independiente. En este ejemplo, hay dos fichas disponibles a las 01:00:200 en los siguientes casos:
- La misma aplicación desencadena la misma operación, pero en nombre de un socio vendedor diferente.
- La misma aplicación llama a la misma operación en nombre del mismo socio vendedor, pero con las credenciales de una cuenta regional diferente.
- Una aplicación diferente desencadena la misma operación en nombre del mismo socio vendedor.
En la siguiente ilustración se muestran estos escenarios alternativos.
Factores que determinan los planes de uso
Los límites de velocidad y ráfaga para cada operación de SP-API dependen de varios factores, y se pueden aplicar varios planes de uso a una operación individual. La velocidad de las solicitudes está limitada según el umbral que se alcance primero.
La SP-API se basa en los siguientes factores para asignar los planes de uso:
- Funcionamiento de la API: Cada operación de la SP-API tiene sus propios límites de velocidad y ráfaga predeterminados. Puede encontrar estos límites, o un enlace a la documentación que enumera los límites, en la documentación de referencia de la API para cada operación.
- Pareja de socio vendedor (cuenta) y aplicación: Los límites de velocidad de la mayoría de las operaciones se establecen según el par de socios vendedores y aplicaciones. La aplicación llama a la SP-API en nombre del socio vendedor. Las operaciones sin subvención son excepciones a esta regla. Las solicitudes pueden convocar operaciones sin subvención sin la autorización de un socio vendedor. En el caso de las operaciones sin subvenciones, los planes de uso se definen en función de los demás criterios de esta sección.
- Regiones y mercados: Los planes de uso están vinculados implícitamente a los grupos de mercado en los que opera un socio vendedor y ha autorizado una aplicación para utilizar la SP-API en su nombre. La naturaleza implícita de este factor limitador de tarifas depende de las diferentes cuentas de los socios vendedores de cada mercado. Las diferentes cuentas de socios vendedores de una plataforma específica tienen diferentes identificadores de vendedor.
Tipos de planes de uso
Cada operación de SP-API está asociada a un plan de uso. Un plan de uso especifica un límite de velocidad y un límite de ráfaga. Para obtener más información sobre cómo encontrar tu plan de uso, consulta Cómo encontrar tu plan de uso. Hay dos tipos de planes de uso: estándar y dinámico.
-
Planes de uso estándar: La mayoría de las API de SP se rigen por planes de uso estándar. Con un plan de uso estándar, los límites de tarifa tienen valores estáticos para todas las personas que llaman en función de los patrones de llamadas esperados para cada operación. Puedes encontrar el plan de uso o un enlace a la documentación que enumera el plan de uso en la documentación de referencia de la API para cada operación.
-
Planes de uso dinámicos: Algunas operaciones y API de SP tienen planes de uso dinámicos. Un plan de uso dinámico es aquel que se ajusta automáticamente a cada socio vendedor en función de las necesidades comerciales actuales e históricas de ese negocio. Dado que el propósito de los planes de uso dinámico es ajustar esos límites a lo largo del tiempo, las tarifas pueden cambiar. Hay una variedad de métricas comerciales de los socios vendedores que influyen en los ajustes de las tarifas. Estas métricas son solo métricas empresariales y no incluyen un número histórico de solicitudes de API. Las tasas no aumentan de forma dinámica porque una aplicación realiza solicitudes de API con mayor frecuencia.
Los planes de uso dinámico solo se aplican a las siguientes API y operaciones de SP.
API del colaborador comercial Operations Pedidos V0 Todas las operaciones Precio de los productos v2022-05-01 getFeaturedOfferExpectedPriceBatch
Cómo encontrar tu plan de uso
Puedes encontrar tu plan de uso (límites de velocidad y ráfaga) de las siguientes maneras:
-
Documentación de SP-API: Puedes encontrar estos límites, o un enlace a la documentación que enumera los límites, en la documentación de referencia de la API para cada operación.
-
Encabezado de respuesta: Al llamar a una operación de SP-API, el
x-amzn-RateLimit-Limit
el encabezado de respuesta, si está disponible, especifica los límites de velocidad de la operación por par cuenta-aplicación. Sin embargo, no debe depender de que este encabezado esté presente, por los siguientes motivos:- En algunos casos, a pesar de hacer todo lo posible, la SP-API no puede recuperar los límites de velocidad. En este caso, la SP-API no falla en una llamada a la operación que de otro modo sería válida. En su lugar, la SP-API devuelve la respuesta sin
x-amzn-RateLimit-Limit
encabezado. - El
x-amzn-RateLimit-Limit
el encabezado de respuesta es para los códigos de estado HTTP 20x, 400 y 404. La solicitud no autorizada o no autenticada no incluye este encabezado. - El
x-amzn-RateLimit-Limit
el encabezado no incluye los límites tarifarios de otros planes de uso.
Esto significa que no debes depender de la presencia del encabezado de respuesta
x-amzn-RateLimit-Limit
. En su lugar, comprueba la presencia del encabezado antes de intentar utilizar el valor de límite de tasa. - En algunos casos, a pesar de hacer todo lo posible, la SP-API no puede recuperar los límites de velocidad. En este caso, la SP-API no falla en una llamada a la operación que de otro modo sería válida. En su lugar, la SP-API devuelve la respuesta sin
Preguntas frecuentes
Los límites de tasa para una operación son demasiado bajos para mi caso de uso. ¿Se puede aumentar el límite?
Nuestro objetivo es establecer límites del tamaño adecuado, con el objetivo de que, idealmente, nunca se limiten los patrones de llamadas eficientes. Si su aplicación se limita constantemente, puede significar que puede optimizar aún más sus patrones de llamadas. Para obtener más información, consulte ¿Qué debo hacer si mi solicitud es constantemente limitada. Si considera que las tasas predeterminadas no son suficientes, consulte Estrategias para optimizar los límites de velocidad para las cargas de trabajo de sus aplicaciones.
¿Cómo debe gestionar mi aplicación una respuesta 429?
Un 429 es un código de estado que se puede volver a intentar. Puedes volver a intentarlo, pero las solicitudes repetidas y limitadas requieren una estrategia de retroceso. Usa el x-amzn-RateLimit-Limit
encabezado de respuesta, cuando esté disponible, para determinar si los límites de tarifas difieren de tus expectativas. Para obtener más información sobre cuándo estará disponible este encabezado, consulte Cómo encontrar tu plan de uso.
¿Cómo puedo probar mi aplicación con respecto a sus planes de uso?
Puedes probar la gestión de errores 429 mediante el entorno limitado de la API de socios vendedores. Sin embargo, no puedes probar los límites de velocidad con el entorno limitado porque, si bien las operaciones en producción pueden tener distintos ritmos, todas las operaciones del entorno limitado comparten el mismo ritmo. Puedes encontrar las tarifas de uso asignadas en el x-amzn-RateLimit-Limit
encabezado de respuesta para cada operación, cuando esté disponible. Para obtener más información sobre cuándo está disponible este encabezado, consulte Cómo encontrar tu plan de uso.
¿Puede mi aplicación evitar por completo verse limitada?
No. Cualquier número de factores que estén fuera de su control puede provocar unos pocos 429 transitorios. El código de su aplicación debe tener en cuenta esta posibilidad.
¿Qué debo hacer si mi aplicación está constantemente limitada?
Si su aplicación se limita constantemente, es posible que necesite optimizar aún más sus patrones de llamadas. Por ejemplo:
-
Llama con menos frecuencia y mantente dentro de tus límites de tarifas.
-
Confíe en las notificaciones automáticas en lugar de en los mecanismos de sondeo.
-
Usa las API por lotes cuando estén disponibles o intenta hacer más con menos llamadas. Por ejemplo, con Se alimenta y Informes API, puedes enviar o recuperar más información por llamada. Por lo general, examina tus patrones de llamadas comparándolos con las operaciones de una API para determinar si puedes hacer el mismo trabajo con menos llamadas.
¿Mi aplicación estará limitada con más frecuencia a medida que obtenga más autorizaciones?
No. Los planes de uso son específicos para la aplicación y el socio vendedor, de modo que su rendimiento crezca de forma natural con sus clientes.
¿Cambiarán los límites de tasa?
Podríamos aumentar los límites de tasa en cualquier momento. Si alguna vez reducimos los límites de tasa publicados en la documentación de referencia de la API, comunicaremos el cambio con antelación para que tengas tiempo de actualizar y probar tus aplicaciones antes de que se publique el cambio.
Los límites de tarifas de los planes de uso dinámico se ajustan automáticamente al alza o a la baja según el contexto empresarial.
¿Aumentarán mis límites de tasa si mi aplicación está constantemente limitada?
Las tarifas se basan en las métricas comerciales del socio vendedor. Si tu solicitud se limita constantemente, es probable que tus patrones de llamadas no estén alineados con los límites de tarifas asignados a ese socio vendedor. Consulta ¿Qué debo hacer si mi solicitud se limita constantemente? y Los límites de velocidad para una operación son demasiado bajos para mi caso de uso. ¿Se puede aumentar el límite?.
¿Cuál es el objetivo global de los planes de uso dinámico?
Históricamente, hemos observado que los planes de uso homogéneos son demasiado grandes para algunas situaciones y, lo que es peor, insuficientes para otras. El objetivo de los planes de uso dinámico es aprovechar el contexto empresarial conocido de una llamada determinada para establecer los límites adecuados para cualquier situación.
¿Qué factores influyen en los planes de uso dinámico?
En general, los límites de tasa están determinados por el tipo, el tamaño y el comportamiento de la empresa del colaborador comercial.
¿Con qué frecuencia cambiarán los límites asociados a un plan de uso determinado?
Nuestro objetivo es evitar cambios frecuentes y molestos en los límites. Por lo general, los límites se modificarán en cuanto detectemos cambios significativos en las métricas empresariales de una cuenta de colaborador comercial.
¿Cómo debo codificar mi aplicación para respetar los límites dinámicos?
Las siguientes sugerencias pueden ayudar a tu aplicación a gestionar los límites de velocidad dinámicos:
-
Lea el
x-amzn-RateLimit-Limit
encabezado, si está disponible. Para obtener más información sobre cuándo está disponible este encabezado, consulte ¿Cómo encontrar tu plan de uso. -
No codifiques los temporizadores en el código fuente.
-
Codifica de forma natural en función de los eventos en lugar de ejecutarlo en bucle. Si usas eventos, no necesitas un temporizador. Por ejemplo, actualiza los precios en respuesta a las notificaciones de precios en lugar de cada cierto número de segundos.
Actualizado hace 2 meses