Skip to main content
Los rate limits se aplican por organización en tres ventanas: Las tres aplican a la vez. La primera ventana que excedas devuelve 429 Too Many Requests con un header Retry-After que indica cuánto esperar a que esa ventana se reinicie.

Headers de respuesta

Estos headers están presentes tanto en respuestas exitosas como en 429, para que puedas seguir tu presupuesto restante sin esperar a que te limiten:
  • X-RateLimit-Limit — el techo por minuto.
  • X-RateLimit-Remaining — requests restantes en la ventana de minuto actual (0 en un 429 por minuto).
  • X-RateLimit-Reset — timestamp Unix (segundos) en que se reinicia la ventana de minuto.
  • X-RateLimit-Monthly-Remaining — requests restantes de tu cuota mensual.
La respuesta 429 lleva además Retry-After — segundos a esperar antes de reintentar. Usa este valor, no hardcodees delays.

Costo ponderado

La mayoría de los endpoints cuestan 1 request contra cada ventana. La excepción es lanzar una secuencia (POST /sequences/{id}/launch): carga tu cuota mensual de forma proporcional al número de contactos encolados. Inscribir 5,000 leads consume aproximadamente 5,000 unidades mensuales — así que la inscripción masiva no es “gratis.” Las ventanas por segundo y por minuto siguen contando un lanzamiento como un solo request; solo la cuota mensual recibe el costo ponderado. Esta ponderación aplica a todos los canales, incluidas las secuencias de WhatsApp — el costo es el número de contactos encolados. Enviar un mensaje de WhatsApp puntual (POST /whatsapp/send) cuesta 1 unidad mensual por mensaje, como cualquier request ordinario — no es ponderado.
Revisa X-RateLimit-Monthly-Remaining antes de un lanzamiento grande. Si te quedan 41,280 requests mensuales e intentas inscribir 50,000 leads, el lanzamiento agotará tu cuota mensual.

Exenciones

Algunas organizaciones no están sujetas a estos límites:
  • Organizaciones en el plan lifetime.
  • Cualquier organización que un administrador haya eximido explícitamente.
Las organizaciones exentas también pueden configurarse con límites personalizados (techos por segundo / por minuto / mensuales más altos) en lugar de ser completamente ilimitadas.

Buenas prácticas

Respeta Retry-After. Pausa por esa cantidad de segundos y luego reintenta el mismo request.
  • Distribuye operaciones masivas. A 200 requests/minuto puedes empujar de forma sostenible ~3 requests/segundo; apunta a quedarte bajo el burst por segundo de 3 para tener margen.
  • Vigila la cuota mensual. Los 50,000 requests/mes se comparten en toda la organización, y los lanzamientos de secuencias descuentan esa cuota por el número de contactos inscritos. Presupuesta en consecuencia.
  • Cachea lookups de catálogo (/lead-sources, /pipeline/stages, /webhooks/events) en lugar de pegarles en cada request — cambian poco.
  • Agrupa lecturas con el filtro query en lugar de hacer N llamadas individuales GET /leads/{id} cuando necesites consultar varios leads.

Cuando chocas con el techo

Si tu integración legítimamente necesita más de lo que da el presupuesto por defecto, contacta a soporte@flowestate.app — las organizaciones se pueden eximir o configurar con límites personalizados, por organización.