Search tickets
Zammad's own ticket search: free text or attributes such as state.name and customer.lastname.
GET https://cotlet.dev/api/v1/zammad/tickets/search
Runs the query as if you typed it in the search bar, so Zammad's advanced search syntax works (for example state.name:open AND customer.lastname:Hill). Returns the tickets your account can see, with number, title, customer, state, priority, group and owner, and next_cursor when there are more. Zammad asks for English state names unless your instance has custom states. Reads nothing but the list; open a ticket with get_ticket.
Parameters
| Name | Type | Description |
|---|---|---|
| query string required | string | What you would type in Zammad's search bar, e.g. 'invoice' or 'state.name:open AND customer.lastname:Hill'. |
| limit integer | integer | How many tickets to return in one call. The rest follow with cursor. |
| cursor string | string | Next page cursor from the previous call. |
Request
curl "https://cotlet.dev/api/v1/zammad/tickets/search?query=invoice" \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("zammad", "search_tickets", {"query":"invoice"}) const result = await cotlet.call('zammad', 'search_tickets', {"query":"invoice"}); cotlet call zammad search_tickets --data '{"query":"invoice"}' Example response
{
"tickets": [
{
"ticket_id": 4821,
"number": "31004821",
"title": "Invoice address change",
"customer": "Dana Hill",
"state": "open",
"priority": "2 normal",
"group": "Billing",
"owner": "Nora Weiss",
"created_at": "2026-10-21T08:12:00.000Z"
}
],
"next_cursor": null
}