/messages
Consulta uma mensagem específica, seja ela da linha do tempo de uma conversa ou um disparo avulso (campanha, /send-template com open_conversation=on_reply).
Escopo necessário: conversations:read. Limite: 120 requisições por minuto.
Endpoints
| Método | Rota | Devolve |
|---|---|---|
| GET | /messages?wamid=wamid.HBg... |
A mensagem com aquele id do WhatsApp |
| GET | /messages/{id} |
Uma mensagem, pelo id da Wevichat |
| GET | /messages?conversation_id=... |
Mensagens de uma conversa |
| GET | /messages?contact_id=... |
Disparos avulsos feitos para um contato |
Buscar pelo wamid
O wamid é o que /send-template e /send-message devolvem no envio. Guardá-lo do seu lado é a forma de acompanhar o que aconteceu com aquela mensagem depois.
curl "https://api.wevi.chat/functions/v1/messages?wamid=wamid.HBgLNTUxMT..." \
-H "Authorization: Bearer wevi_SUA_CHAVE"
const res = await fetch(
`https://api.wevi.chat/functions/v1/messages?wamid=${encodeURIComponent(wamid)}`,
{ headers: { Authorization: "Bearer wevi_SUA_CHAVE" } },
);
const mensagem = await res.json();
console.log(mensagem.delivery.status); // sent, delivered, read ou failed
Objeto da mensagem
{
"id": "2af0ebe5-7d37-4746-aec0-db64f1cd43d6",
"conversation_id": "ffff0000-0000-4000-8000-0000000000f1",
"role": "assistant",
"content": "Consigo quinta às 15h ou sexta às 16h30. Qual fica melhor?",
"file": null,
"wamid": "wamid.HBgLNTUxMT...",
"delivery": {
"status": "read",
"delivered_at": "2026-09-07T21:02:15Z",
"read_at": "2026-09-07T21:03:02Z",
"failed_reason": null
},
"reply_to_message_id": null,
"reactions": [],
"sent_by": null,
"handled_by_agent_id": "dddd0000-...",
"source": "api",
"created_at": "2026-09-07T21:02:10Z"
}
source diz de onde a mensagem saiu: api, campaign, automation ou null quando veio do agente ou do inbox.
Objeto do disparo avulso
Um disparo que ainda não virou conversa tem uma forma um pouco diferente, com conversation_id: null e o template usado:
{
"id": "8f1c...",
"conversation_id": null,
"kind": "template",
"to": "5511999998888",
"contact_id": "cccc...",
"connection_id": "dddd...",
"template": { "name": "reativa_teste", "language_code": "pt_BR", "body_params": ["Maria"] },
"content": null,
"wamid": "wamid.HBgLNTUxMT...",
"delivery": {
"status": "delivered",
"sent_at": "2026-09-07T18:00:00Z",
"delivered_at": "2026-09-07T18:00:04Z",
"read_at": null,
"failed_reason": null
},
"idempotency_key": "lead-12345-welcome",
"created_at": "2026-09-07T18:00:00Z"
}
Você não precisa saber de antemão qual dos dois vai receber: mande o wamid ou o id e a API procura nos dois lugares.
Erros
| Status | error |
Quando |
|---|---|---|
| 400 | missing_filter |
Nenhum de wamid, conversation_id ou contact_id foi informado |
| 404 | message_not_found |
Nenhuma mensagem com aquele id ou wamid nesta organização |