Envia um arquivo de midia (imagem, video ou documento)
POST/message/sendMedia
proactive: true submete o envio a TODOS os gates do AntiBanGuard, na ordem: opt-in -> blacklist -> numero existe no WhatsApp -> circuit breaker (vermelho pausa envios) -> janela de horario -> limite diario (warmup + curva intradiaria) -- alem do espacamento de 30-90s entre proativas (dobrado quando o estado de saude esta amarelo). proactive: false (padrao) e o caminho REATIVO -- resposta a quem escreveu -- e PULA todos os gates. force: true dispensa apenas o gate de opt-in; blacklist e circuit breaker vermelho nunca sao dispensados. O retorno e ResultadoEnvio: queued significa ENFILEIRADO, NAO enviado -- o envio real acontece no worker, apos o espacamento, que RE-AVALIA os gates antes de disparar (um job pode ser recusado ali mesmo tendo passado pelo gate no enfileiramento). scheduled significa adiado (fora da janela de horario ou cota do dia esgotada); o worker reagenda e re-avalia os gates de novo quando chegar a hora. rejected significa barrado antes de entrar na fila; reason diz qual gate recusou. template + vars aceitam Spintax ({oi|ola} para variacao aleatoria e {{nome}} para substituicao), util para nao repetir texto identico em disparos em massa. Aceita a midia via url ou base64 (nao ambos). Quando vem por url, o servidor baixa o arquivo (nao o client do whatsapp-web.js): a URL passa pela guarda de SSRF (bloqueia esquemas diferentes de http/https e enderecos de rede interna) e o download e limitado a 20MB.
Request
Responses
- 200
- 400
- 404
- 413
Enfileirado, adiado ou recusado -- ver status (e reason quando rejected)
Nem url nem base64 foram informados, mimetype ausente ao enviar base64, ou a url foi bloqueada (esquema invalido ou aponta para rede interna -- guarda de SSRF)
Instancia nao encontrada (nao registrada neste container ou nao persistida no banco)
Midia baixada via url excede o limite de 20MB