List ticket articles
The messages and notes of a ticket, oldest first, with sender, type and visibility.
GET https://cotlet.dev/api/v1/zammad/ticket-articles
read
Returns every article of the ticket in order. type is email, phone, web or note, sender is Agent, Customer or System, and internal is true for articles the customer cannot see. body is plain text; attachments are listed by file name and are not downloaded. A long thread comes in pages: pass next_cursor back as cursor.
Parameters
| Name | Type | Description |
|---|---|---|
| ticket_id integer required | integer | Ticket ID from search_tickets, list_overview_tickets or the ticket address (#ticket/zoom/{ticket_id}). |
| cursor string | string | Next page cursor from the previous call. |
Request
curl "https://cotlet.dev/api/v1/zammad/ticket-articles?ticket_id=1" \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("zammad", "list_ticket_articles", {"ticket_id":1}) const result = await cotlet.call('zammad', 'list_ticket_articles', {"ticket_id":1}); cotlet call zammad list_ticket_articles --data '{"ticket_id":1}' Example response
{
"articles": [
{
"article_id": 9034,
"type": "email",
"sender": "Customer",
"internal": false,
"from": "Dana Hill <dana.hill@example.com>",
"subject": "Invoice address change",
"body": "Hi, we moved offices. Please change the address on our invoices.",
"attachments": [],
"created_at": "2026-10-14T10:05:00.000Z"
},
{
"article_id": 9047,
"type": "email",
"sender": "Agent",
"internal": false,
"from": "Nora Weiss",
"subject": "Invoice address change",
"body": "Hi Dana, which invoices should carry the new address, and what is it?",
"attachments": [],
"created_at": "2026-10-15T13:20:00.000Z"
}
],
"next_cursor": null
}