Admin
Projects administration and image uploads.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/project/images/:id | Fetch a project image (icon/banner/comment attachment) by id |
| GET | /v1/app/project/admin/overview | Tenant-wide project stats overview (for BRM-Admin) |
| GET | /v1/app/project/admin/projects | List every project in the tenant (for BRM-Admin) |
| PATCH | /v1/app/project/admin/projects/:id | Archive or reactivate any project in the tenant (for BRM-Admin) |
#Fetch a project image (icon/banner/comment attachment) by id
GET
/v1/app/project/images/:idFetch a project image (icon/banner/comment attachment) by id. Public endpoint, no authentication required — used directly as an <img> src. Registered before the license gate so it is never covered by it.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/images/:id- Requires
- None: public, or protected by a token in the address or body.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response
A body.
Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/images/42' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/images/42', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/images/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/images/42' -Headers $headers#Tenant-wide project stats overview (for BRM-Admin)
GET
/v1/app/project/admin/overviewTenant-wide project stats overview (for BRM-Admin). Requires the GLOBAL_ADMIN role (not project membership).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/admin/overview- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
project_count | integer | |
member_count | integer | |
open_tasks | array of any |
Example response
JSON
{
"project_count": 3,
"member_count": 3,
"open_tasks": []
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/overview' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/admin/overview', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/admin/overview",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/overview' -Headers $headers#List every project in the tenant (for BRM-Admin)
GET
/v1/app/project/admin/projectsList every project in the tenant (for BRM-Admin). Requires the GLOBAL_ADMIN role (not project membership).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
projects | array of object | |
projects[].id | integer | |
projects[].tenant_id | integer | |
projects[].client_id | integer, or null | |
projects[].name | string | |
projects[].slug | string | |
projects[].public_id | string | |
projects[].description | string, or null | |
projects[].color | string, or null | |
projects[].icon_image_id | integer, or null | |
projects[].banner_image_id | integer, or null | |
projects[].status | string: "active" | "archived" | |
projects[].created_by | integer | |
projects[].created_at | string (date-time) | |
projects[].updated_at | string (date-time) | |
projects[].archived_at | string (date-time), or null | |
projects[].member_count | boolean | |
projects[].task_count | boolean |
Example response
JSON
{
"projects": [
{
"id": 42,
"tenant_id": 1,
"client_id": 7,
"name": "Example name",
"slug": "example",
"public_id": "string",
"description": "string",
"color": "#2563eb",
"icon_image_id": 7,
"banner_image_id": 7,
"status": "active",
"created_by": 1,
"created_at": "2026-11-12T09:30:00.000Z",
"updated_at": "2026-11-12T09:30:00.000Z",
"archived_at": "2026-11-12T09:30:00.000Z",
"member_count": false,
"task_count": false
}
]
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects' -Headers $headers#Archive or reactivate any project in the tenant (for BRM-Admin)
PATCH
/v1/app/project/admin/projects/:idArchive or reactivate any project in the tenant (for BRM-Admin). Requires the GLOBAL_ADMIN role (not project membership).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
status | string: "active" | "archived" |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | Invalid status |
Example request
Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"active"}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects/42', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"status":"active"}),
});
const data = await res.json();Python
import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"status":"active"},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"status":"active"}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/admin/projects/42' -Headers $headers -ContentType 'application/json' -Body $bodyWas this page helpful?
Thanks for your feedback.