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

# Limites de uso

> Teto por club — ou por IP — nas operações de escrita.

Operações que **escrevem** (`POST`, `PUT`, `PATCH`, `DELETE`) têm teto de **60 requisições por
minuto**, em janela fixa. Leituras não são limitadas.

As **credenciais** — do classroom e do dashboard — têm um teto próprio, por cima desse: os `POST`
de `/v1/auth/*` (cadastro, entrada, confirmação, redefinição e troca de código, tanto do aluno
quanto de quem administra em `/v1/auth/admin/*`) aceitam **10 por minuto por IP**. É o teto de quem chuta senha, e por isso é estrito — ver abaixo. Ler a sessão
(`GET /v1/auth/session`) e encerrá-la (`DELETE`) não entram nele: a primeira é leitura, e a
segunda já exige a sessão que se está tentando adivinhar.

A **caixa de entrada dos webhooks** (`POST /webhooks/{platform}/{token}`) tem teto próprio,
de **600 por minuto por IP**: um lançamento com centenas de vendas chega inteiro do mesmo IP
da plataforma, e o teto de escrita o barraria. Ao estourar, a plataforma recebe `429` e reenvia
— nenhum evento é perdido, só adiado.

As **escritas do classroom** (`/v1/clubs/{clubId}/classroom/…`, o progresso do aluno) têm teto de
**600 por minuto por aluno**: é escrita frequente por natureza — o player grava a posição a
cada poucos segundos — e o sujeito ali é o aluno, não o club, senão todos os alunos online
dividiriam um balde só.

O teto é **por club** nas demais rotas escopadas (`/v1/clubs/{clubId}/…`) e **por IP** fora
delas.
A diferença importa nos dois sentidos: um club inteiro atrás de uma mesma saída de rede não
divide cota com os outros, e distribuir as chamadas por vários IPs não multiplica o teto de
um club.

Ao estourar, a resposta é `429` com o código `rate_limited` e o cabeçalho `Retry-After` em
segundos:

```http theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 60

{"error":{"code":"rate_limited","message":"requisições demais, tente de novo mais tarde"}}
```

## Quando o contador falha

Se o contador ficar indisponível, escritas comuns **passam** em vez de serem recusadas —
disponibilidade vence rigor num endpoint que não move dinheiro. Já as credenciais do classroom
respondem `503` com `rate_limit_unavailable`: nelas, rodar sem freio é pior que uma
indisponibilidade curta da tela de entrada.

<Tip>
  Respeite o `Retry-After` em vez de tentar de novo imediatamente. A janela é fixa: repetir
  antes do prazo só consome o teto da janela seguinte.
</Tip>


## Related topics

- [Weve DRM](/essentials/watermark.md)
- [Biblioteca de mídia](/essentials/media.md)
- [Trocar código por sessão](/api-reference/auth/session-exchange.md)
- [Confirmar e-mail](/api-reference/auth/verify-email.md)
- [Acesso ao classroom](/api-reference/clubs/classroom-session.md)
