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

> Políticas de rate limiting da API e como lidar com erros de limite de taxa.

# Limites de Taxa

A API da Wappfy aplica limites de taxa para garantir uso justo e estabilidade da plataforma.

## Limites padrão

| Escopo                   | Limite          | Janela   |
| ------------------------ | --------------- | -------- |
| Por usuário              | 100 requisições | 1 minuto |
| Por IP (não autenticado) | 20 requisições  | 1 minuto |

## Headers de rate limit

Toda resposta inclui informações de rate limit:

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

| Header                  | Descrição                                  |
| ----------------------- | ------------------------------------------ |
| `X-RateLimit-Limit`     | Máximo de requisições permitidas na janela |
| `X-RateLimit-Remaining` | Requisições restantes na janela atual      |
| `X-RateLimit-Reset`     | Timestamp Unix de quando a janela reseta   |

## Lidando com limites de taxa

Quando você excede o limite, receberá uma resposta `429`:

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

### Boas práticas

<AccordionGroup>
  <Accordion title="Implemente backoff exponencial">
    Quando receber um 429, aguarde e tente novamente com atrasos crescentes: 1s, 2s, 4s, 8s...
  </Accordion>

  <Accordion title="Use o header Reset">
    Verifique `X-RateLimit-Reset` para saber exatamente quando você pode retomar.
  </Accordion>

  <Accordion title="Agrupe operações quando possível">
    Envie mensagens com atrasos razoáveis entre elas em vez de disparar todas de uma vez.
  </Accordion>

  <Accordion title="Cache de respostas">
    Evite re-buscar dados que não mudaram (ex: detalhes de instância, info de contato).
  </Accordion>
</AccordionGroup>
