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

# Rate limits

> Como a API da Nuvia trata limites de requisição hoje

Esta página descreve, de forma factual, os limites de requisição que a API da Nuvia aplica **hoje**.
Para autenticar suas chamadas, veja [Autenticação](/autenticacao).

## API REST (chamadas com API Key)

Atualmente **não há limite de requisições por rota** aplicado às chamadas autenticadas por API Key.
Não publicamos um número de requisições por segundo ou por minuto para a API REST principal porque
não existe um limite desse tipo em vigor.

<Note>
  Mesmo sem limite por rota hoje, projete sua integração para ser resiliente: trate respostas
  `429 Too Many Requests` com **retry e backoff exponencial**. Assim, se limites forem aplicados no
  futuro, seu código já lida com eles sem alteração.
</Note>

## Limites que existem hoje

Alguns fluxos específicos têm limite aplicado. Eles respondem `429 Too Many Requests` com o corpo:

```json theme={null}
{
  "statusCode": 429,
  "message": "..."
}
```

| Fluxo                                    | Limite         | Janela      | Contado por |
| ---------------------------------------- | -------------- | ----------- | ----------- |
| OAuth / MCP (`/token`, `/register`)      | 60 requisições | 60 segundos | Endereço IP |
| Recuperação de senha (`forgot-password`) | 3 requisições  | 1 hora      | E-mail      |

<Warning>
  Essas respostas `429` **não** incluem headers de rate limit — não há `X-RateLimit-Limit`,
  `X-RateLimit-Remaining` nem `Retry-After`. Não dependa desses headers para decidir quando repetir
  a requisição; use sua própria estratégia de backoff.
</Warning>

## Recomendação

<Steps>
  <Step title="Implemente retry com backoff">
    Ao receber `429`, aguarde antes de repetir e aumente o intervalo a cada nova tentativa
    (backoff exponencial), com um teto de tentativas.
  </Step>

  <Step title="Não dependa de headers de limite">
    Como as respostas `429` não trazem headers de rate limit, baseie o backoff no seu próprio
    controle de tempo, não em valores retornados pela API.
  </Step>
</Steps>
