Enviar Mensagens

Enviar Mídia

Envia um arquivo de mídia para um contato. O arquivo deve estar acessível em uma URL pública. Tipos disponíveis: • image: Imagem (JPG, PNG, GIF, WebP). Suporta legenda via text. • video: Vídeo (MP4, AVI, MOV). Suporta legenda via text. • audio: Áudio como arquivo (MP3, OGG, WAV). Aparece com ícone de arquivo de áudio. • ptt: Push-to-Talk: áudio que aparece como mensagem de voz (bolha de microfone). Ideal para humanizar automações. • myaudio: Áudio nativo do WhatsApp (OGG/Opus). Semelhante ao ptt, use quando já tiver o arquivo no formato correto. • ptv: Recado de vídeo (nota de vídeo redonda). Chega sempre em formato circular; vídeo 16:9 é cortado no centro. Ignora legenda (o campo text não aparece). Use MP4 H.264. Aceita durações longas (testado 15 a 180 s) e tamanho dentro do limite de mídia. • document: Documento (PDF, DOCX, XLSX, etc.). Use docName para definir o nome exibido no chat. • sticker: Figurinha animada ou estática (WebP). Limite de tamanho (envio por URL): imagem, vídeo e áudio até ~190 MB; documento até ~500 MB. Acima disso o WhatsApp recusa (HTTP 413 / erro de upload). Observação: ao enviar o arquivo em base64 no corpo da requisição pela API pública (/api/v1), o limite cai para ~2 MB. Por isso, para arquivos maiores, sempre envie por URL.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/send/media

Autenticação por cabeçalhos x-api-key e x-api-secret.

Parâmetros

NomeTipoOndeObrigatórioDescrição
numbertextcorpoSimNúmero (com DDI)
typeselectcorpoSimTipo de Mídia
filetextcorpoSimURL do Arquivo
texttextcorpoNãoLegenda: imagens e vídeos
mentionstextcorpoNãoMarcar membros (somente grupo)
docNametextcorpoNãoNome do arquivo: obrigatório para document
delaynumbercorpoNãoDelay (ms)
digitandoselectcorpoNãoExibe "digitando..." automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.

Exemplo de requisição

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/send/media" \
  -H "x-api-key: SUA_API_KEY" \
  -H "x-api-secret: SEU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","type":"image","file":"https://..."}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/send/media", {
  method: "POST",
  headers: {
    "x-api-key": "SUA_API_KEY",
    "x-api-secret": "SEU_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "number": "5511999999999",
    "type": "image",
    "file": "https://..."
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/send/media",
    headers={"x-api-key": "SUA_API_KEY", "x-api-secret": "SEU_API_SECRET"},
    json={"number":"5511999999999","type":"image","file":"https://..."},
)
print(res.json())

Exemplo de resposta

JSON

{
  "messageId": "ABCDEF123456",
  "status": "sent"
}

Os valores são ilustrativos; os campos seguem o formato real da resposta.

Ver referência completa

Pegue suas chaves de API

Crie sua conta, conecte um número em minutos e comece a usar a API. R$15 por número ativo/mês, com crédito de boas-vindas ao criar a conta, sujeito à campanha vigente.