Skip to content

List support ticket rows

Platform module

GET/support-ticketssupportTickets.list

A request for help (0643): to the org's own admins (Organization queue) or, from holders of org.help.write, to the platform team (Platform queue), whose channel and first response deadline follow the plan. Readable by the requester and by those who answer support for the org. Returns a cursor page of support ticket rows the caller may see. The default order is `created_at` ascending. Supports sparse fieldsets and the filter grammar.

  • Requires the capability me.account.write.
  • OAuth scopes: me.
  • Cursor-paginated: limit, cursor, fields, sort and filter apply.
  • Error statuses: 400, 401, 429. Errors are RFC 9457 problem details.

Path and query parameters

supportTickets.list: Path and query parameters
FieldTypeRequiredDescription
limitLimitNoPage size. Default 50, maximum 200.Constraints: range 1 to 200
cursorCursorNoOpaque cursor from `next_cursor` of the previous page.Constraints: length 1 to any
fieldsFieldsNoSparse fieldset: a comma-separated list of top-level fields to return. `id` is always returned.Constraints: pattern ^[a-z_][a-z0-9_]*(,[a-z_][a-z0-9_]*)*$
sortSortNoSort keys, comma-separated; a leading `-` sorts descending. Without `sort`, the documented default order applies (coded lists sort in numeric code order).Constraints: pattern ^-?[a-z_][a-z0-9_]*(,-?[a-z_][a-z0-9_]*)*$
filterFilterNoFilter grammar `filter[field][op]=value`. Operators: eq, ne, lt, lte, gt, gte, in (comma-separated values), is_null (true or false) and contains. Conditions combine with AND.

Response 200: a page of SupportTicket

supportTickets.list: SupportTicket
FieldTypeRequiredDescription
idstring (uuid)YesIdentifier of the support ticket.
org_idstring (uuid)YesIdentifier of the owning organization, derived from the parent row and never accepted from the caller.
created_atstring (date-time)YesWhen the row was created.
created_bystring (uuid) | nullYesIdentifier of the person who created the row.
updated_atstring (date-time)YesWhen the row was last updated.
updated_bystring (uuid) | nullYesIdentifier of the person who last updated the row.
membership_idstring (uuid)YesIdentifier of the membership of the requester, set by the server.
ticket_numberstringYesDisplay number, SUP-0001 upward per org.Constraints: pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$
queue"Organization" | "Platform"YesOrganization or Platform.
category"Question" | "Problem" | "Access" | "Billing" | "Account" | "Feature Request"YesWhat the request is about.
severity"Severity 1" | "Severity 2" | "Severity 3" | "Severity 4"YesSeverity 1 (outage) to Severity 4 (question).
subjectstringYesOne-line summary.Constraints: length 1 to 200
bodystringYesWhat happened and what the requester needs.Constraints: length 1 to 20000
ticket_state"Open" | "Waiting" | "Resolved" | "Closed"YesOpen, Waiting, Resolved or Closed; moved by the transition action.
channel"In App" | "Email" | "Chat" | "Priority Queue" | "Dedicated Channel"YesIn App for the Organization queue; by plan for the Platform queue.
first_response_due_atstring (date-time) | nullYesPlatform first response deadline from the plan; null for best effort.
first_responded_atstring (date-time) | nullYesWhen a responder first answered.
{
  "data": [
    {
      "id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
      "org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
      "created_at": "2026-10-08T14:30:00Z",
      "created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
      "updated_at": "2026-10-08T14:30:00Z",
      "updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
      "membership_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
      "ticket_number": "SUP-0001",
      "queue": "Organization",
      "category": "Access",
      "severity": "Severity 3",
      "subject": "Scanner shows an unknown zone",
      "body": "At the north gate the scanner says the zone is unknown.",
      "ticket_state": "Open",
      "channel": "In App",
      "first_response_due_at": "2026-10-08T14:30:00Z",
      "first_responded_at": "2026-10-08T14:30:00Z"
    }
  ],
  "next_cursor": null
}

Code samples

curl -X GET "$XOS_BASE_URL/support-tickets" \
  -H "Authorization: Bearer $XOS_API_KEY"
for await (const row of xos.supportTickets.listAll()) {
  console.log(row);
}
for row in xos.support_tickets.list_all():
    print(row)
xos support-tickets list --all