Limites padrão
Os valores são por projeto. Se a sua operação precisa de mais, fale com a Routa: elevar o limite de um projeto é uma configuração, não um deploy.
O envio de uma mensagem só consome o limite de envios. Ele não disputa tokens com as suas leituras.
Headers de resposta
Os headersRateLimit-* vêm em toda resposta, não só nas rejeitadas, então você pode ajustar o ritmo antes de levar um 429.
Resposta 429
Como reagir
1
Respeite o Retry-After
Espere pelo menos o número de segundos indicado antes de tentar de novo.
2
Use espera exponencial com jitter
Se vários processos são limitados ao mesmo tempo, adicione variação aleatória para não repetirem a requisição juntos.
3
Reduza o ritmo na origem
Use
RateLimit-Remaining para espaçar o envio de lotes. Para disparos grandes, enfileire do seu lado.429 automaticamente, com espera exponencial, jitter e respeito ao Retry-After. Veja Configuração.
Limites do provedor: a Routa absorve
O WhatsApp impõe seus próprios limites de envio por número. Você não precisa gerenciá-los: a Routa os absorve na fila. Uma mensagem já aceita nunca vira erro429 por limite do provedor. Ela espera na fila e é enviada. Você percebe latência, não falha.
Backlog do canal
Se a fila de um canal passa muito da sua capacidade de escoamento, a Routa recusa novos envios para aquele canal com429 e o código channel_backlog_exceeded. É um sinal honesto: aceitar mais trabalho seria prometer um prazo que não dá para cumprir. O limite é alto e por canal. Tente de novo em instantes.
Tamanho do corpo
Todo corpo de requisição tem um limite, verificado antes de ser lido.
Acima do limite, a API retorna
413 payload_too_large.