Rate Limiting
A API do ION Guard implementa limites de requisição para proteger o sistema contra uso excessivo e garantir disponibilidade para todos os clientes.
Tiers
| Tier | Limite | Escopo | Endpoints |
|---|---|---|---|
| api | 60 req/min | Por usuário (ou IP se não autenticado) | Todos os endpoints autenticados |
| api-auth | 5 req/min | Por IP | Login, refresh, logout |
| api-driver | 300 req/min | Por IP | Endpoints de ingestão de dados de hardware |
Headers de resposta
Toda resposta da API inclui headers indicando o estado do rate limiting:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
| Header | Descrição |
|---|---|
X-RateLimit-Limit | Limite máximo de requisições no período |
X-RateLimit-Remaining | Requisições restantes no período atual |
Quando o limite é excedido
A API retorna status 429 Too Many Requests:
HTTP/1.1 429 Too Many Requests
Retry-After: 34
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
{
"message": "Too Many Attempts."
}
| Header | Descrição |
|---|---|
Retry-After | Segundos até o limite ser renovado |
Boas práticas
- Cache respostas quando possível — evite buscar dados que não mudaram
- Respeite o
Retry-After— espere o tempo indicado antes de tentar novamente - Use WebSocket para dados em tempo real ao invés de polling frequente na API
- Paginação eficiente — solicite apenas os dados necessários com o parâmetro
limit
Tier de driver
O tier api-driver (300 req/min) é destinado a integrações de hardware que precisam enviar dados com alta frequência (ex: sinais BLE de antenas). Se sua integração precisa de limites maiores, entre em contato com o administrador do sistema.