Skip to main content
Retrieve messages from GROUP conversations for the connected number.

Endpoint

GET https://pilotstatus.com.br/v1/messages/group
Requires a number-scoped API key (ps_*) in the x-api-key header. Tenant-scoped keys return 403.
Meta numbers: this endpoint works for official Meta Cloud API numbers too, provided the number is an approved Official Business Account with groups enabled. Numbers that are not eligible return 400 META_GROUPS_NOT_ELIGIBLE.

Query parameters

string
ISO 8601 datetime. Filter messages created on or after this date.
string
ISO 8601 datetime. Filter messages created on or before this date.
integer
default:"1"
Page number (≥ 1).
integer
default:"30"
Results per page (1–100).
Both startDate and endDate are optional individually. When supplied, each must be a valid ISO 8601 string and startDate must not be later than endDate; otherwise 400 INVALID_DATE_RANGE is returned. Results are ordered by createdAt descending (newest first).

PII mode effect

The response depends on the PII mode configured for the number — changed in the dashboard on the API Keys page (Privacy & retention panel) or on the number’s settings in Numbers. The query lower and upper bounds come only from the caller’s startDate / endDate — PII mode never narrows the queried date range. Instead, rows that fall outside the number’s PII retention window are still returned, but redacted: their content, media, and participant/peer fields are set to null and the row carries redacted: true.

Example

Message object fields

string
required
Pilot Status internal message ID.
string
required
ID of the parent group conversation.
string
required
"INBOUND" (received in the group) or "OUTBOUND" (sent to the group).
string
required
text, image, audio, video, document, location, contacts, sticker, or reaction.
string | null
Message text or caption when available.
string
required
Sender in E.164 format.
string | null
WhatsApp display name of the sender when available.
string
required
Group JID (e.g. 120363123456789012@g.us).
string | null
Group display name when available.
object | null
Media descriptor { provider, id, url, mimeType, fileName } when the message carries media; null for text.
  • media.provider — the delivering provider — "META" for Meta Cloud API numbers, or an internal provider tag for unofficial numbers.
  • media.idMeta media id. Set on META numbers — pass it to GET /v1/media/{mediaId} to download the bytes; null for unofficial numbers.
  • media.url — Direct download URL when available. META inbound media is mirrored to S3 (so META messages usually carry both id and url); the unofficial provider provides its own link. Best-effort — may be null.
  • media.mimeType — Media MIME type when known (may be null).
  • media.fileName — Media file name when known (may be null).
boolean
true when the row falls outside the number’s PII retention window (or on every row for RELAY_ONLY). Redacted rows still appear in the list, but content, media, and participant/peer fields are null.
string
required
ISO 8601 — when the message was created.

Common errors

  • 400 META_GROUPS_NOT_ELIGIBLE — the API key is bound to a Meta Cloud API number that is not an approved Official Business Account (or does not have groups enabled).
  • 400 INVALID_DATE_RANGEstartDate or endDate is not a valid ISO 8601 string, or startDate > endDate.
  • 400 NUMBER_NOT_FOUND — the API key is not bound to a WhatsApp number.
  • 401 — missing or invalid x-api-key header.
  • 403 — tenant-scoped key used (number-scoped key required).