Skip to main content
O endpoint 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.
Um 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 preenche delivered_at e a de leitura, read_at. Se a Meta recusar a entrega, o status vai para failed.
  • WhatsApp pela Evolution API: com a fila ligada, sai de queued para sent, failed ou skipped quando a mensagem deixa a fila. Depois do envio, avança para delivered (com delivered_at) e read (com read_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 preenche read_at e o clique preenche clicked_at, mantendo o status sent. 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 preenche delivered_at. Os eventos bounce, dropped e deferred informados pelo SendGrid mudam o status para failed, com o nome do evento em error_code. Os eventos spamreport, unsubscribe e group_unsubscribe não mudam o status, porque a mensagem foi entregue: eles descadastram o contato do e-mail.
  • Web Push: o recebimento preenche delivered_at e o clique, clicked_at.
  • SMS: a confirmação de entrega preenche delivered_at; se o provedor informar que não entregou, o status vira failed. 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.
Para acompanhar um disparo específico, envie uma tag própria no send-message (ex.: pedido-12345) e consulte por ela depois. Isso vale também para mensagens adiadas pelo limite por minuto, que não trazem resultado na resposta do envio.

Erros

Exemplos