Skip to content

Get a support ticket

Platform module

GET/support-tickets/{id}supportTickets.get

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 one support ticket with its `ETag`. A support ticket the caller may not see returns 404.

  • Requires the capability me.account.write.
  • OAuth scopes: me.
  • Error statuses: 400, 401, 404, 429. Errors are RFC 9457 problem details.

Path and query parameters

supportTickets.get: Path and query parameters
FieldTypeRequiredDescription
idstring (uuid)YesIdentifier of the support ticket.
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_]*)*$

Response 200: SupportTicket

supportTickets.get: 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.
{
  "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"
}

Code samples

curl -X GET "$XOS_BASE_URL/support-tickets/0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $XOS_API_KEY"
const { data, etag } = await xos.supportTickets.get("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f");
response = xos.support_tickets.get("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f")
xos support-tickets get 0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f