Skip to content
Navigation
GET/tickets/{ticketId}/messages

List messages in a ticket thread

Returns a ticket thread oldest-first. Internal teammate notes are excluded unless includeInternal=true. Requires a team-role API key.

Parameters

NameInTypeDescription
ticketIdrequiredpathstringTicket ID
includeInternalquerybooleanInclude internal teammate notes (default: false)
beforequerystringMessage ID cursor for the next older page (from meta.pagination.cursor)

Response

List of messages

Returns an array of objects:

FieldTypeDescription
idrequiredstringTypeID - a type-prefixed UUID
ticketIdrequiredstringTypeID - a type-prefixed UUID
senderTyperequired"visitor" | "agent" | "system"Who sent the message
isInternalrequiredbooleanWhether this is an internal teammate note not visible to the requester
authorPrincipalIdrequiredstring | nullPrincipal ID of the author, null for system messages
authorNamerequiredstringnullDisplay name of the author, null for system messages
contentrequiredstringMarkdown content. Derived from contentJson when it carries an image (restores `![](…)` that plain markdown storage would otherwise lose), else the stored text verbatim.
contentJsonrequiredobject | nullRich text content as TipTap JSON, null for plain-text messages
attachmentsrequiredobject[] | nullImage/file attachments, null if none
createdAtrequiredstringISO 8601 timestamp

meta

FieldTypeDescription
paginationrequiredobject

Errors

401Unauthorized
404Ticket not found

Example request

curl \
  "https://feedback.quackback.io/api/v1/tickets/:ticketId/messages" \
  -H "Authorization: Bearer qb_your_api_key_here"