Pular para o conteúdo principal
Recupere as mensagens recebidas que contam como não lidas para o número conectado. O estado de não lida não é derivado de um campo readAt por mensagem (o readAt por mensagem não é mantido para mensagens recebidas). Em vez disso, ele é derivado do unreadCount de cada conversa — o mesmo contador exibido no painel — e o total da resposta é a soma do unreadCount entre as conversas não lidas. Cada item inclui essa contagem de não lidas no nível da conversa.

Endpoint

GET https://pilotstatus.com.br/v1/messages/unread
Requer uma chave de API com escopo de número (ps_*) no cabeçalho x-api-key. Chaves com escopo de tenant retornam 403.

Parâmetros de query

page
integer
padrão:"1"
Número da página (≥ 1).
pageSize
integer
padrão:"30"
Resultados por página (1–100).
Não há filtro de intervalo de datas neste endpoint; ele retorna todas as mensagens recebidas atualmente não lidas.

Efeito do modo PII

A resposta depende do modo PII configurado para o número (definido via PATCH /api/whatsapp-numbers/[id]). Este endpoint usa redigir-e-mostrar (redact-and-show): ele não aplica um filtro rígido por data de retenção — os envelopes das mensagens continuam sendo retornados, mas content, from, media e fromName/remetente são anulados e redacted: true é definido nas linhas cobertas pela política de PII.
Modo PIIEfeito
STORE_INDEFINITE (padrão)Todas as mensagens não lidas são retornadas na íntegra, redacted: false.
STORE_X_DAYSOs envelopes continuam sendo retornados, mas as linhas fora da janela de retenção são redigidas (content/from/media/remetente anulados, redacted: true); as linhas dentro da janela são retornadas na íntegra.
RELAY_ONLYO redigir-e-mostrar se aplica a todas as linhas (redacted: true) e a resposta adiciona um campo notice: "PII_RELAY_ONLY". Na prática, números RELAY_ONLY não armazenam nada, então a lista costuma ficar vazia (messages: [], total: 0).

Exemplo

curl "https://pilotstatus.com.br/v1/messages/unread?page=1&pageSize=30" \
  -H "x-api-key: ps_your_key_here"

Campos do objeto de mensagem

id
string
obrigatório
ID interno da mensagem no Pilot Status.
conversationId
string
obrigatório
ID da conversa pai.
conversationUnreadCount
integer
obrigatório
Contagem total de mensagens não lidas dessa conversa.
direction
string
obrigatório
Sempre "INBOUND" para este endpoint.
type
string
obrigatório
text, image, audio, video, document, location, contacts, sticker ou reaction.
content
string | null
Texto da mensagem ou legenda, quando disponível.
from
string
obrigatório
Remetente no formato E.164.
fromName
string | null
Nome de exibição do remetente (resolvido a partir da conversa), quando disponível.
media
object | null
Descritor de mídia { provider, id, url, mimeType, fileName } quando a mensagem carrega mídia; null para texto.
  • media.provider — o provedor que entregou a mídia — "META" para números da Meta Cloud API, ou uma tag interna de provedor para números não oficiais.
  • media.id — id de mídia da Meta. Definido em números META — passe-o para GET /v1/media/{mediaId} para baixar os bytes; null para números não oficiais.
  • media.url — URL de download direto quando disponível. Mídia recebida da META é espelhada no S3 (então mensagens META geralmente carregam tanto id quanto url); o provedor não oficial fornece seu próprio link. Melhor esforço — pode ser null.
  • media.mimeType — Tipo MIME da mídia quando conhecido (pode ser null).
  • media.fileName — Nome do arquivo da mídia quando conhecido (pode ser null).
redacted
boolean
true quando content, media e os campos do remetente foram anulados pela política de PII do número (veja Efeito do modo PII); false (ou ausente) quando a linha é retornada na íntegra.
readAt
null
obrigatório
Sempre null — o readAt por mensagem não é mantido para mensagens recebidas; o estado de não lida é rastreado no nível da conversa via conversationUnreadCount.
createdAt
string
obrigatório
ISO 8601 — quando a mensagem foi recebida.

Erros comuns

  • 400 NUMBER_NOT_FOUND — a chave de API não está vinculada a um número de WhatsApp.
  • 401 — cabeçalho x-api-key ausente ou inválido.
  • 403 — chave com escopo de tenant usada (é necessária uma chave com escopo de número).