PSA API

Bramble PSA: tickets and their messages, notes and attachments; queues; customers and contacts (shared with Atlas); categories and types; agreements; and your own signature. Works with an API key. PSA settings (statuses, SLAs, workflows, templates, procedures) are in the Admin Centre API.

Address
https://<your-org>.brambleit.cloud/api
Sign-in
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Address
https://<your-org>.brambleit.cloud/psa
Sign-in
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Endpoints
54
OpenAPI
psa.json
Guides
How PSA works

Queues decide access. You see the tickets in queues your groups can use; each queue can have its own statuses and ticket types.

Messages. A ticket's conversation is a list of messages: replies (emailed to the contact), internal notes, and incoming email. Message bodies are HTML; Bramble cleans them before display.

Events. New tickets, replies, status changes and SLA warnings can start Flows (psa.ticket.created and others).

Resources

Tickets

Searching and listing tickets, one ticket with its conversation, creating, updating, bulk changes, replies and notes, and attachments.

MethodPathSummary
GET/v1/app/psa/checkCheck PSA app access
GET/v1/app/psa/ticketsList tickets for tenant
GET/v1/app/psa/tickets/:idGet a single ticket with messages and activity
POST/v1/app/psa/ticketsCreate a ticket
POST/v1/app/psa/tickets/bulkBulk update tickets (close, set_status, set_type, set_category, set_priority, assign)
POST/v1/app/psa/tickets/:idUpdate ticket fields
POST/v1/app/psa/tickets/:id/deleteDelete ticket
POST/v1/app/psa/tickets/:id/messagesAdd a message or internal note to a ticket
GET/v1/app/psa/attachments/:idDownload/view an attachment by DB id
GET/v1/app/psa/tickets/:id/attachmentsList attachments for a ticket

Queues

Queues, the agents who work them, and each queue's statuses, ticket types and reply templates.

MethodPathSummary
GET/v1/app/psa/agentsList agents (tenant users)
GET/v1/app/psa/queuesList queues for tenant (inc
POST/v1/app/psa/queuesCreate a queue (set parent_id for sub-queue)
POST/v1/app/psa/queues/:idUpdate a queue
POST/v1/app/psa/queues/:id/deleteDelete a queue (also removes sub-queues via FK cascade)
POST/v1/app/psa/queues/:id/test-imapTest IMAP connection for a specific queue
GET/v1/app/psa/statusesList email templates
GET/v1/app/psa/typesList ticket types
GET/v1/app/psa/templatesList reply templates
GET/v1/app/psa/queues/:id/categoriesGet category IDs assigned to a queue
POST/v1/app/psa/queues/:id/categoriesSet categories for a queue (replaces all)

Customers

Customers (organisations), their agreements, and their links to RMM sites and to a Bramble organisation.

MethodPathSummary
GET/v1/app/psa/customersList customers
POST/v1/app/psa/customersCreate customer
POST/v1/app/psa/customers/:idUpdate customer
POST/v1/app/psa/customers/:id/deleteDelete customer
GET/v1/app/psa/customers/:id/contactsContacts for a customer
GET/v1/app/psa/customers/:id/ticketsTickets for a customer
GET/v1/app/psa/customers/:id/devices════════════════════════════════════════════════════════════════════════════════ CUSTOMER ↔ RMM DEVICES (RMM-license gated) ════════════════════════════════…
GET/v1/app/psa/rmm-sitesRMM sites (to link to customers)
POST/v1/app/psa/customers/:id/link-siteLink a customer to an RMM site
GET/v1/app/psa/customers/:id/linksOne customer record (ticket #85, services/customerLinks.js): the RMM sites and the customer's own Bramble organisation linked to a PSA customer, plus what co…
GET/v1/app/psa/customers/:id/agreementA customer's agreement
POST/v1/app/psa/customers/:id/agreementAdd an agreement line
PUT/v1/app/psa/customers/:id/agreement/:lineIdUpdate an agreement line
DELETE/v1/app/psa/customers/:id/agreement/:lineIdRemove an agreement line
PUT/v1/app/psa/customers/:id/bramble-tenantLink a customer to its Bramble organisation
POST/v1/app/psa/customers/:id/unlink-siteUnlink a customer from an RMM site

Contacts

People at customers.

MethodPathSummary
GET/v1/app/psa/contactsList contacts
POST/v1/app/psa/contactsCreate contact
POST/v1/app/psa/contacts/:idUpdate contact
POST/v1/app/psa/contacts/:id/deleteDelete contact

Categories

Ticket categories and subcategories.

MethodPathSummary
GET/v1/app/psa/categoriesList categories (flat, with parent_id)
POST/v1/app/psa/categoriesCreate category
POST/v1/app/psa/categories/:idUpdate category
POST/v1/app/psa/categories/:id/deleteDelete category

PSA settings

PSA configuration for the organisation, and your own preferences and email signature.

MethodPathSummary
GET/v1/app/psa/me/signatureYour own email signature (PSA v2, ticket #57): added under every reply you send
PUT/v1/app/psa/me/signatureSet your email signature
GET/v1/app/psa/configGet tenant PSA config
POST/v1/app/psa/configSave tenant PSA config (upsert)
POST/v1/app/psa/config/test-smtpSend a test email via configured SMTP
POST/v1/app/psa/config/email-previewEmail preview for BRM-Admin → PSA → Branding: the saved settings with any unsaved changes from the form on top (nothing is stored)
GET/v1/app/psa/config/poller-statusGet IMAP poller status (interval, last run, results)
POST/v1/app/psa/config/poll-nowTrigger an immediate IMAP poll
POST/v1/app/psa/config/test-imapTest global IMAP connection

Web pages

These return pages for the browser rather than data.

  • GET /
  • GET /ticket/*
  • GET /customers
  • GET /customers/*
  • GET /contacts
  • GET /settings
  • GET /categories