Appearance
Rate Limit
Para garantir a estabilidade da plataforma, a API da API4COM limita a quantidade de requisições que podem ser feitas em um intervalo de tempo. Os limites são contados em janelas de 1 minuto e, na maioria das rotas, por usuário, ou seja, pelo usuário dono do token de API enviado no cabeçalho Authorization.
Limites por rota
| Rota | Limite por minuto | Contado por |
|---|---|---|
POST /calls | 15 | Ramal + usuário |
POST /dialer (descontinuada) | 15 | Ramal + usuário |
POST /calls/{id}/hangup | 30 | Usuário |
GET /calls | 15 | Usuário |
POST /users/login | 10 | Endereço IP |
| Demais rotas | 60 | Endereço IP |
Resposta ao exceder o limite
Ao exceder o limite, a API retorna o status 429 Too Many Requests:
JSON
{
"error": {
"statusCode": 429,
"errorCode": "RATE_LIMITED",
"name": "TooManyRequests",
"message": "Você excedeu o limite de desligamentos por minuto, por favor tente daqui alguns segundos"
}
}O bloqueio expira sozinho ao fim da janela de 1 minuto. Todas as respostas das rotas com limite incluem os cabeçalhos abaixo, que podem ser usados para controlar o ritmo das requisições:
RateLimit-Limit: Quantidade máxima de requisições na janelaRateLimit-Remaining: Quantidade de requisições restantes na janela atualRateLimit-Reset: Segundos até a janela atual ser reiniciada
Um token por usuário
Como os limites são contados por usuário, não utilize um único token para toda a conta. Se todos os ramais da operação usarem o mesmo token, eles vão dividir a mesma cota: por exemplo, apenas 30 desligamentos por minuto somando todos os ramais.
Gere um token para cada usuário que realiza chamadas e use, em cada requisição, o token do usuário dono do ramal. Se preferir, é possível criar o token com ttl: -1 (que nunca expira) ou manter o tempo de vida padrão de 14 dias. Consulte Autenticação.
Boas práticas
- Ao receber
429, aguarde o tempo indicado emRateLimit-Resetantes de tentar novamente.
