vértice
Produto Preços Painel
Mensagens

Enviar imagem, vídeo, áudio ou documento

Envia imagem, vídeo, áudio ou documento por URL HTTPS ou base64.

API key Escopo write
Exemplo de requisição
curl -X POST "https://seu-dominio/instances/:id/media" \
  -H "x-api-key: $VERTICE_API_KEY" \
  -H "content-type: application/json" \
  -d '{"to":"5511999999999","kind":"image","url":"https://bucket.supabase.co/...","caption":"Legenda","ptt":false}'
POST /instances/{id}/media
API key
Entenda

Conceituação

Envia imagem, vídeo, áudio ou documento por URL HTTPS ou base64. No envio pela fila, informe a mídia por URL.

Envio síncrono devolve o ID da mensagem imediatamente. Com queue, delayMessage, delayTyping ou idempotencyKey, a resposta é 202 e o job pode ser acompanhado em /instances/:id/queue.

A operação exige que a instância esteja conectada ao WhatsApp. Caso o socket esteja desconectado, a API responde 409 not_connected.

Corpo JSON. Os campos abaixo são exemplos; campos marcados como obrigatórios precisam ser enviados.
Contrato

Atributos

Header

x-api-key string obrigatório

API key do workspace (vtc_live_...). Também aceita Authorization: Bearer.

content-type string obrigatório

application/json.

Path

id string obrigatório

ID da instância.

Body

to string obrigatório

Telefone com DDI e DDD, ou JID de grupo terminando em @g.us.

kind string obrigatório

Tipo da mídia: image, video, audio ou document.

url string opcional

URL HTTPS pública da mídia. Obrigatória no envio pela fila.

caption string opcional

Legenda opcional para imagem, vídeo ou documento.

ptt boolean opcional

Quando true, envia como mensagem de voz.

Payload

Request Body

{
  "to": "5511999999999",
  "kind": "image",
  "url": "https://bucket.supabase.co/...",
  "caption": "Legenda",
  "ptt": false
}
Contrato

Resposta

200 / 202
{
  "data": {
    "id": "3EB0...",
    "to": "5511999999999@s.whatsapp.net",
    "status": "sent"
  }
}

Respostas de sucesso são envelopadas em data.

Erros comuns

400 Corpo, query ou parâmetro inválido. A resposta traz error.code e error.message.
401 Credencial ausente, inválida ou sessão expirada.
403 Escopo insuficiente, IP não autorizado ou workspace suspenso.
404 Recurso não encontrado ou pertence a outro workspace.
409 Instância não conectada ou conflito de estado.