Pular para o conteúdo

Publicar status

POST/v1/instances/{id}/statusdesde M10token da instância ou admin

Quando usar

Publica um status (story) de texto, imagem ou vídeo. Os destinatários são os da privacidade do status configurada no celular (veja GET /status/privacy); o WhatsApp não permite escolher por envio. Passa pela fila de envio como POST /messages (ritmo, janela de horário, rampa, suspensão do operador, client_message_id, ?wait=true) e tem teto de 10 status por dia por instância (429 rate_limited). Texto: até 700 caracteres, background_color/text_color #RRGGBB e font 0, 1, 2, 6, 7, 8, 9 ou 10.

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_...).

Query

NomeTipoDescrição
waitbooleanEspera o envio (até timeout, padrão 30s).
timeoutstring

Corpo (JSON)

NomeTipoDescrição
typeobrigatório"text" | "image" | "video"
textstringtext: o texto do status. (até 700)
captionstringimage/video: legenda.
mediaMediaInputInforme url ou base64.
media.urlstringhttp(s) público; o servidor baixa (timeout 30s, sem IPs privados).
media.base64string
media.mimestring
media.file_namestringAté 255 bytes.
media.pttbooleanÁudio como mensagem de voz.
media.urlstringhttp(s) público; o servidor baixa (timeout 30s, sem IPs privados).
media.base64string
media.mimestring
media.file_namestringAté 255 bytes.
media.pttbooleanÁudio como mensagem de voz.
background_colorstringtext: cor de fundo #RRGGBB.
text_colorstring
font0 | 1 | 2 | 6 | 7 | 8 | 9 | 10
client_message_idstring
expires_afterstring

Exemplo

Janela do terminal
curl -s -X POST "$LITEZAP_URL/v1/instances/$ID/status" \
-H "Authorization: Bearer $LITEZAP_TOKEN" \
-d '{"type":"text","text":"Bom dia! Abrimos às 9h.","background_color":"#1E6E4F","font":1}'
Outros corpos de exemplo
Imagem
{
"type": "image",
"caption": "Novidade da semana",
"media": {
"url": "https://exemplo.com/foto.jpg"
}
}

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 Publicado (com ?wait=true).

Campos de Message
idstring
client_message_idstring
wa_message_idstring
chatstring
senderstring
from_meboolean
source"contact" | "api" | "device" | "history"
typestring
textstring
mediaMediaInfo
media.idstringId da mídia recebida.
media.kindstring
media.mimestring
media.sizeinteger
media.file_namestring
media.secondsinteger
media.pttboolean
media.urlstringCaminho da API para baixar (mídia recebida).
reaction_tostring
status"queued" | "in_flight" | "sent" | "delivered" | "read" | "played" | "failed" | "received" | "pending"
attemptsinteger
errorstringÚltimo erro (codigo: detalhe) de item não enviado.
timestampstring
{
"id": "msg_5c1e9a7d3b2f4068",
"wa_message_id": "3EB0C4D5E6F7A8B9C0D1E2",
"chat": "status@broadcast",
"from_me": true,
"source": "api",
"type": "text",
"text": "Bom dia! Abrimos às 9h.",
"status": "sent",
"timestamp": "2026-10-18T12:00:03Z"
}

202 Na fila.

Campos de Message
idstring
client_message_idstring
wa_message_idstring
chatstring
senderstring
from_meboolean
source"contact" | "api" | "device" | "history"
typestring
textstring
mediaMediaInfo
media.idstringId da mídia recebida.
media.kindstring
media.mimestring
media.sizeinteger
media.file_namestring
media.secondsinteger
media.pttboolean
media.urlstringCaminho da API para baixar (mídia recebida).
reaction_tostring
status"queued" | "in_flight" | "sent" | "delivered" | "read" | "played" | "failed" | "received" | "pending"
attemptsinteger
errorstringÚltimo erro (codigo: detalhe) de item não enviado.
timestampstring

Erros

CódigoHTTPRetentávelO que fazer
validation_failed400nãoCorrija o corpo ou os parâmetros; a message diz o campo.
unauthorized401nãoEnvie Authorization: Bearer <token> válido.
forbidden403nãoUse o token certo (admin, ou o da própria instância).
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.
instance_not_connected409dependeConfira o estado da instância; se logged_out, pareie de novo.
instance_banned409nãoNúmero banido: apague a instância.
media_too_large413nãoReduza o arquivo (imagem 16MB, vídeo/áudio 64MB, documento 100MB).
media_fetch_failed422simConfira se a URL é pública e responde; tente de novo.
rate_limited429simEspere e tente de novo com backoff.

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

Eventos gerados

Equivalente na Z-API: Enviar status de texto / imagem / vídeo. Veja Migrar da Z-API.

Outras operações de Status: Status recentes · Privacidade do status · Apagar status · Responder status