Pular para o conteúdo

Baixar mídia recebida

GET/v1/instances/{id}/media/{media_id}desde M2token da instância ou admin

Quando usar

Baixa a mídia de uma mensagem recebida (media.id no log). Na primeira vez o worker baixa do WhatsApp e o arquivo fica em data/media/. Com ?signed=1 devolve uma URL assinada que vale 1h sem token, para repassar a terceiros. Fora de loopback, ?signed=1 exige public_url (409 conflict). A resposta leva X-Content-Type-Options: nosniff, CSP sandbox e Content-Disposition (inline só para JPEG/PNG/WebP/GIF, áudio e vídeo).

Autenticação

Aceita o token da instância (só a própria instância) ou o token admin. Um token de outra instância recebe 403 forbidden (ou 404 not_found em webhooks de outra instância).

Parâmetros

Caminho

NomeTipoDescrição
idobrigatóriostringId da instância (inst_...).
media_idobrigatóriostringId da mídia (med_...), de media.id no log.

Query

NomeTipoDescrição
signed"1"1 devolve {url, expires_at} em vez do arquivo.

Exemplo

Janela do terminal
curl -s "$LITEZAP_URL/v1/instances/$ID/media/$MEDIA_ID" \
-H "Authorization: Bearer $LITEZAP_TOKEN" \
-o arquivo

Nos exemplos, LITEZAP_URL é a URL base (ex.: http://localhost:8787) e o token vem deLITEZAP_TOKEN (instância) ou LITEZAP_ADMIN_TOKEN.

Resposta

200 O arquivo, ou a URL assinada com ?signed=1. Também: application/octet-stream.

Campos de SignedURL
urlstring
expires_atstring
{
"url": "https://api.seu-dominio.com/media/inst_7f3a9c2e5b1d4086/med_5b8e1f3c9d2a7046?exp=1792252800&sig=9f86d081884c7d65",
"expires_at": "2026-10-17T14:52:10Z"
}

Erros

CódigoHTTPRetentávelO que fazer
unauthorized401nãoEnvie Authorization: Bearer <token> válido.
forbidden403nãoUse o token certo (admin, ou o da própria instância).
not_found404nãoConfira o id do recurso (mensagem, chat, contato, mídia ou webhook).
instance_not_found404nãoConfira o id da instância.
conflict409nãoO recurso está num estado que não permite a operação; veja a message.
media_unavailable410nãoA mídia expirou no WhatsApp; peça o arquivo de novo ao contato.
worker_error502simTente de novo com backoff; se persistir, veja o log do servidor.
worker_timeout504simTente de novo; a instância pode estar sobrecarregada ou reconectando.

Todo erro usa o envelope {"error":{"code","message","retryable"}}. Tabela completa em Erros.

Equivalente na Z-API: (mídia chega por URL no webhook). Veja Migrar da Z-API.

Outras operações de Mídia: Mídia por URL assinada