Busca de mensagens e métricas
Procura mensagens em todas as conversas e consulta os números do atendimento por período.
Duas consultas de leitura: a busca localiza mensagens pelo texto em qualquer conversa, e as métricas resumem o volume de atendimento num período, com a série diária para gráficos.
Buscar mensagens
Exige ao menos um filtro entre q, type, direction, vendor_id, from e to. A busca de texto ignora maiúsculas e minúsculas e procura no trecho do corpo.
/api/v1/admin/whatsapp/messages/searchAdminProcura mensagens por texto, tipo, direção, seller e data
Parâmetros de consulta
qstringTrecho do texto.
typestringtextimagevideoaudiodocumentbuttoninteractivelocationTipo da mensagem.
directionstringinboundoutboundDireção.
vendor_idstringUUID do seller.
fromstringData inicial
YYYY-MM-DD (inclusiva).tostringData final
YYYY-MM-DD (inclusiva).pageintegerpadrão: 1Página.
per_pageintegerpadrão: 50Itens por página (máximo 200).
Exemplo de requisição (Buscar mensagens)
bash
curl "$BASE_URL/api/v1/admin/whatsapp/messages/search?q=camisa&direction=inbound" \
-H "Authorization: Bearer $TOKEN"Resposta (Buscar mensagens)
200Resultados
json
{
"hits": [
{
"id": 2027,
"thread_id": "014ff6d8-8ff0-40da-82ce-e5a349b57be6",
"customer_phone": "+5511999990428",
"direction": "inbound",
"message_type": "text",
"body": "Oi, tem a camisa M?",
"match_snippet": "Oi, tem a camisa M?",
"created_at": "2026-10-11T14:52:49Z"
}
],
"total": 1,
"page": 1,
"per_page": 50,
"total_pages": 1,
"q": "camisa"
}Campos da resposta
hitsarrayMensagens encontradas.
idintegerId da mensagem.
thread_idstringUUID da conversa, para abrir o resultado.
customer_phonestringTelefone do cliente.
directionstringinbound ou outbound.message_typestringTipo.
bodystringTexto completo.
match_snippetstringTrecho em torno do que casou.
template_namestringTemplate, se houver.
created_atstringData, RFC 3339.
totalintegerTotal de resultados.
pageintegerPágina.
per_pageintegerItens por página.
total_pagesintegerPáginas.
qstringTexto buscado.
Erros (Buscar mensagens)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Nenhum filtro informado, ou data inválida. | {"error":"at least one of q, type, direction, vendor_id, from, to is required"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_orders"} ou {"error":"admin access required"} |
Métricas de atendimento
Sem parâmetros, cobre os últimos 30 dias. O intervalo máximo é 366 dias. As datas são dias inteiros em UTC e to entra por inteiro.
/api/v1/admin/whatsapp/metricsAdminResume o volume de conversas e mensagens num período
Parâmetros de consulta
fromstringInício
YYYY-MM-DD.tostringFim
YYYY-MM-DD (inclusivo).Exemplo de requisição (Métricas de atendimento)
bash
curl "$BASE_URL/api/v1/admin/whatsapp/metrics?from=2026-09-12&to=2026-10-11" \
-H "Authorization: Bearer $TOKEN"Resposta (Métricas de atendimento)
200Métricas
json
{
"from": "2026-09-12",
"to": "2026-10-12",
"conversations_total": 41,
"conversations_new": 18,
"messages_inbound": 320,
"messages_outbound": 210,
"bot_escalated": 6,
"active_sessions": 3,
"escalation_rate": 0.1463,
"daily_series": [
{
"date": "2026-09-12",
"conversations": 2,
"inbound": 12,
"outbound": 8
}
]
}Campos da resposta
fromstringInício aplicado.
tostringFim (exclusivo): o dia seguinte ao pedido.
conversations_totalintegerConversas com atividade no período.
conversations_newintegerConversas criadas no período.
messages_inboundintegerMensagens recebidas de clientes.
messages_outboundintegerMensagens enviadas.
bot_escalatedintegerConversas em que o assistente passou para um humano.
active_sessionsintegerFluxos de conversa ativos agora.
escalation_ratenumberbot_escalated dividido pelo total, de 0 a 1.daily_seriesarrayUm ponto por dia:
date, conversations, inbound, outbound.Erros (Métricas de atendimento)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Data fora do formato, from depois de to, ou intervalo acima de 366 dias. | {"error":"invalid 'from' date; expected YYYY-MM-DD"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_orders"} ou {"error":"admin access required"} |