Saltar al contenido
Rate Limit Story

El 429 explicado con palabras sencillas

Tu API respondió 429. Esto es lo que quería decir en realidad.

Pega las cabeceras de la respuesta. Rate Limit Story lee el límite, lo que queda, cuándo se reinicia y cuánto esperar, y luego escribe una historia en cuatro viñetas y una respuesta lista para el cliente que chocó contra el muro.

Ver las API compatibles
  1. Cliente

    Enviando el lote 501 de 600…

  2. API

    ¡Demasiadas peticiones! El cubo de tokens está vacío.

  3. Rate Limit Story

    Espera 20 s y reintenta con un pequeño retraso aleatorio.

Tira de prueba. Las cifras salen del ejemplo con formato de OpenAI.

Qué es

Un lector gratuito de cabeceras de límite de peticiones. Entiende Retry After, la familia X RateLimit, los campos IETF RateLimit y los formatos de GitHub, OpenAI, Anthropic, Shopify y Discord.

Para quién es

Para dueños de API, soporte a desarrolladores, gestores de socios y cualquiera que acabe de recibir de un cliente una captura de un 429 sin ningún contexto.

Qué resuelve

Las cabeceras de límite son crípticas, mezclan tiempo Unix con segundos y cambian según el proveedor. La gente adivina, reintenta demasiado pronto y queda bloqueada más tiempo.

Cuenta la historia de una respuesta

Todo se lee en esta pestaña. Nada de lo que pegas se sube ni se guarda.

Cargar un ejemplo
Pega las cabeceras en bruto, la salida de curl -i o un objeto JSON con cabeceras. La línea de estado es opcional.

Todavía no hay historia

Pega las cabeceras de una llamada fallida o carga uno de los ejemplos.

Las cabeceras nunca salen de esta página. Aun así, quita las cabeceras de autorización y cookies antes de compartir una captura.

Cabeceras que entiende

Puedes mezclar estilos distintos en un mismo pegado. Da igual si los nombres van en mayúsculas o minúsculas.

Retry After

Retry-After: 20

Segundos o una fecha HTTP. Si aparece, manda sobre cualquier otra pista de reinicio.

Familia X RateLimit

X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792661820

La usan GitHub, las API al estilo de Twitter y muchas otras. El reinicio puede venir en segundos Unix, milisegundos o segundos desde ahora, y la herramienta te dice cuál eligió.

IETF RateLimit

RateLimit-Policy: "default";q=100;w=60
RateLimit: "default";r=7;t=42

Los campos estándar con cuota, ventana, lo que queda y el tiempo hasta el reinicio.

OpenAI y Anthropic

x-ratelimit-remaining-tokens: 0
x-ratelimit-reset-tokens: 18.4s

Cubos separados para peticiones y tokens, con duraciones como 6m0s. El cubo vacío se marca como el que te frena.

Shopify y Discord

X-Shopify-Shop-Api-Call-Limit: 38/40
X-RateLimit-Reset-After: 2.75

Contadores de usado sobre total, reinicio en segundos, cubos, ámbitos y límites globales.

Cómo se usa

  1. Copia las cabeceras

    Desde la pestaña de red del navegador, curl -i, tus registros o la captura que te mandó un cliente. Solo importan las líneas de cabecera.

  2. Pega y cuenta la historia

    Cada cubo se lee por separado, y el que está vacío o más cerca de vaciarse se convierte en el protagonista.

  3. Lee las cuatro viñetas

    Qué pasó, dónde estás, cuándo se reinicia y qué hacer, con las horas en UTC y en tu zona horaria.

  4. Envía la respuesta

    Copia la respuesta lista en el ticket, o toda la historia para tus propias notas.

Conviene saber

  • Explica las cabeceras que pegas. No llama a la API y no ve los límites que la API se guarda para sí.
  • Cuando un valor de reinicio es ambiguo, los números mayores de mil millones se leen como tiempo Unix y los menores como segundos.
  • El ritmo seguro necesita el límite y la duración de la ventana. Muchas API solo envían el límite.
  • Las horas de tu zona usan el reloj de este dispositivo.

Preguntas

¿Por qué GitHub envía 403 en vez de 429?

GitHub responde con 403 a algunas llamadas limitadas. La historia igualmente las trata como limitadas cuando lo que queda es cero.

¿Qué manda, Retry After o la hora de reinicio?

Retry After. Es el servidor diciéndote exactamente cuánto esperar, mientras que el reinicio describe toda la ventana.

¿Qué es el retraso aleatorio y por qué añadirlo?

Una pequeña espera extra al azar. Sin ella, todos los clientes bloqueados reintentan en el mismo segundo y vuelven a chocar con el límite.

¿Es seguro pegar cabeceras reales?

La página no envía nada a ningún sitio. Aun así, quita Authorization y las cookies antes de compartir nada.

Habla con el creador

¿Tienes una pregunta, una idea o una oferta de trabajo? Escribe por X o Telegram.

Apoya al creador

Si esta herramienta te ahorró tiempo, puedes enviar una propina a esta dirección EVM desde tu propia billetera.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA