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 en429, 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 (0en un429por 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.
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.
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.
Buenas prácticas
- 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
queryen lugar de hacer N llamadas individualesGET /leads/{id}cuando necesites consultar varios leads.