Cuotas de velocidad de solicitudes y topes de créditos / gasto para la API de Pioneer, cómo manejar los errores 429 y cómo solicitar límites más altos
La API de Pioneer aplica dos cosas independientes que pueden detener una solicitud: límites de velocidad de solicitudes que restringen cuántas llamadas a la API puedes hacer por minuto o por hora, y límites de uso basados en créditos que restringen cuánto puedes gastar. Superar un límite de velocidad de solicitudes devuelve429 Too Many Requests. Quedarte sin créditos o alcanzar el tope de excedente de tu plan devuelve 402 Payment Required o 403 Forbidden en su lugar — consulta Límites de créditos y tope de gasto por excedente más abajo.
Límites de velocidad de solicitudes
Dos capas independientes protegen la API:- Límite de velocidad en el borde — se aplica siempre a cada solicitud en el balanceador de carga, antes de que llegue a la API, independientemente del endpoint o la autenticación. Se agrega por la dirección IP que observa el borde, que no siempre es la IP real del cliente de tu aplicación (por ejemplo, las solicitudes que pasan por un salto de salida compartido se agregan juntas). Límite: 100.000 solicitudes / 60 segundos.
- Límite por endpoint — la mayoría de los endpoints de abajo aplican su propio límite ceñido a tu equipo de facturación (recurriendo a la clave de API, luego al usuario, y luego a la IP del cliente para solicitudes no autenticadas). Este es el límite que gobierna a un llamador normal autenticado. Reemplaza el valor por defecto genérico por IP para ese endpoint en lugar de sumarse sobre él — el valor por defecto por IP solo gobierna los endpoints sin una anulación listada.
Para una sola clave de API o equipo, el límite por endpoint indicado arriba es el que realmente aplica. El límite de borde de 100.000 solicitudes / 60 segundos es un tope separado, siempre activo, compartido por todo el tráfico a través del mismo balanceador de carga — solo entra en juego cuando muchos llamadores distintos comparten la misma IP observada y colectivamente lo superan.
Límites de créditos y tope de gasto por excedente
La inferencia se factura contra un saldo de créditos en lugar de una ventana de velocidad de solicitudes (1 crédito = $0,01). Cada plan incluye una asignación de créditos — el plan Free concede una asignación única que no se renueva, mientras que los planes de pago renuevan sus créditos incluidos cada mes de facturación. Una vez usados los créditos incluidos de un plan de pago, el uso adicional se cobra por facturación de excedente (si está habilitada) hasta el gasto máximo mensual por excedente de ese plan; en el plan Free, quedarte sin créditos simplemente detiene la inferencia hasta que añadas créditos o mejores tu plan. Superar un límite de créditos no devuelve429 Too Many Requests. En su lugar devuelve:
402 Payment Requiredcuando tus créditos incluidos están agotados y no hay saldo utilizable del que extraer (code: "out_of_credits").403 Forbiddencuando se ha alcanzado el gasto máximo mensual por excedente de tu plan (code: "credit_ceiling_reached").
Manejo de respuestas 429
Cuando superas un límite, la API devuelve429 Too Many Requests e incluye un encabezado Retry-After que te indica cuántos segundos esperar antes de reintentar.
cURL
429 con un simple bucle de espera y reintento:
Python
Las denegaciones por créditos y por excedente (
402/403, consulta Límites de créditos y tope de gasto por excedente) no se resolverán esperando — el bucle de reintento anterior solo se aplica a respuestas 429. Un 402/403 requiere una acción de facturación (añadir créditos, habilitar la recarga automática o mejorar el plan) antes de que la siguiente solicitud pueda tener éxito.