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)

#List agents (tenant users)

GET/v1/app/psa/agents
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/agents
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Response 200

FieldTypeDescription
agentsarray of object
agents[].idinteger
agents[].first_namestring, or null
agents[].last_namestring, or null
agents[].emailstring
Example response
JSON
{
  "agents": [
    {
      "id": 42,
      "first_name": "Alex",
      "last_name": "Morgan",
      "email": "alex@example.com"
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/agents' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List queues for tenant (inc

GET/v1/app/psa/queues

List queues for tenant (inc. parent/child hierarchy info)

Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Response 200

FieldTypeDescription
queuesarray of object
queues[].restrictedboolean
Example response
JSON
{
  "queues": [
    {
      "…sanitiseQueue(q)": "…",
      "…lists[q.id] || { group_i": "…",
      "restricted": false
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a queue (set parent_id for sub-queue)

POST/v1/app/psa/queues
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Request body JSON

NameTypeDescription
namerequiredstring
parent_idinteger
email_addressany
imap_hostany
imap_portany
imap_userany
imap_passarray of any
imap_tlsarray of any
smtp_hostany
smtp_portany
smtp_userany
smtp_passarray of any
smtp_fromany

Response 200

FieldTypeDescription
queueany
Example response
JSON
{
  "queue": null
}

Errors

StatusMessage
400name is required
400Parent queue not found or is itself a sub-queue

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","parent_id":7,"email_address":"…","imap_host":"…","imap_port":"…","imap_user":"…","imap_pass":[],"imap_tls":[],"smtp_host":"…","smtp_port":"…","smtp_user":"…","smtp_pass":[],"smtp_from":"…"}'

#Update a queue

POST/v1/app/psa/queues/:id
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Path parameters

NameTypeDescription
idrequiredstring

Request body JSON

NameTypeDescription
namestring
parent_idstring
email_addressany
imap_hostany
imap_portany
imap_userany
imap_passarray of any
imap_tlsarray of any
smtp_hostany
smtp_portany
smtp_userany
smtp_passarray of any
smtp_fromany
is_activeboolean

Response 200

FieldTypeDescription
queueany
Example response
JSON
{
  "queue": null
}

Errors

StatusMessage
400Queue cannot be its own parent
400Parent queue not found or is itself a sub-queue
404Queue not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/string' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","parent_id":"string","email_address":"…","imap_host":"…","imap_port":"…","imap_user":"…","imap_pass":[],"imap_tls":[],"smtp_host":"…","smtp_port":"…","smtp_user":"…","smtp_pass":[],"smtp_from":"…","is_active":true}'

#Delete a queue (also removes sub-queues via FK cascade)

POST/v1/app/psa/queues/:id/delete
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Test IMAP connection for a specific queue

POST/v1/app/psa/queues/:id/test-imap
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/:id/test-imap
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
inboxobject
inbox.messagesarray of any
inbox.unseenany
Example response
JSON
{
  "success": true,
  "inbox": {
    "messages": [],
    "unseen": null
  }
}

Errors

StatusMessage
400IMAP not configured on this queue
404Queue not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/42/test-imap' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List email templates

GET/v1/app/psa/statuses

List email templates. Read-only — template management has moved to BRM-Admin's PSA > Templates tab.

Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/statuses
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Response 200

FieldTypeDescription
statusesarray of object
statuses[].idinteger
statuses[].namestring
statuses[].group_keystring
statuses[].colorany
statuses[].is_activeboolean
statuses[].is_defaultboolean
Example response
JSON
{
  "statuses": [
    {
      "id": 42,
      "name": "Example name",
      "group_key": "…",
      "color": null,
      "is_active": true,
      "is_default": true
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/statuses' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List ticket types

GET/v1/app/psa/types
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/types
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Response 200

FieldTypeDescription
typesarray of any
Example response
JSON
{
  "types": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/types' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List reply templates

GET/v1/app/psa/templates
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/templates
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Response 200

FieldTypeDescription
templatesarray of object
templates[].idinteger
templates[].tenant_idinteger
templates[].namestring
templates[].subjectstring, or null
templates[].bodystring
templates[].categorystring, or null
templates[].is_activeinteger, or null
templates[].created_atstring (date-time), or null
templates[].updated_atstring (date-time), or null
Example response
JSON
{
  "templates": [
    {
      "id": 42,
      "tenant_id": 1,
      "name": "Example name",
      "subject": "Example subject",
      "body": "<p>…</p>",
      "category": "string",
      "is_active": 1,
      "created_at": "2026-11-12T09:30:00.000Z",
      "updated_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/templates' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Get category IDs assigned to a queue

GET/v1/app/psa/queues/:id/categories
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/:id/categories
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
category_idsarray of integer
Example response
JSON
{
  "category_ids": [
    7
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/42/categories' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Set categories for a queue (replaces all)

POST/v1/app/psa/queues/:id/categories
Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/:id/categories
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
category_idsarray of any

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Queue not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/queues/42/categories' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_ids":[]}'