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

# Limites de tasa

> Politicas de limitacion de tasa de la API y como manejar errores de limite de tasa.

# Limites de tasa

La API de Wappfy aplica limites de tasa para garantizar un uso justo y la estabilidad de la plataforma.

## Limites predeterminados

| Alcance                    | Limite          | Ventana  |
| -------------------------- | --------------- | -------- |
| Por usuario                | 100 solicitudes | 1 minuto |
| Por IP (sin autenticacion) | 20 solicitudes  | 1 minuto |

## Headers de limite de tasa

Cada respuesta incluye informacion sobre el limite de tasa:

```http theme={null}
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1707580800
```

| Header                  | Descripcion                                           |
| ----------------------- | ----------------------------------------------------- |
| `X-RateLimit-Limit`     | Maximo de solicitudes permitidas en la ventana        |
| `X-RateLimit-Remaining` | Solicitudes restantes en la ventana actual            |
| `X-RateLimit-Reset`     | Marca de tiempo Unix de cuando se reinicia la ventana |

## Manejo de limites de tasa

Cuando excedes el limite, recibiras una respuesta `429`:

```json theme={null}
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests, please try again later"
  }
}
```

### Buenas practicas

<AccordionGroup>
  <Accordion title="Implementar retroceso exponencial">
    Cuando recibas un 429, espera y reintenta con intervalos crecientes: 1s, 2s, 4s, 8s...
  </Accordion>

  <Accordion title="Usar el header Reset">
    Consulta `X-RateLimit-Reset` para saber exactamente cuando puedes reanudar.
  </Accordion>

  <Accordion title="Agrupar operaciones cuando sea posible">
    Envia mensajes con intervalos razonables entre ellos en lugar de enviarlos en rafaga.
  </Accordion>

  <Accordion title="Cachear respuestas">
    Evita volver a solicitar datos que no han cambiado (por ejemplo, detalles de instancia, informacion de contacto).
  </Accordion>
</AccordionGroup>
