Pular para o conteúdo principal
POST
/
backend
/
messages
/
send-media
curl -X POST "https://api.leavo.ai/backend/messages/send-media" \
  -H "Authorization: Bearer sua_chave_aqui" \
  -F "channel_id=uuid-do-canal" \
  -F "[email protected]" \
  -F "file=@/caminho/para/imagem.jpg" \
  -F "caption=Veja esta imagem!"
{
  "success": true,
  "message_id": "msg-uuid",
  "media_url": "https://storage.leavo.ai/uploads/abc123.jpg",
  "timestamp": "2024-01-15T10:30:00Z"
}

Visão Geral

Use este endpoint quando você tem o arquivo localmente e precisa fazer upload antes de enviar.
Este endpoint usa multipart/form-data em vez de JSON.

Form Fields

channel_id
string
obrigatório
UUID do canal
remote_jid
string
obrigatório
JID do WhatsApp (ex: [email protected])
file
file
obrigatório
Arquivo de mídia para upload
caption
string
Legenda da mídia (opcional)
curl -X POST "https://api.leavo.ai/backend/messages/send-media" \
  -H "Authorization: Bearer sua_chave_aqui" \
  -F "channel_id=uuid-do-canal" \
  -F "[email protected]" \
  -F "file=@/caminho/para/imagem.jpg" \
  -F "caption=Veja esta imagem!"
{
  "success": true,
  "message_id": "msg-uuid",
  "media_url": "https://storage.leavo.ai/uploads/abc123.jpg",
  "timestamp": "2024-01-15T10:30:00Z"
}

Detecção Automática de Tipo

O tipo de mídia é detectado automaticamente baseado na extensão do arquivo:
ExtensõesTipo Detectado
.jpg, .jpeg, .png, .gif, .webpimage
.mp4, .3gp, .movvideo
.mp3, .ogg, .m4a, .wavaudio
.pdf, .doc, .docx, .xls, .xlsxdocument

Exemplo: Upload de Múltiplos Arquivos

async function sendMultipleFiles(channelId, remoteJid, files) {
  const results = [];

  for (const file of files) {
    const formData = new FormData();
    formData.append('channel_id', channelId);
    formData.append('remote_jid', remoteJid);
    formData.append('file', file);

    const response = await fetch(
      'https://api.leavo.ai/backend/messages/send-media',
      {
        method: 'POST',
        headers: {
          'Authorization': 'Bearer sua_chave_aqui'
        },
        body: formData
      }
    );

    const result = await response.json();
    results.push(result);

    // Pequeno delay entre envios para evitar rate limit
    await new Promise(r => setTimeout(r, 500));
  }

  return results;
}

Limites

Tamanho Máximo

100 MB por arquivo

Timeout

60 segundos para upload

Formatos

Apenas formatos suportados pelo WhatsApp

Rate Limit

10 uploads por minuto