Rate limits
Limites de requisições por identidade e por IP, em janelas de 60 segundos.
| Identidade | Limite em janela de 60 segundos |
|---|---|
| API key validada (somada entre endpoints) | 300 |
| Rotas públicas, por IP | 120 |
| Tenant inteiro (todas as chaves e sessões somadas) | 600 |
| Proteção anterior à autenticação, por IP | 1200 |
Rotas sensíveis têm orçamentos adicionais por rota, somados ao limite geral: OTP, magic link, OAuth e Turnstile (10 a 30 por minuto por IP), registro, token e revogação de clientes MCP (10 a 30 por minuto por IP) e as rotas autenticadas custosas POST /invoices, POST /invoices/calculate (120 por minuto por tenant), POST /invoices/batches (10 por minuto por tenant) e upload de certificado (10 por minuto por tenant). Health checks, preflight e o recebimento Stripe são isentos. Criar mais API keys não aumenta o teto: o limite do tenant vale para todas somadas.
Headers: X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset (Unix timestamp em segundos). Em 429, o header Retry-After informa os segundos até uma nova tentativa e o corpo traz code: "ERROR_RATE_LIMIT_EXCEEDED". Nas rotas sensíveis, os headers da proteção específica substituem os gerais.