> ## Documentation Index
> Fetch the complete documentation index at: https://developers.flowestate.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Límites de tasa

> Presupuesto de requests por organización en tres ventanas. Cómo detectarlos, hacer backoff y evitarlos.

Los rate limits se aplican **por organización** en tres ventanas:

| Ventana             | Límite          |
| ------------------- | --------------- |
| Por segundo (burst) | 3 requests      |
| Por minuto          | 200 requests    |
| Por mes             | 50,000 requests |

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.

```http theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 23
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1750684800
X-RateLimit-Monthly-Remaining: 41280
```

```json theme={null}
{
  "error": {
    "message": "Rate limit exceeded. Retry after 23 seconds.",
    "code": "BAD_REQUEST"
  }
}
```

## 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.

<Tip>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.</Tip>

## 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

<Tip>**Respeta `Retry-After`**. Pausa por esa cantidad de segundos y luego reintenta el mismo request.</Tip>

* **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](mailto:soporte@flowestate.app) — las organizaciones se pueden eximir o configurar con límites personalizados, por organización.
