Skip to navigation

List Messages

List the workspace’s messages, newest first, as a cursor-paginated page. Filter by id, aggregate status (repeat the parameter for several), recipient and created_at; filters are combined with AND and are fingerprinted into the cursor, so keep the query identical while walking a list.

Authentication

AuthorizationBearer

A workspace key (rray_live_…, bound to one workspace) or the account’s platform key. Platform keys name the target workspace with RRay-Workspace-Id. See Credentials.

Headers

RRay-Workspace-Idstring or nullOptional

The workspace to act on. Required with a platform key; rejected with a workspace key, which already carries its workspace — a matching value is rejected too, rather than silently ignored. An id that is not yours returns 404 workspace.not_found.

Query parameters

idstring or nullOptional

Return the message with this exact id (the id returned by POST /v1/messages).

statuslist of enums or nullOptional

Only return messages whose aggregate status is one of these. Repeat the param for several (status=queued&status=delivered).

recipientstring or nullOptional

Only return messages addressed to this exact address on any channel (to, cc, or bcc).

created_atlist of datetimes or nullOptional

Filter by creation time (RFC 3339). Pass 1 or 2 values:

  • Two values → an inclusive range; order does not matter (created_at=2026-07-01T00:00:00Z&created_at=2026-07-31T23:59:59Z).
  • One full timestamp → exact match (created_at=2026-07-12T09:30:00Z).
  • One date, no time → that whole calendar day (created_at=2026-07-12).

Include a timezone offset for local-time filtering (2026-07-12T00:00:00+07:00); a value without an offset is interpreted as UTC. To show a user’s day in their timezone, send the two local-day boundaries with their offset.

limitintegerOptional1-100Defaults to 20

Rows per page (1–100, default 20).

cursorstring or nullOptional

Opaque pagination token. Omit for the first page (newest rows first). To page, copy pagination.next_cursor (older rows) or pagination.prev_cursor (newer rows) from the previous response into this parameter — do not build it yourself: the walk direction and the active filter set are encoded in the token, and reusing a cursor with a different filter set is rejected (validation.cursor_filters_mismatch).

Response

Successful Response
datalist of objects
This page of rows, newest first.
paginationobject
Where you are in the list and how to walk it.
objectstringOptionalDefaults to list

Always list.

Errors

400
Bad Request Error
401
Unauthorized Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error