Paginação
Listas (GET /chats, GET /contacts, GET /queue…) aceitam ?page= e ?page_size= e respondem no mesmo envelope:
GET /business/products usa cursor (next_cursor) em vez de página, porque é o que o WhatsApp devolve.
Rate limit
Cada instância tem um token bucket: 60 requisições por segundo sustentadas, com rajadas de até 120. Toda resposta informa o estado:
Ao estourar, a resposta é
429 com { "error": { "code": "rate_limited" } }. O limite conta requisições HTTP, não mensagens: uma chamada de send-text vale uma requisição mesmo que a mensagem fique um minuto na fila.
Limites
Idempotência
A API não tem chave de idempotência. Repetir umPOST /send-* envia duas mensagens. Se a chamada falhou por rede antes de você ler a resposta, confira GET /queue (a mensagem ainda pode estar lá) ou espere o webhook delivery antes de tentar de novo. Do lado dos webhooks, use event_id para descartar entregas repetidas.