Listar Logs de Mensagens
GET /v1/messages/{messageId}.
A página Logs & Analytics do painel é a contraparte visual deste endpoint — as mesmas linhas, filtros e status que você vê lá são o que este endpoint retorna em JSON.
Cabeçalhos
x-api-key: ps_...(oux-api-key-id: <api_key_id>) — uma chave com escopo de número. Chaves com escopo de tenant recebem403.
Parâmetros de query
Janela de atendimento de 24h: o WhatsApp abre uma janela de atendimento de 24 horas sempre que um contato manda mensagem para você.
serviceWindowOpenAtSend registra o estado dessa janela no momento em que cada mensagem enviada foi aceita: true significa que foi uma resposta dentro de uma janela aberta e foi enviada imediatamente; false significa que foi um envio “frio” fora da janela — ritmado pelo motor anti-bloqueio em números web do Pilot Status, e exigindo um template aprovado em números Meta Cloud API; null significa que a janela não foi computada (linhas recebidas, destinos de grupo/canal). Filtre com window=open / window=closed.Exemplos
Resposta (200)
Campos da resposta
Retenção: as linhas respeitam o modo de retenção de PII do número. Em números
RELAY_ONLY, as linhas retornam redigidas (content: null).origin — por qual trilho a mensagem saiu
O conjunto cresce. Trate um valor que você não reconhece como “saída não classificada”, não como erro.
Linhas de saída sem requisição de envio
Três tipos de linhaOUT não foram enviados pela Pilot Status, então não há requisição de envio por trás deles: APP, LAYER e CHATWOOT vindo de uma inbox nativa WhatsApp Cloud. Nessas linhas:
correlationId,template,serviceWindowOpenAtSend,errorCodeeerrorMessagesãonull;GET /v1/messages/{messageId}responde404— a linha da lista é tudo o que existe;- o
statussegue os status que a Meta informa:SENT,DELIVERED,READouFAILED; - a mensagem não conta no consumo de mensagens do seu plano;
- num número cujo modo de retenção de PII redige a linha,
toecontentvêmnulleredacted: trueé acrescentado, como em qualquer outra linha.
CHATWOOT vinda de uma inbox de espelho por API é um envio normal: tem correlationId e detalhe completo.
Em linhas LAYER e linhas CHATWOOT de inbox nativa, o content é o que a requisição à Graph API trazia: o texto, a legenda da mídia ou o texto do corpo de uma mensagem interativa. Três tipos recebem um texto curto gerado no lugar:
- um template aparece como
Template: <nome>— o corpo renderizado não é guardado, etemplatecontinuanull; - uma localização aparece como
Location: <latitude>, <longitude>, seguida do nome e do endereço quando a requisição os trazia; - contatos aparecem como
Contacts: <nomes>.
content: null.
Uma linha CHATWOOT de inbox nativa:
LAYER, e linhas CHATWOOT de inbox nativa, só são registradas a partir do momento em que a Pilot Status começou a registrar os envios pela camada para o número. Envios anteriores não são recuperados. O que é e o que não é registrado: Camada Meta → Envios ficam registrados nos Logs.