List messages
Retrieve messages with cursor-based pagination and optional channel/status filters.
Authorizations
Dashboard JWT token from Clerk
Query Parameters
Opaque cursor for the next page (from previous response meta.pagination.cursor)
Number of items per page (1–200, default 25)
1 <= x <= 200Filter by channel
sms, whatsapp, email, rcs, viber, voice, fax, instagram, messenger, line, push, telegram Filter by delivery status. Accepts every status the messages.status column can hold across all channels — DAG states (pending/queued/scheduled/accepted/sending/sent), terminal successes (delivered/submitted_no_receipt/read), failure modes (failed/rejected/undelivered/bounced/expired), and operational sentinels (suppressed/test_sent/deleted/unknown). Email spam complaints are not a distinct status — a complaint DLR is recorded as status=failed with metadata.complaint_type set to "spam_report". To isolate complaint-driven failures, filter on status=failed and inspect metadata.complaint_type.
pending, queued, scheduled, accepted, sending, sent, delivered, submitted_no_receipt, read, failed, rejected, undelivered, bounced, expired, suppressed, test_sent, cancelled, deleted, unknown Filter by recipient
100Filter by direction
inbound, outbound Filter by contact
100Date range filter (e.g. 7d, 30d, 90d)
10Custom date range start (ISO 8601 date or date-time)
Custom date range end (ISO 8601 date or date-time)
Filter by conversation
100Group results
conversation, contact, channel