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
| Field | Type | Required | Description |
|---|---|---|---|
| limit | Limit | No | Page size. Default 50, maximum 200.Constraints: range 1 to 200 |
| cursor | Cursor | No | Opaque cursor from `next_cursor` of the previous page.Constraints: length 1 to any |
| fields | Fields | No | Sparse 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_]*)*$ |
| sort | Sort | No | Sort 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_]*)*$ |
| filter | Filter | No | Filter 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
| Field | Type | Required | Description |
|---|---|---|---|
| id | string (uuid) | Yes | Identifier of the support ticket. |
| org_id | string (uuid) | Yes | Identifier of the owning organization, derived from the parent row and never accepted from the caller. |
| created_at | string (date-time) | Yes | When the row was created. |
| created_by | string (uuid) | null | Yes | Identifier of the person who created the row. |
| updated_at | string (date-time) | Yes | When the row was last updated. |
| updated_by | string (uuid) | null | Yes | Identifier of the person who last updated the row. |
| membership_id | string (uuid) | Yes | Identifier of the membership of the requester, set by the server. |
| ticket_number | string | Yes | Display number, SUP-0001 upward per org.Constraints: pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$ |
| queue | "Organization" | "Platform" | Yes | Organization or Platform. |
| category | "Question" | "Problem" | "Access" | "Billing" | "Account" | "Feature Request" | Yes | What the request is about. |
| severity | "Severity 1" | "Severity 2" | "Severity 3" | "Severity 4" | Yes | Severity 1 (outage) to Severity 4 (question). |
| subject | string | Yes | One-line summary.Constraints: length 1 to 200 |
| body | string | Yes | What happened and what the requester needs.Constraints: length 1 to 20000 |
| ticket_state | "Open" | "Waiting" | "Resolved" | "Closed" | Yes | Open, Waiting, Resolved or Closed; moved by the transition action. |
| channel | "In App" | "Email" | "Chat" | "Priority Queue" | "Dedicated Channel" | Yes | In App for the Organization queue; by plan for the Platform queue. |
| first_response_due_at | string (date-time) | null | Yes | Platform first response deadline from the plan; null for best effort. |
| first_responded_at | string (date-time) | null | Yes | When 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