List Tickets

List tickets on a desk with filters and keyset pagination.

List tickets on the token's desk, newest first. Filter by requester or status, and page through results with a keyset cursor. The list returns summaries, with no message bodies. To read a ticket in full, call Get A Ticket.

Query

Example

curl
curl "https://acme.headoni.app/api/v1/tickets?status=open&limit=20" \
  -H "Authorization: Bearer hd_your_secret_here"

Response

200
{
  "tickets": [
    {
      "id": "1490375649312800768",
      "number": 1247,
      "subject": "Login broken on staging",
      "priority": "high",
      "status": { "id": "1490300000000000001", "label": "Open", "internalType": "open" },
      "requester": { "email": "alice@example.com", "name": "Alice" },
      "createdAt": "2026-06-04T15:21:09.000Z",
      "updatedAt": "2026-06-04T15:40:11.000Z"
    }
  ],
  "nextCursor": "1490375649312800768"
}

Pagination

The list is ordered by ticket id, newest first. When nextCursor is not null, pass it back as cursor to fetch the next page. A null nextCursor means you have reached the end.

next page
curl "https://acme.headoni.app/api/v1/tickets?status=open&limit=20&cursor=1490375649312800768" \
  -H "Authorization: Bearer hd_your_secret_here"

Errors

StatuserrorMeaning
400invalid_queryA parameter is malformed. See issues.
400invalid_statusstatus is neither a keyword nor a numeric id.
401unauthenticatedMissing or invalid token.
403insufficient_scopeToken lacks tickets:read.