Apariencia
Rate limits
Dos tipos de límite protegen la plataforma. Ambos responden 429 con error.code = RATE_LIMITED y un header Retry-After (en segundos).
Peticiones por minuto
Se cuentan por espacio de trabajo contra el presupuesto de tu plan, y por clave contra un tope de 120 por minuto (o el presupuesto del plan, si es menor).
| Plan | Presupuesto del espacio de trabajo | Una clave |
|---|---|---|
| Prueba | 60 / minuto | 60 / minuto |
| ZAPPIO | 600 / minuto | 120 / minuto |
Mensajes por minuto, por instancia
El envío también está limitado por instancia: 10 por minuto en la prueba y 60 por minuto en el plan de pago.
Estos son los valores por defecto de la plataforma y pueden cambiar. Lee los headers en lugar de fijar los números en tu código.
Headers
| Header | Se envía en | Significa |
|---|---|---|
X-RateLimit-Limit | Cada respuesta de una operación con API key. | El presupuesto de la ventana aplicable. |
X-RateLimit-Remaining | Igual. | Peticiones que quedan en la ventana. |
Retry-After | 429 | Segundos que debes esperar. |
X-RateLimit-Reset | 429 | Hora Unix en que se reinicia la ventana. |
SEND_BACKLOG
Es un 429 distinto: la instancia tiene demasiados mensajes sin enviar en espera. Trae Retry-After, pero no los headers X-RateLimit-*. Reintenta después de ese tiempo.
Cómo reaccionar
- Ante un
429, esperaRetry-Aftersegundos y reintenta; no reintentes en un bucle sin pausa. - Reparte los envíos masivos en el tiempo en lugar de lanzarlos todos a la vez.
- Muchas peticiones con una clave inválida también terminan en
429para tu IP.