Saltar para o conteúdo principal
A API da Enrow aplica limites de taxa para garantir o uso justo e manter a qualidade do serviço. O limite é o mesmo em todos os endpoints e todos os planos, é aplicado por chave de API e é medido em requisições por segundo (RPS). Esta página explica os limites padrão, o que acontece quando você os excede e como permanecer dentro da cota ao escalar.

Quais são os limites de taxa padrão?

Todo endpoint POST permite 10 requisições por segundo por chave de API. O limite é idêntico em todos os endpoints e todos os planos:
EndpointLimite de Taxa
POST /email/find/single10 req/s
POST /email/find/bulk10 req/s
POST /email/verify/single10 req/s
POST /email/verify/bulk10 req/s
POST /phone/single10 req/s
POST /phone/bulk10 req/s
Os endpoints GET não têm limite de taxa, portanto, recuperar resultados — por exemplo, o resultado de email único ou os resultados em lote — não conta para a sua cota.
Os limites de taxa são por chave de API e medidos em requisições por segundo (RPS). Cada chave de API tem sua própria cota independente.

O que acontece quando excedo o limite de taxa?

Quando você excede o limite de taxa, a API retorna uma resposta 429 Too Many Requests:
{
  "message": "Too Many Requests"
}
A maneira recomendada de lidar com um 429 é implementar backoff exponencial — aguardar um atraso progressivamente maior antes de cada nova tentativa, para que a chave de API tenha tempo de voltar a ficar abaixo do limite:
async function requestWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const delay = Math.pow(2, attempt) * 1000;
      await new Promise(resolve => setTimeout(resolve, delay));
      continue;
    }

    return response;
  }

  throw new Error('Max retries exceeded');
}
Para a lista completa de códigos de resposta e como lidar com eles, consulte Códigos de status e Tratamento de erros.

Como posso evitar atingir o limite de taxa?

A maneira mais eficaz de permanecer dentro da cota é enviar requisições menos numerosas e maiores, e receber resultados por meio de webhooks em vez de polling.
Em vez de fazer 100 requisições únicas, faça 1 requisição em lote (até 5.000 itens para email, 3.000 para telefone). Um único POST em lote conta como 1 requisição no seu limite de taxa.
// ❌ 100 requests = 10 seconds at 10 RPS
for (const contact of contacts) {
  await findEmail(contact);
}

// ✅ 1 request
await findEmailsBulk(contacts);
Consulte Encontrar Emails e Verificar Emails para começar.
Fazer polling no endpoint GET desperdiça a cota do seu limite de taxa. Use webhooks para receber resultados automaticamente assim que uma busca ou verificação for concluída.
Armazene resultados para evitar chamadas de API redundantes para o mesmo contato, o que também economiza créditos.

Posso obter limites de taxa maiores?

Sim. A Enrow pode aumentar seu RPS caso a caso. Entre em contato conosco em api@enrow.io com seu caso de uso e volume esperado.

FAQ

Não. O limite de 10 req/s se aplica de forma independente a cada endpoint POST, e a cota é monitorada por chave de API em vez de por conta.
Não. Os endpoints GET não têm limite de taxa, portanto, fazer polling para obter resultados não consome sua cota de RPS. Dito isso, os webhooks ainda são preferíveis ao polling frequente.
Sim. Um único POST em lote conta como 1 requisição no seu limite de taxa, mesmo que possa conter até 5.000 itens para email ou 3.000 para telefone.
Uma resposta 429 Too Many Requests com o corpo { "message": "Too Many Requests" }. Tente novamente com backoff exponencial. Consulte Tratamento de erros para mais detalhes.

Próximos passos

Encontrar emails em lote

Execute até 5.000 buscas de email em uma única requisição para economizar a cota do limite de taxa.

Webhooks

Receba resultados automaticamente em vez de fazer polling nos endpoints GET.

Tratamento de erros

Lide com 429 e outras respostas de forma elegante na sua integração.

Créditos e cobrança

Veja como os créditos são consumidos para cada endpoint.