Envie conteúdo de mídia rico incluindo imagens, vídeos, documentos e arquivos de áudio através da API WhatsApp da ApiZap.
Tipos de Mídia Suportados
A ApiZap suporta todos os formatos de mídia padrão do WhatsApp:
Imagens Formatos : JPG, JPEG, PNG, GIF, WebP
Tamanho Máx : 16MB
Ótimo : 1024x1024px para melhor qualidade
Vídeos Formatos : MP4, AVI, MOV, 3GP
Tamanho Máx : 16MB
Duração : Até 30 segundos recomendado
Documentos Formatos : PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX
Tamanho Máx : 100MB
Observações : Miniaturas geradas automaticamente
Áudio Formatos : MP3, WAV, OGG, AAC
Tamanho Máx : 16MB
Duração : Até 16 minutos
Enviando Mensagens de Mídia
Mensagens de Imagem
Envie imagens com legendas opcionais:
curl -X POST "https://b0fe4081af63.ngrok-free.app/api/v1/messages" \
-H "Authorization: ApiKey sua_chave_api_aqui" \
-H "Content-Type: application/json" \
-d '{
"type": "API",
"mediaType": "IMAGE",
"mediaUrl": "https://exemplo.com/imagem.jpg",
"content": "Confira nosso novo produto! 🎉",
"phone": "+5511999999999",
"instanceId": "sua_instancia_id"
}'
Mensagens de Vídeo
Envie vídeos com miniaturas automáticas:
{
"type" : "API" ,
"mediaType" : "VIDEO" ,
"mediaUrl" : "https://exemplo.com/video.mp4" ,
"content" : "Vídeo demonstrativo do produto 📹" ,
"phone" : "+5511999999999" ,
"instanceId" : "sua_instancia_id"
}
Mensagens de Documento
Envie documentos com miniaturas automáticas:
{
"type" : "API" ,
"mediaType" : "DOCUMENT" ,
"mediaUrl" : "https://exemplo.com/catalogo.pdf" ,
"content" : "Nosso catálogo de produtos mais recente" ,
"fileName" : "Catalogo_Produtos_2023.pdf" ,
"phone" : "+5511999999999" ,
"instanceId" : "sua_instancia_id"
}
Mensagens de Áudio
Envie arquivos de áudio (notas de voz aparecem como áudio reproduzível):
{
"type" : "API" ,
"mediaType" : "AUDIO" ,
"mediaUrl" : "https://exemplo.com/audio.mp3" ,
"phone" : "+5511999999999" ,
"instanceId" : "sua_instancia_id"
}
Requisitos para URLs de Mídia
Requisitos de Hospedagem
HTTPS Obrigatório Todas as URLs de mídia devem usar protocolo HTTPS para segurança
Acesso Público URLs devem ser publicamente acessíveis (sem autenticação necessária)
Links Diretos URLs devem apontar diretamente para o arquivo de mídia, não para uma página web
URLs Estáveis URLs devem permanecer acessíveis por pelo menos 24 horas
Serviços CDN Recomendados
Para hospedagem confiável de mídia, considere estes serviços CDN:
AWS S3 + CloudFront
Cloudinary
const AWS = require ( 'aws-sdk' );
const uploadParaS3 = async ( arquivo , nomeArquivo ) => {
const s3 = new AWS . S3 ({
accessKeyId: process . env . AWS_ACCESS_KEY_ID ,
secretAccessKey: process . env . AWS_SECRET_ACCESS_KEY ,
region: process . env . AWS_REGION
});
const params = {
Bucket: process . env . S3_BUCKET ,
Key: `media/ ${ nomeArquivo } ` ,
Body: arquivo ,
ContentType: arquivo . mimetype ,
ACL: 'public-read'
};
const resultado = await s3 . upload ( params ). promise ();
return resultado . Location ; // Use esta URL na sua mensagem
};
Exemplos Práticos
E-commerce - Catálogo de Produtos
Enviar Produto com Imagem
Catálogo em Lote
const enviarProduto = async ( cliente ) => {
await enviarImagem (
cliente . telefone ,
cliente . produto . imagemUrl ,
`🛍️ * ${ cliente . produto . nome } * \n\n 💰 *R$ ${ cliente . produto . preco } * \n 📦 Frete grátis para sua região! \n\n 🔗 Comprar: ${ cliente . produto . link } `
);
};
// Uso
await enviarProduto ({
telefone: '+5511999999999' ,
produto: {
nome: 'Smartphone XYZ' ,
preco: '899,90' ,
imagemUrl: 'https://loja.com/smartphone-xyz.jpg' ,
link: 'https://loja.com/comprar/smartphone-xyz'
}
});
Saúde - Resultados de Exames
Enviar Resultado de Exame
const enviarResultadoExame = async ( paciente , exameUrl ) => {
const response = await fetch ( 'https://b0fe4081af63.ngrok-free.app/api/v1/messages' , {
method: 'POST' ,
headers: {
'Authorization' : 'ApiKey sua_chave_api_aqui' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
type: 'API' ,
mediaType: 'DOCUMENT' ,
mediaUrl: exameUrl ,
fileName: `Exame_ ${ paciente . nome } _ ${ new Date (). toISOString (). slice ( 0 , 10 ) } .pdf` ,
content: `🏥 *Resultado do Exame* \n\n 👋 Olá, ${ paciente . nome } ! \n\n Seu resultado de exame está pronto. 📋 \n\n ⚠️ *Importante:* \n • Leia com atenção \n • Tire dúvidas com seu médico \n • Guarde em local seguro \n\n ❤️ Cuidamos da sua saúde!` ,
phone: paciente . telefone ,
instanceId: 'sua_instancia_id'
})
});
return await response . json ();
};
Melhores Práticas
Otimização de Imagens Comprima imagens antes do upload para reduzir tamanho de arquivo e tempo de carregamento
Legendas Descritivas Use legendas informativas para dar contexto às mídias enviadas
Backup de URLs Mantenha URLs de mídia acessíveis por tempo suficiente para entrega
Formatos Compatíveis Sempre teste formatos de mídia em diferentes dispositivos antes do envio em massa
Compressão : Comprima vídeos e imagens antes do envio
CDN : Use CDNs para servir mídia mais rapidamente
Cache : Implemente cache local para mídias frequentemente enviadas
Monitoramento : Monitore taxas de entrega de mensagens de mídia
Dica Pro : Para campanhas de marketing, prepare todas as mídias com antecedência e teste a qualidade de reprodução em diferentes dispositivos antes do envio em massa.