Skip to content

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 ​

RotaLimite por minutoContado por
POST /calls15Ramal + usuário
POST /dialer (descontinuada)15Ramal + usuário
POST /calls/{id}/hangup30Usuário
GET /calls15Usuário
POST /users/login10Endereço IP
Demais rotas60Endereç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 janela
  • RateLimit-Remaining: Quantidade de requisições restantes na janela atual
  • RateLimit-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 em RateLimit-Reset antes de tentar novamente.

Released under the MIT License.