Skip to main content
Returns a conversation’s messages, ordered by createdAt ascending (oldest first) with cursor pagination. There is no cap on thread length — keep following nextCursor until hasMore is false.

Authentication

Bearer token in the Authorization header. See Authentication.

Path parameters

string
required
Conversation ID prefixed with conv_.

Query parameters

integer
default:"20"
Number of messages per page. Range 1–100.
string
Opaque cursor from the previous response’s nextCursor. See Pagination.

Response

Returns a list envelope containing Message objects.

The Message object

string
Unique identifier prefixed with msg_.
string
Always "message".
string
The owning conversation’s ID.
string
Message medium. One of chat, email.
string
Who sent the message. One of user (a contact), assistant (Replyful AI), human (a teammate), system.
object | null
The resolved sender. null for system messages.
string | null
Plain-text body. null if the message has no text content.
string | null
The language the message is written in, as a short code such as sv. null when unknown, for example on replies from teammates; the conversation’s language applies then.
array
Files attached to the message. Inline images in an email body are not listed. Fetch a file with Download an attachment.
string
ISO 8601 UTC timestamp of when the message was recorded.
string
ISO 8601 UTC timestamp of when the message last changed. Equals createdAt for a message that never changed. An AI chat message grows when the visitor answers a prompt in the widget (for example confirming a handover) and the AI replies: the reply is added to the same message.

Examples

Page through a thread

Response

Error responses

See Errors for the full error envelope reference.