readAt IS NULL) for the connected number. Each item includes the conversation-level unread count.
Endpoint
GET https://pilotstatus.com.br/v1/messages/unread
Requires a number-scoped API key (
ps_*) in the x-api-key header. Tenant-scoped keys return 403.Query parameters
Page number (≥ 1).
Results per page (1–100).
PII mode effect
The response depends on the PII mode configured for the number (set viaPATCH /api/whatsapp-numbers/[id]):
| PII mode | Effect |
|---|---|
STORE_INDEFINITE (default) | All unread messages returned. |
STORE_X_DAYS | Only unread messages created within the last N days are returned (messages outside the retention window have already been hard-deleted by the daily job). |
RELAY_ONLY | Returns an empty list (messages: [], total: 0) and includes a notice: "PII_RELAY_ONLY" field. No message data is stored for this number. |
Example
Message object fields
Pilot Status internal message ID.
ID of the parent conversation.
Total unread message count for that conversation.
Always
"INBOUND" for this endpoint.text, image, audio, video, document, location, contacts, sticker, or reaction.Message text or caption when available.
Sender in E.164 format.
Sender display name (resolved from the conversation) when available.
Media descriptor
{ provider, id, url, mimeType, fileName } when the message carries media; null for text.media.provider—"META","EVO", or"EVO_GO"— the provider that delivered the media.media.id— Meta media id. Set onMETAnumbers — pass it toGET /v1/media/{mediaId}to download the bytes;nullon Evolution.media.url— Direct download URL when available. META inbound media is mirrored to S3 (so META messages usually carry bothidandurl); Evolution provides its own link. Best-effort — may benull.media.mimeType— Media MIME type when known (may benull).media.fileName— Media file name when known (may benull).
null for unread messages (always null for results from this endpoint).ISO 8601 — when the message was received.
Common errors
400 NUMBER_NOT_FOUND— the API key is not bound to a WhatsApp number.401— missing or invalidx-api-keyheader.403— tenant-scoped key used (number-scoped key required).