O que é API Rate Limiting
API Rate Limiting é o mecanismo de controle que limita o número máximo de requisições que um cliente (usuário, aplicação, IP) pode enviar a uma API dentro de um período específico. Quando o limite é atingido, requisições adicionais são rejeitadas com o status HTTP 429 Too Many Requests até que a janela reset.
Implementar rate limiting é essencial para proteger APIs contra abuso, ataques de força bruta, scraping descontrolado e degradação de performance causada por clientes mal comportados. Também é o mecanismo central para diferenciar planos de uso em APIs comerciais (free vs paid tiers).
Principais algoritmos
- Fixed Window: Contador zera em intervalos fixos (ex: a cada minuto)
- Sliding Window: Janela móvel mais precisa, evita picos no reset
- Token Bucket: Bucket que recebe tokens em taxa constante; cada requisição consome 1 token
- Leaky Bucket: Requisições processadas em taxa fixa, excedentes descartadas
Onde implementar
- API Gateway: Kong, AWS API Gateway, NGINX (camada ideal)
- Reverse proxy: NGINX, Cloudflare
- Aplicação: Bibliotecas como express-rate-limit (Node), Flask-Limiter (Python)
- Redis: Armazenamento de contadores distribuídos
Exemplos reais
GitHub API permite 5.000 requisições por hora com autenticação. Twitter API limita a 300 requisições a cada 15 minutos. Stripe API ajusta dinamicamente conforme histórico. Combinar com API Keys e ACLs torna a defesa ainda mais robusta.
Leia o artigo completo: API Rate Limiting: estratégias, algoritmos e implementação prática

