Skip to main content
GET
List messages

Authorizations

Authorization
string
header
required

Dashboard JWT token from Clerk

Query Parameters

cursor
string

Opaque cursor for the next page (from previous response meta.pagination.cursor)

limit
integer
default:25

Number of items per page (1–200, default 25)

Required range: 1 <= x <= 200
channel
enum<string>

Filter by channel

Available options:
sms,
whatsapp,
email,
rcs,
viber,
voice,
fax,
instagram,
messenger,
line,
push,
telegram
status
enum<string>

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.

Available options:
pending,
queued,
scheduled,
accepted,
sending,
sent,
delivered,
submitted_no_receipt,
read,
failed,
rejected,
undelivered,
bounced,
expired,
suppressed,
test_sent,
cancelled,
deleted,
unknown
to
string

Filter by recipient

Maximum string length: 100
direction
enum<string>

Filter by direction

Available options:
inbound,
outbound
contact_id
string

Filter by contact

Maximum string length: 100
dateRange
string

Date range filter (e.g. 7d, 30d, 90d)

Maximum string length: 10
from_date

Custom date range start (ISO 8601 date or date-time)

to_date

Custom date range end (ISO 8601 date or date-time)

conversation_id
string

Filter by conversation

Maximum string length: 100
groupBy
enum<string>

Group results

Available options:
conversation,
contact,
channel

Response

200 - application/json

Paginated list of messages

Paginated list of messages

data
object[]
meta
object