Skip to content

Enviar Mídia

Endpoint para enviar arquivos de mídia (imagens, documentos, vídeos, áudios) via WhatsApp.

Endpoint

http
POST /message/sendMedia/{apiToken}

Headers

NomeTipoDescrição
apikeystringSua chave de API
Content-TypestringDeve ser application/json

Corpo da Requisição

json
{
  "number": "string",
  "options": {
    "delay": 123,
    "presence": "composing"
  },
  "mediaMessage": {
    "mediaType": "image",
    "fileName": "arquivo.pdf",
    "caption": "string",
    "media": "string"
  }
}

Parâmetros do Corpo

CampoTipoDescrição
numberstringNúmero do destinatário (formato: DDI+DDD+Número)
optionsobjectConfigurações adicionais da mensagem
mediaMessageobjectConteúdo da mídia

Objeto options

CampoTipoDescrição
delayintegerTempo de presença em milissegundos antes do envio
presenceenumTipo de presença a ser exibida. Opções: "composing", "recording"

Objeto mediaMessage

CampoTipoDescrição
mediaTypeenumTipo de mídia: "image", "video", "document", "audio"
fileNamestringNome do arquivo (obrigatório apenas para tipo "document")
captionstringLegenda da mídia (não disponível para tipo "audio")
mediastringURL ou Base64 do arquivo de mídia

Exemplos de Requisição

Enviando uma Imagem

javascript
const options = {
  method: 'POST',
  headers: {
    apikey: 'sua-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    number: "5511999999999",
    options: {
      delay: 1000,
      presence: "composing"
    },
    mediaMessage: {
      mediaType: "image",
      caption: "Minha foto",
      media: "base64_ou_url_da_midia"
    }
  })
};

Enviando um Documento

javascript
const options = {
  method: 'POST',
  headers: {
    apikey: 'sua-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    number: "5511999999999",
    options: {
      delay: 1000,
      presence: "recording"
    },
    mediaMessage: {
      mediaType: "document",
      fileName: "relatorio.pdf", // Obrigatório para documentos
      caption: "Relatório Mensal",
      media: "base64_ou_url_do_documento"
    }
  })
};

Enviando um Áudio

javascript
const options = {
  method: 'POST',
  headers: {
    apikey: 'sua-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    number: "5511999999999",
    options: {
      delay: 1000,
      presence: "recording"
    },
    mediaMessage: {
      mediaType: "audio",
      media: "base64_ou_url_do_audio"
    }
  })
};

Resposta de Sucesso

json
{
  "status": "success",
  "message": "Media sent successfully",
  "data": {
    "messageId": "XXXXXXXXXXXXX"
  }
}

Notas Importantes

  • Para o tipo document, o campo fileName é obrigatório
  • O campo caption não está disponível para envios do tipo audio
  • O campo media aceita tanto URLs quanto arquivos codificados em base64
  • O campo presence aceita "composing" ou "recording" como valores
  • O campo delay define o tempo em milissegundos que o status de presença será exibido antes do envio da mensagem