Pular para o conteúdo
WbizTool

API v2 (beta)

Mídia

O Diretório de mídia guarda os arquivos do seu espaço de trabalho: tabelas de preços, cardápios, folhetos, fotos de produtos. Envie um arquivo uma vez e depois mande-o quantas vezes quiser com "media": {"media_id": …} em uma mensagem ou em um lembrete. É o mesmo diretório da página Diretório de mídia do painel, então os arquivos enviados por lá também aparecem aqui.

OperaçãoEndpointPermissão
Enviar um arquivoPOST /api/v2/mediamedia
Listar arquivosGET /api/v2/mediamedia
Obter um arquivoGET /api/v2/media/{id}media
Excluir um arquivoDELETE /api/v2/media/{id}media

Enviar um arquivo#

POSThttps://wbiztool.com/api/v2/media

Corpo: multipart/form-data

Envie um arquivo por requisição como multipart/form-data, no campo file. Este é o único endpoint da v2 que não aceita JSON. A resposta é 201 com o objeto Media.

  • Até 64 MB por arquivo.
  • Tipos: o tipo vem da extensão no final do nome do arquivo, então mantenha-a.
TipoExtensões
Imagens.jpg, .jpeg, .jpe, .png, .gif, .webp, .bmp
Documentos.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .csv, .txt
Áudio.mp3, .m4a, .wav, .ogg, .oga, .aac
Vídeo.mp4, .mov, .avi
Arquivos compactados.zip, .rar
  • Armazenamento: todos os arquivos do espaço de trabalho juntos podem ocupar o que o plano permite, de 250 MB a 10 GB (veja Armazenamento por plano). Um arquivo que não cabe é recusado com storage_full.
  • Um arquivo de imagem (type image) é enviado como imagem por padrão; todo o resto, como arquivo.
  • Envie uma Idempotency-Key para que uma nova tentativa depois de um timeout não guarde o arquivo duas vezes.
curl -X POST https://wbiztool.com/api/v2/media \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Idempotency-Key: price-list-2026-10" \
  -F "file=@./price list.pdf"

Resposta (201):

{
  "id": 3301,
  "name": "price list.pdf",
  "type": "file",
  "mime_type": "application/pdf",
  "size": 182344,
  "url": "https://media.wbiztool.com/media/org_5012/media_5012_17608123450000_0.pdf",
  "created_at": "2026-10-18T10:31:40.120Z"
}

Depois, mande-o:

{
  "to": { "phone": "+919876543210" },
  "text": "Here is our new price list.",
  "media": { "media_id": 3301 }
}

O destinatário vê o nome com que o arquivo foi enviado (price list.pdf); defina media.file_name na mensagem para mostrar outro.

Erros ao enviar um arquivo#

HTTPCódigoQuando
400validation_failedNenhum arquivo no campo file, ou mais de um
413file_too_largeO arquivo tem mais de 64 MB
415unsupported_file_typeA extensão não é de um dos tipos acima
415unsupported_content_typeA requisição não é multipart/form-data (é JSON, por exemplo)
422storage_fullO arquivo não cabe no armazenamento do plano; used e limit dizem quanto, em bytes
502upload_failedO arquivo não pôde ser guardado. Tente de novo (com a mesma Idempotency-Key)

Listar arquivos#

GEThttps://wbiztool.com/api/v2/media

Os arquivos do espaço de trabalho, dos mais recentes para os mais antigos, em páginas (limit de 1 a 100, padrão 25, e cursor).

curl "https://wbiztool.com/api/v2/media?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

A resposta é {"data": [Media, …], "next_cursor": "…" or null}.

Obter um arquivo#

GEThttps://wbiztool.com/api/v2/media/{id}
curl https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Um arquivo que não existe ou que foi excluído responde 404 media_not_found.

Excluir um arquivo#

DELETEhttps://wbiztool.com/api/v2/media/{id}

Exclui o arquivo do Diretório de mídia e do armazenamento, então a url dele deixa de funcionar. As mensagens já enviadas mantêm a cópia no celular do destinatário.

A exclusão é recusada enquanto algo ainda vai enviar o arquivo: uma mensagem esperando para sair (inclusive de uma campanha), um lembrete ativo ou um gatilho ativo do Google Sheets. Nesse caso, a resposta é 409 media_in_use, e count diz quantos são. Cancele ou altere esses itens primeiro, ou espere até as mensagens saírem.

curl -X DELETE https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "id": 3301, "deleted": true }
HTTPCódigoQuando
404media_not_foundNenhum arquivo assim
409media_in_useUma mensagem em espera, um lembrete ativo ou um gatilho do Google Sheets ainda usa o arquivo

O objeto Media#

CampoTipoDescrição
idintegerO id do arquivo: o media_id com que você o envia.
namestringO nome com que foi enviado.
typestringimage para arquivos de imagem, file para todo o resto.
mime_typestringComo application/pdf ou image/jpeg.
sizeintegerTamanho em bytes.
urlstringUm link público para o arquivo. Qualquer pessoa com o link pode abri-lo, então não envie arquivos que precisam continuar privados.
created_atstringQuando foi enviado.

Relacionados#