GET /query-message-logs devolve o histórico de envios da sua conta, do mais recente para o mais antigo, com paginação. É o mesmo histórico que aparece em Logs no painel: inclui os envios feitos pela API, por campanhas, automações e pelo próprio painel. Cada envio de campanha gera um registro; envios de campanha antigos podem aparecer em dois.
Todos os parâmetros são opcionais e vão na query string.
Autenticação: a mesma do
send-message — access token ou o par client_id:client_secret. Veja Autenticação.Parâmetros de consulta
Os filtros se combinam: a consulta devolve só os envios que atendem a todos os parâmetros informados.
Em
from e to, um horário sem fuso (ex.: 2026-01-01T00:00:00) é lido em UTC. Para usar o dia no fuso da conta, como na tela Logs, informe o deslocamento (ex.: 2026-01-01T00:00:00-03:00).
Resposta
Principais campos de cada envio:
Cada registro pode trazer outros campos além destes. As datas vêm em UTC; a tela Logs mostra as mesmas datas no fuso horário da conta.
Conteúdo enviado
sent_content guarda o texto final de cada mensagem. Vale como registro de auditoria mesmo que o template seja editado depois. O formato depende do canal:
Vem
null em mensagens enviadas antes do registro do conteúdo ou quando a mensagem não gerou texto.
Uma mensagem pelo id
GET /query-message-logs?id=<message_id> devolve uma única mensagem, no mesmo formato de um item da lista, dentro de { "data": { … } }. O message_id é o devolvido pelo send-message em cada resultado.
id que não é UUID responde 400; um id inexistente ou de outra conta responde 404. No servidor MCP, use as tools get_message (pelo id) e list_messages (com os filtros acima).
Status de um envio
O registro continua mudando depois do envio, conforme o provedor informa o que aconteceu:
- WhatsApp oficial (Meta): o status fica
sent; a confirmação de entrega preenchedelivered_ate a de leitura,read_at. Se a Meta recusar a entrega, o status vai parafailed. - WhatsApp pela Evolution API: com a fila ligada, sai de
queuedparasent,failedouskippedquando a mensagem deixa a fila. Depois do envio, avança paradelivered(comdelivered_at) eread(comread_at) conforme o WhatsApp confirma. O status só avança: uma confirmação atrasada não volta uma mensagem lida para entregue. - E-mail: a entrega informada pelo SendGrid preenche
delivered_at, a primeira abertura preencheread_ate o clique preencheclicked_at, mantendo o statussent. Abrir ou clicar também preenche o que ainda estiver vazio: sem entrega registrada (por exemplo, no Amazon SES e no SMTP), a primeira abertura preenchedelivered_at. Os eventosbounce,droppededeferredinformados pelo SendGrid mudam o status parafailed, com o nome do evento emerror_code. Os eventosspamreport,unsubscribeegroup_unsubscribenão mudam o status, porque a mensagem foi entregue: eles descadastram o contato do e-mail. - Web Push: o recebimento preenche
delivered_ate o clique,clicked_at. - SMS: a confirmação de entrega preenche
delivered_at; se o provedor informar que não entregou, o status virafailed. Na Twilio, a confirmação chega quando a Twilio avisa a plataforma; na SendPulse, a plataforma consulta a entrega a cada 2 minutos, para os SMS enviados nas últimas 48 horas.