App settings: PSA
PSA administration: queues and their mailboxes, statuses, ticket types, categories, SLA policies, workflows, email templates, procedures and approvals.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/psa/templates | List PSA email templates |
| POST | /v1/admin/psa/templates | Create a PSA email template |
| POST | /v1/admin/psa/templates/:id | Update a PSA email template |
| POST | /v1/admin/psa/templates/:id/delete | Delete a PSA email template |
| GET | /v1/admin/psa/statuses | List PSA statuses with their behaviours and ticket counts |
| POST | /v1/admin/psa/statuses | Add a PSA status. Requires the GLOBAL_ADMIN role |
| POST | /v1/admin/psa/statuses/:id | Update a PSA status. Requires the GLOBAL_ADMIN role |
| POST | /v1/admin/psa/statuses/:id/delete | Delete a PSA status. Requires the GLOBAL_ADMIN role |
| GET | /v1/admin/psa/workflows | List PSA workflow rules |
| POST | /v1/admin/psa/workflows | Create a PSA workflow rule |
| POST | /v1/admin/psa/workflows/:id | Update a PSA workflow rule |
| POST | /v1/admin/psa/workflows/:id/delete | Delete a PSA workflow rule and its run log |
| POST | /v1/admin/psa/workflow-test | Dry-run a PSA workflow rule against a ticket |
| GET | /v1/admin/psa/workflow-runs | Recent PSA workflow runs (last 30 days) |
| GET | /v1/admin/psa/sla | PSA business hours and SLA policies |
| POST | /v1/admin/psa/sla/hours | Add PSA business hours |
| POST | /v1/admin/psa/sla/hours/:id | Update PSA business hours |
| POST | /v1/admin/psa/sla/hours/:id/delete | Delete PSA business hours |
| POST | /v1/admin/psa/sla/policies | Add a PSA SLA policy |
| POST | /v1/admin/psa/sla/policies/:id | Update a PSA SLA policy |
| POST | /v1/admin/psa/sla/policies/:id/delete | Delete a PSA SLA policy |
| GET | /v1/admin/psa/types | List PSA ticket types |
| POST | /v1/admin/psa/types | Add a PSA ticket type |
| POST | /v1/admin/psa/types/:id | Rename, turn on/off or reorder a PSA ticket type |
| POST | /v1/admin/psa/types/:id/delete | Delete a PSA ticket type |
#List PSA email templates
/v1/admin/psa/templatesList PSA email templates. Requires the GLOBAL_ADMIN role. This is the only place templates can be created/edited/deleted — PSA's own app keeps a read-only copy (GET /v1/app/psa/templates) so ticket.html's reply picker still works.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
templates | array of object | |
templates[].id | integer | |
templates[].tenant_id | integer | |
templates[].name | string | |
templates[].subject | string, or null | |
templates[].body | string | |
templates[].category | string, or null | |
templates[].is_active | integer, or null | |
templates[].created_at | string (date-time), or null | |
templates[].updated_at | string (date-time), or null |
Example response
{
"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
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' -Headers $headers#Create a PSA email template
/v1/admin/psa/templatesCreate a PSA email template. Requires the GLOBAL_ADMIN role. name and body are required; category defaults to "reply".
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
namerequired | string | |
subject | any | |
bodyrequired | any | |
category | any | |
is_active | boolean |
Response 200
| Field | Type | Description |
|---|---|---|
template | any |
Example response
{
"template": null
}Errors
| Status | Message |
|---|---|
| 400 | name and body required |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","subject":"…","body":"…","category":"…","is_active":True},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' -Headers $headers -ContentType 'application/json' -Body $body#Update a PSA email template
/v1/admin/psa/templates/:idUpdate a PSA email template. Requires the GLOBAL_ADMIN role.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
subject | any | |
body | any | |
category | any | |
is_active | boolean |
Response 200
| Field | Type | Description |
|---|---|---|
template | any |
Example response
{
"template": null
}Errors
| Status | Message |
|---|---|
| 404 | Template not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","subject":"…","body":"…","category":"…","is_active":True},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete a PSA email template
/v1/admin/psa/templates/:id/deleteDelete a PSA email template. Requires the GLOBAL_ADMIN role.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42/delete' -Headers $headers#List PSA statuses with their behaviours and ticket counts
/v1/admin/psa/statusesList PSA statuses with their behaviours and ticket counts. Requires the GLOBAL_ADMIN role. The defaults are added on first use.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
statuses | array of object | |
statuses[].ticket_count | integer | |
groups | array of any |
Example response
{
"statuses": [
{
"…r": "…",
"ticket_count": 3
}
],
"groups": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' -Headers $headers#Add a PSA status. Requires the GLOBAL_ADMIN role
/v1/admin/psa/statusesAdd a PSA status. Requires the GLOBAL_ADMIN role. Body name, group_key (new/open/waiting/paused/closed), color, and optional behaviours (on_enter_template_id, on_reply_status_id, auto_after_hours + auto_to_status_id, remind_after_hours + remind_template_id, pauses_sla, is_default).
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
{
"id": 42
}Errors
| Status | Message |
|---|---|
| 400 | Give the status a name |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' -Headers $headers#Update a PSA status. Requires the GLOBAL_ADMIN role
/v1/admin/psa/statuses/:idUpdate a PSA status. Requires the GLOBAL_ADMIN role. Same fields as creating one, plus sort_order. Changing the group moves its tickets' basic status with it.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
group_key | string | |
color | any | |
sort_order | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 400 | Keep at least one turned-on status in the … group |
| 404 | Status not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","group_key":"…","color":"…","sort_order":1}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","group_key":"…","color":"…","sort_order":1}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","group_key":"…","color":"…","sort_order":1},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","group_key":"…","color":"…","sort_order":1}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5' -Headers $headers -ContentType 'application/json' -Body $body#Delete a PSA status. Requires the GLOBAL_ADMIN role
/v1/admin/psa/statuses/:id/deleteDelete a PSA status. Requires the GLOBAL_ADMIN role. Body { move_to } (a status id) is required when tickets are in it; they move there without emails.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
move_to | number |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
moved | number |
Example response
{
"success": true,
"moved": 12.5
}Errors
| Status | Message |
|---|---|
| 400 | Keep at least one turned-on status in the … group |
| 400 | … ticket(s) are in this status: pick one to move them to |
| 404 | Status not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5/delete' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"move_to":12.5}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"move_to":12.5}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"move_to":12.5},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"move_to":12.5}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5/delete' -Headers $headers -ContentType 'application/json' -Body $body#List PSA workflow rules
/v1/admin/psa/workflowsList PSA workflow rules. Requires the GLOBAL_ADMIN role. Includes how often each rule ran and errored in the last 30 days.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
workflows | array of object | |
workflows[].runs_30d | number | |
workflows[].errors_30d | number | |
events | array of any | |
actions | array of any |
Example response
{
"workflows": [
{
"…w": "…",
"runs_30d": 12.5,
"errors_30d": 12.5
}
],
"events": [],
"actions": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' -Headers $headers#Create a PSA workflow rule
/v1/admin/psa/workflowsCreate a PSA workflow rule. Requires the GLOBAL_ADMIN role. Body name, trigger_event, trigger_config, match_mode (all/any), conditions [{field, op, value}], actions [{type, ...}], stop_further, is_active.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
trigger_event | string | |
trigger_config | object | |
conditions | array of any | |
actions | array of any | |
match_mode | string | |
stop_further | any | |
is_active | boolean |
Response 200
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
{
"id": 42
}Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","trigger_event":"string","trigger_config":{},"conditions":[],"actions":[],"match_mode":"string","stop_further":"…","is_active":true}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","trigger_event":"string","trigger_config":{},"conditions":[],"actions":[],"match_mode":"string","stop_further":"…","is_active":true}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","trigger_event":"string","trigger_config":{},"conditions":[],"actions":[],"match_mode":"string","stop_further":"…","is_active":True},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","trigger_event":"string","trigger_config":{},"conditions":[],"actions":[],"match_mode":"string","stop_further":"…","is_active":true}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' -Headers $headers -ContentType 'application/json' -Body $body#Update a PSA workflow rule
/v1/admin/psa/workflows/:idUpdate a PSA workflow rule. Requires the GLOBAL_ADMIN role. Send the whole rule, or just { is_active } or { sort_order }.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
is_active | boolean | |
sort_order | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Workflow not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","is_active":true,"sort_order":1}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","is_active":true,"sort_order":1}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","is_active":True,"sort_order":1},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","is_active":true,"sort_order":1}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete a PSA workflow rule and its run log
/v1/admin/psa/workflows/:id/deleteDelete a PSA workflow rule and its run log. Requires the GLOBAL_ADMIN role.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Workflow not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42/delete' -Headers $headers#Dry-run a PSA workflow rule against a ticket
/v1/admin/psa/workflow-testDry-run a PSA workflow rule against a ticket. Requires the GLOBAL_ADMIN role. Body { rule, ticket_id }. Says whether the conditions match and why; nothing is changed.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
rule | any | |
ticket_id | integer |
Response 200
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"rule":"…","ticket_id":7}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"rule":"…","ticket_id":7}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"rule":"…","ticket_id":7},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"rule":"…","ticket_id":7}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test' -Headers $headers -ContentType 'application/json' -Body $body#Recent PSA workflow runs (last 30 days)
/v1/admin/psa/workflow-runsRecent PSA workflow runs (last 30 days). Requires the GLOBAL_ADMIN role. Optional ?workflow_id, ?errors=1, ?limit (max 200).
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Query parameters
| Name | Type | Description |
|---|---|---|
workflow_id | number | |
errors | string | |
limit | integer |
Response 200
| Field | Type | Description |
|---|---|---|
runs | array of object | |
runs[].id | integer | |
runs[].tenant_id | integer | |
runs[].workflow_id | integer | |
runs[].ticket_id | integer | |
runs[].trigger_event | string | |
runs[].outcome | string | |
runs[].detail | string, or null | |
runs[].created_at | string (date-time), or null | |
runs[].workflow_name | string | |
runs[].ticket_subject | string |
Example response
{
"runs": [
{
"id": 42,
"tenant_id": 1,
"workflow_id": 7,
"ticket_id": 7,
"trigger_event": "string",
"outcome": "string",
"detail": "string",
"created_at": "2026-11-12T09:30:00.000Z",
"workflow_name": "Example workflow name",
"ticket_subject": "Example ticket subject"
}
]
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs' -Headers $headers#PSA business hours and SLA policies
/v1/admin/psa/slaPSA business hours and SLA policies. Requires the GLOBAL_ADMIN role. Also counts open tickets on each policy and how many are breached.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
hours | array of any | |
policies | array of object | |
policies[].open_count | number | |
policies[].breached | number |
Example response
{
"hours": [],
"policies": [
{
"…p": "…",
"open_count": 12.5,
"breached": 12.5
}
]
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla' -Headers $headers#Add PSA business hours
/v1/admin/psa/sla/hoursAdd PSA business hours. Requires the GLOBAL_ADMIN role. Body name, timezone, schedule {"1":[["09:00","17:30"]],…} (0 = Sunday), holidays ["YYYY-MM-DD"], bank_holidays (england-and-wales / scotland / northern-ireland or null).
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
timezone | any | |
schedule | any | |
holidays | array of any | |
bank_holidays | string: "england-and-wales" | "scotland" | "northern-ireland" |
Response 200
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
{
"id": 42
}Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours' -Headers $headers -ContentType 'application/json' -Body $body#Update PSA business hours
/v1/admin/psa/sla/hours/:idUpdate PSA business hours. Requires the GLOBAL_ADMIN role. Same body as adding them.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
timezone | any | |
schedule | any | |
holidays | array of any | |
bank_holidays | string: "england-and-wales" | "scotland" | "northern-ireland" |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Business hours not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete PSA business hours
/v1/admin/psa/sla/hours/:id/deleteDelete PSA business hours. Requires the GLOBAL_ADMIN role. Policies using them switch to round the clock.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Business hours not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42/delete' -Headers $headers#Add a PSA SLA policy
/v1/admin/psa/sla/policiesAdd a PSA SLA policy. Requires the GLOBAL_ADMIN role. Body name, business_hours_id, targets {priority: {response, resolution}} in minutes, warn_percent, customer_ids, queue_ids, type_ids (empty = all), is_active.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
targets | array of any | |
is_active | boolean | |
business_hours_id | number | |
warn_percent | integer | |
customer_ids | array of any | |
queue_ids | array of any | |
type_ids | array of any |
Response 200
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
{
"id": 42
}Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","targets":[],"is_active":true,"business_hours_id":12.5,"warn_percent":1,"customer_ids":[],"queue_ids":[],"type_ids":[]}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","targets":[],"is_active":true,"business_hours_id":12.5,"warn_percent":1,"customer_ids":[],"queue_ids":[],"type_ids":[]}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","targets":[],"is_active":True,"business_hours_id":12.5,"warn_percent":1,"customer_ids":[],"queue_ids":[],"type_ids":[]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","targets":[],"is_active":true,"business_hours_id":12.5,"warn_percent":1,"customer_ids":[],"queue_ids":[],"type_ids":[]}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies' -Headers $headers -ContentType 'application/json' -Body $body#Update a PSA SLA policy
/v1/admin/psa/sla/policies/:idUpdate a PSA SLA policy. Requires the GLOBAL_ADMIN role. The whole policy, or just { is_active } or { sort_order }.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
is_active | boolean | |
sort_order | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Policy not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","is_active":true,"sort_order":1}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","is_active":true,"sort_order":1}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","is_active":True,"sort_order":1},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","is_active":true,"sort_order":1}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete a PSA SLA policy
/v1/admin/psa/sla/policies/:id/deleteDelete a PSA SLA policy. Requires the GLOBAL_ADMIN role. Open tickets move to the next policy that covers them, if any.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Policy not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42/delete' -Headers $headers#List PSA ticket types
/v1/admin/psa/typesList PSA ticket types. Requires the GLOBAL_ADMIN role. Includes inactive types.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Response 200
| Field | Type | Description |
|---|---|---|
types | array of object | |
types[].ticket_count | integer |
Example response
{
"types": [
{
"…t": "…",
"ticket_count": 3
}
]
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/types', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/types",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' -Headers $headers#Add a PSA ticket type
/v1/admin/psa/typesAdd a PSA ticket type. Requires the GLOBAL_ADMIN role. Body { name }.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string |
Response 200
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
{
"id": 42
}Errors
| Status | Message |
|---|---|
| 400 | Give the type a name |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/types', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name"}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/types",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' -Headers $headers -ContentType 'application/json' -Body $body#Rename, turn on/off or reorder a PSA ticket type
/v1/admin/psa/types/:idRename, turn on/off or reorder a PSA ticket type. Requires the GLOBAL_ADMIN role. Body { name?, is_active?, sort_order? }. Inactive types stay on existing tickets but can't be picked.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
is_active | boolean | |
sort_order | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 400 | Give the type a name |
| 404 | Type not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","is_active":true,"sort_order":1}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","is_active":true,"sort_order":1}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","is_active":True,"sort_order":1},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","is_active":true,"sort_order":1}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete a PSA ticket type
/v1/admin/psa/types/:id/deleteDelete a PSA ticket type. Requires the GLOBAL_ADMIN role. Tickets of this type are left without one.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):psa.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Type not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42/delete' -Headers $headersWas this page helpful?
Thanks for your feedback.