API reference: Support
Snowtrol customer support API: create and read tickets, reply, and upload/download encrypted attachments. Staff work the cross-org queue in the admin realm.
The customer half of the ticket system (the /support screen). A ticket is visible to its requester and org admins; security-category tickets are admin/Owner-only. Staff internal notes and staff identities are structurally excluded from every customer read. The staff desk lives under `/api/admin/support/*`.
/api/support/ticketsSessionOpen a ticket: { subject, body, category, severity (S1–S4) }. Returns the ticket with its human number (SNW-<n>) and the plan/SLA snapshot taken at creation.
| Status | When |
|---|---|
400 | Missing subject/body, or an invalid category/severity. |
GET /api/support/tickets lists your visible tickets; GET …/{id} returns the ticket with its public message timeline; POST …/{id}/messages replies (a reply while waiting_on_customer flips the ticket back to in_progress).
/api/support/tickets/{id}/attachmentsSessionUpload an attachment (≤10MB; images/pdf/text-logs/zip allowlist). Bytes are AES-256-GCM encrypted app-side before the object store; GET …/attachments lists, GET …/attachments/{attId} downloads (decrypted server-side after the authorization check). A staff internal-note attachment is invisible to customers.
| Status | When |
|---|---|
400 | Too large or a disallowed content type. |
404 | Cross-org ticket, or an internal attachment. |
503 | No writable storage backend configured. |