Pular para o conteúdo

Limites de velocidade

As cotas de mensagens e contatos por ciclo de faturamento estão em Cota e uso, junto com os erros 402/429 de cota. Esta página documenta apenas os limites de velocidade, um conceito separado.

Cotas e limites de velocidade

Cota e limite de velocidade são controles diferentes:

CotaLimite de velocidade
O que medeVolume total consumido no ciclo de faturamento (mensagens, contatos distintos)Velocidade instantânea de envios e chamadas
JanelaCiclo de faturamento avaliado (cycle_start → cycle_end)Segundos ou minutos, sem relação com o ciclo
Reseta emresets_at (fim do ciclo)Poucos segundos depois (Retry-After)
Erros típicos402 contact_quota_exceeded · 429 messages_quota_exceeded429 send_rate_spacing · 429 rate_limit_exceeded
Documentado emCota e usoEsta página

Velocidade de envio (por plano)

Cada mensagem enviada via API respeita um intervalo mínimo em relação ao envio anterior no mesmo número: é o espaçamento entre envios que ajuda a proteger o número no WhatsApp. O intervalo depende do plano:

PlanoIntervalo mínimo entre enviosEquivalente em mensagens/min
Gratuito6s10 msg/min
Lobo Solitário1.2s50 msg/min
Empresarial0.6s100 msg/min
Personalizado0.4s150 msg/min

Enviar antes do intervalo mínimo desde o último envio bem-sucedido naquele número retorna 429 com o código send_rate_spacing e o cabeçalho Retry-After (em segundos: o tempo restante até o próximo envio permitido):

Status HTTP: 429
  • Retry-After: 2
{
  "error": "send_rate_spacing"
}

Este limite é por número (principal ou extra): cada número tem seu próprio relógio de espaçamento, então usar números extras aumenta a capacidade total de envio da conta.

Atualização de contatos (por plano)

O endpoint de atualização de contato (POST .../contacts/{contact_id}/refresh) consulta o WhatsApp na hora, ao contrário de uma leitura simples, e por isso tem o seu próprio limite por minuto, que também cresce com o plano:

PlanoAtualizações/min
Gratuito5
Lobo Solitário30
Empresarial120
Personalizado600

Estourar esse limite retorna 429 refresh_rate_limited com o cabeçalho Retry-After.

Pareamento de números extras

Cada POST /v1/numbers/{ref}/pair pede ao WhatsApp um código novo, que gera uma notificação no celular do número, ou um QR code novo. O limite protege o número de ser bloqueado pelo próprio WhatsApp por excesso de pedidos:

EscopoPedidos/min
Por número10
Por conta30

Estourar qualquer um retorna 429 pairing_rate_limited com o cabeçalho Retry-After. Veja Pareamento pela API.

Proteção contra rajadas (igual em todos os planos)

Estes limites são fixos e valem para todos os planos:

  • messages_per_minute: 10.000 envios/minuto por número (proteção contra rajadas). Cada número tem a sua própria contagem, somando todas as requisições enviadas por ele.
  • recipients_per_day: 2.000 mensagens/dia para o mesmo destinatário, por número (proteção contra bloqueio). Não há limite de destinatários distintos por dia: você pode alcançar quantos contatos quiser, respeitando as demais cotas do plano.

Controles internos

Além dos limites de velocidade, o Turbo Notify aplica controles internos para proteger a infraestrutura e evitar abusos. Esses controles podem restringir temporariamente o envio em situações como:

  • Picos anormais de tráfego vindos de uma única conta.
  • Padrões de envio que possam comprometer a estabilidade do serviço.
  • Alta taxa de falhas ou rejeições consecutivas.

Regras do WhatsApp

O WhatsApp tem regras e limites próprios, que valem além dos limites do Turbo Notify. Mensagens que os destinatários não pediram, ou que denunciam como spam, podem levar o WhatsApp a restringir o número mesmo dentro desses limites.

As recomendações de Proteja o seu número ajudam a evitar isso, junto com as políticas do WhatsApp (abre em nova aba) .

Erros relacionados

StatusCódigo de erroDescrição
429send_rate_spacingEnvio antes do intervalo mínimo entre mensagens do plano, no mesmo número.
429refresh_rate_limitedLimite de atualizações de contato ultrapassado.
429messages_per_minute_limit_exceededProteção contra rajadas: mais de 10.000 envios/minuto no mesmo número (veja acima).
429recipients_per_day_limit_exceededProteção contra bloqueio: 2.000 mensagens/dia para o mesmo destinatário, por número (veja acima).
429warmup_limit_exceededNúmero conectado há poucos dias: o volume diário é liberado aos poucos para o WhatsApp não tratar o número novo como suspeito. O cabeçalho Retry-After indica quantos segundos faltam para o limite diário renovar (meia-noite UTC).
429duplicate_burst_blockedO mesmo texto foi enviado para mais de 20 destinatários na última hora, pelo mesmo número. Varie o conteúdo ou espace os envios.
429reply_ratio_too_lowPoucas respostas recebidas em relação ao que o número enviou, sinal de envio não solicitado. Reduza o volume para quem não interage. Vem sem Retry-After: esperar não resolve, o envio volta a ser aceito quando os contatos respondem ou o volume cai.
429pairing_rate_limitedPedidos de pareamento (código ou QR code) acima do limite, veja Pareamento de números extras.
429rate_limit_exceededLimite geral de requisições à API da sua organização ultrapassado (1.000 requisições por segundo). Requisições em paralelo são aceitas enquanto o total do segundo fica abaixo disso. Aguarde o Retry-After e tente novamente.
503service_unavailableServiço temporariamente indisponível, inclusive quando não foi possível identificar o plano da organização. A requisição não foi processada. Tente novamente após alguns instantes.

Para os erros de cota (402 contact_quota_exceeded, 429 messages_quota_exceeded, 402 feature_not_available), veja Cota e uso.

Boas práticas

  • Respeite o cabeçalho Retry-After ao receber um status 429.
  • Distribua o envio ao longo do tempo em vez de enviar tudo de uma vez: o espaçamento mínimo do seu plano já define o ritmo sustentável.
  • Utilize números extras para aumentar a capacidade de envio.
  • Monitore os códigos de resposta da API para identificar rapidamente quando um limite é atingido.
  • Configure webhooks para acompanhar o status das mensagens sem precisar consultar a API repetidamente.