List Ticket Comments
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
| Parameter | Required | Description |
|---|---|---|
ticketId | Yes | Ticket ID in the API key's workspace. |
limit | No | Page size from 1 to 100. Default: 50. |
cursor | No | Opaque nextCursor returned by the previous page. |
commentType | No | PUBLIC (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 previousnextCursorunchanged with the same ticket and visibility, or omit it to restart.
Existing API authentication and quota restrictions also apply.