# Rate limits e uso

Como as requisições são contabilizadas no seu plano, como é a resposta 429 e o limite de tamanho de uma única requisição.

<Warning>
  **Voltado para o futuro.** O rate limiting, os limites de uso e as respostas
  `402`, `403` e `429` fazem parte do contrato da API, mas **ainda não
  são aplicados**. Esta página descreve como eles se comportam para que você
  possa construir um cliente preparado para eles. Nenhum limite numérico é
  publicado aqui para eles, porque nenhum está em vigor. Os limites de
  tamanho da requisição são a exceção: já valem hoje, e o limite é publicado
  mais abaixo.
</Warning>

O PDF Blocks foi construído para se degradar com elegância sob carga e para
manter seu uso visível. Esta página explica como o uso é contabilizado, como o
rate limiting se manifesta e como dimensionar suas requisições.

## Como o uso é contabilizado

O uso é contabilizado por plano e acompanhado no seu
[dashboard](https://dashboard.pdfblocks.com). O dashboard é a fonte da verdade
sobre o que você consumiu do seu plano, tanto o número de documentos processados
quanto o número de requisições feitas. Consulte-o para monitorar o consumo e ver
o quanto você está perto do limite do seu plano.

Como a API é *stateless*, cada requisição é contabilizada por si só; não há
sessões nem lotes a conciliar. Uma ação de vários documentos, como uma divisão,
ainda conta como uma única requisição.

## Os rate limits e a resposta 429

Quando o rate limiting for aplicado, as requisições que excederem o volume
permitido pelo seu plano serão respondidas com `429 Too Many Requests` e um
corpo [problem+json](/docs/api/errors). Um `429` é transitório: a mesma
requisição terá sucesso assim que você reduzir o ritmo.

Construa seus clientes para lidar com isso desde o primeiro dia:

- **Aumente a espera exponencialmente.** Em um `429`, aguarde antes de tentar de
  novo e aumente o intervalo a cada `429` seguinte (dobrando-o, por exemplo), em
  vez de repetir a chamada imediatamente em um laço apertado.
- **Respeite o `Retry-After`.** Quando a resposta trouxer um cabeçalho
  `Retry-After`, aguarde pelo menos esse tempo antes de tentar de novo, em vez
  de usar o seu próprio intervalo.
- **Acrescente variação aleatória.** Varie um pouco o intervalo de espera para
  que workers paralelos não tentem de novo em sincronia.
- **Limite as tentativas.** Desista depois de um número razoável de tentativas e
  exponha a falha, em vez de tentar para sempre.

A mesma estratégia de espera vale para o raro erro de servidor `5xx`.

## Limites de tamanho da requisição

Cada plano limita o tamanho de um único documento de entrada: 5 MB no Free,
10 MB em qualquer outro plano (veja [Preços](/pricing)). Uma requisição cujo
corpo exceda esse limite é rejeitada com `413 Payload Too Large` e retorna
um corpo [problem+json](/docs/api/errors) sem ser processada. Diferentemente
de um `429`, um `413` não terá sucesso em uma nova tentativa: envie um
arquivo menor, ou peça para elevarmos o limite da sua conta se você
precisar de mais com frequência.
## Respostas relacionadas ao faturamento

Mais dois códigos reservados dizem respeito à sua conta, e não à requisição
individual:

- **`402 Payment Required`**: uma condição de faturamento ou de cota no seu
  plano. Resolva-a no [dashboard](https://dashboard.pdfblocks.com).
- **`403 Forbidden`**: sua chave é válida, mas não tem permissão para usar o
  recurso solicitado.

Os dois aparecem no catálogo de [Erros](/docs/api/errors), junto com o formato
completo da resposta.
