Skip to main content

List Ticket Comments

GET/public/action/tickets/comments/list

Retrieve a ticket conversation one page at a time. Authenticate with your workspace's X-API-KEY on your dashboard's backend; do not expose the key in browser code. Find ticketId using List tickets or Search tickets.

Parameters​

ParameterRequiredDescription
ticketIdYesTicket ID in the API key's workspace.
limitNoPage size from 1 to 100. Default: 50.
cursorNoOpaque nextCursor returned by the previous page.
commentTypeNoPUBLIC (default), PRIVATE (internal notes), or ALL.

PUBLIC returns client-visible replies. PRIVATE and ALL can expose internal notes; choose visibility for your dashboard's audience. API keys grant workspace-owner access.

Request​

curl --get https://api.withmoxie.com/public/action/tickets/comments/list \
-H "X-API-KEY: your_api_key_here" \
--data-urlencode "ticketId=66b0f6e5c3a9e40012ab7100" \
--data-urlencode "limit=50" \
--data-urlencode "commentType=PUBLIC"

Response​

{
"comments": [
{
"id": "66b0f6e5c3a9e40012ab7200",
"ticketId": "66b0f6e5c3a9e40012ab7100",
"commentType": "PUBLIC",
"comment": "Following up.",
"commentFormat": "PlainText",
"commentUserName": "Jane",
"commentUserEmail": "jane@example.com",
"created": "2026-10-28T12:00:00Z",
"updated": null,
"attachments": []
}
],
"nextCursor": null,
"hasMore": false
}

Comments are ordered newest first by creation time, then ID. The response uses the existing TicketComment representation, including author IDs and attachment metadata when present. Attachment metadata does not guarantee permanent download URLs.

When hasMore is true, pass the returned nextCursor as cursor on the next request, keeping ticketId and commentType unchanged. Continue until hasMore is false and nextCursor is null. Do not construct or edit cursors yourself. You can change limit between pages. Reading does not mark the ticket read or notify anyone.

New replies do not shift subsequent pages. This is a live conversation, not a frozen snapshot or a synchronization feed for edits/deletions. Restart without a cursor to refresh the dashboard, and replace cached versions by comment ID. Treat HTML comment bodies as untrusted content when rendering them.

Errors​

  • 400: Missing or malformed headers/parameters, including an unknown commentType.
  • 404: The ticket does not exist in the API key's workspace.
  • 412: Blank ticketId, a limit outside 1–100, or an invalid cursor. Reuse the previous nextCursor unchanged with the same ticket and visibility, or omit it to restart.

Existing API authentication and quota restrictions also apply.