Media
POST /v1/media — upload de arquivos (imagem/vídeo/documento/áudio) e retorna media_id para uso em mensagens.
Faz upload de mídia e retorna um media_id para usar em POST /v1/messages.
Query: account_id (opcional; default = conexão padrão).
Headers: Idempotency-Key (opcional).
Body: multipart/form-data com o campo file (binário).
O account_id vai na query string, não como campo multipart. Parsing em stream não enxerga campos após o blob.
| Limite | Valor |
|---|---|
| Tamanho (gateway) | 64 MB |
| Tamanho (Meta) | limites por tipo, mais restritos |
Resposta 201
Resposta 201
{ "media_id": "1234567890" } O media_id da Meta tem TTL de ~30 dias — após isso, o upload precisa ser refeito.
Exemplo
curl -X POST "https://api.wablastmessage.com/v1/media?account_id=ckv..." \
-H "Authorization: Bearer wak_sua_chave" \
-F "file=@/caminho/imagem.jpg"import { readFileSync } from 'node:fs';
import FormData from 'form-data';
const form = new FormData();
form.append('file', readFileSync('/caminho/imagem.jpg'), 'imagem.jpg');
const res = await fetch('https://api.wablastmessage.com/v1/media?account_id=ckv...', {
method: 'POST',
headers: { 'Authorization': 'Bearer ' + process.env.WABLAST_API_KEY },
body: form,
});
console.log(res.status, await res.json());import os, requests
with open('/caminho/imagem.jpg', 'rb') as f:
res = requests.post(
'https://api.wablastmessage.com/v1/media',
params={'account_id': 'ckv...'},
headers={'Authorization': 'Bearer ' + os.environ['WABLAST_API_KEY']},
files={'file': ('imagem.jpg', f, 'image/jpeg')},
)
print(res.status_code, res.json())<?php
$ch = curl_init('https://api.wablastmessage.com/v1/media?account_id=ckv...');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . getenv('WABLAST_API_KEY'),
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'file' => new CURLFile('/caminho/imagem.jpg', 'image/jpeg', 'imagem.jpg'),
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . " " . $res; Use o media_id retornado no campo media.id de POST /v1/messages:
{
"to": "+5511999990000",
"type": "image",
"media": { "id": "1234567890", "caption": "Veja o produto" }
}