Statuses
A project's workflow states.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/project/projects/:id/statuses | List a project's statuses (also used as the Board's columns) |
| POST | /v1/app/project/projects/:id/statuses | Create a status/board column |
| PATCH | /v1/app/project/projects/:id/statuses/:statusId | Update a status/board column |
| DELETE | /v1/app/project/projects/:id/statuses/:statusId | Delete a status/board column |
#List a project's statuses (also used as the Board's columns)
GET
/v1/app/project/projects/:id/statusesList a project's statuses (also used as the Board's columns). Requires at least viewer role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/statuses- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
statuses | array of object | |
statuses[].id | integer | |
statuses[].project_id | integer | |
statuses[].name | string | |
statuses[].position | integer | |
statuses[].color | string | |
statuses[].is_default | boolean | |
statuses[].is_closed | boolean | |
statuses[].created_at | string (date-time) |
Example response
JSON
{
"statuses": [
{
"id": 42,
"project_id": 7,
"name": "Example name",
"position": 1,
"color": "#2563eb",
"is_default": true,
"is_closed": true,
"created_at": "2026-11-12T09:30:00.000Z"
}
]
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses', {
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/projects/42/statuses",
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/projects/42/statuses' -Headers $headers#Create a status/board column
POST
/v1/app/project/projects/:id/statusesCreate a status/board column. Requires at least admin role on the project. Appended to the end of the status list; setting is_default unsets it on every other status.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/statuses- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
namerequired | string | |
colorrequired | any | |
is_closed | boolean | |
is_default | boolean |
Response 201
| Field | Type | Description |
|---|---|---|
status | string |
Example response
JSON
{
"status": "active"
}Errors
| Status | Message |
|---|---|
| 400 | name is required |
| 400 | color must be a #rrggbb hex value |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","color":"…","is_closed":true,"is_default":true}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","color":"…","is_closed":true,"is_default":true}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","color":"…","is_closed":True,"is_default":True},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","color":"…","is_closed":true,"is_default":true}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses' -Headers $headers -ContentType 'application/json' -Body $body#Update a status/board column
PATCH
/v1/app/project/projects/:id/statuses/:statusIdUpdate a status/board column. Requires at least admin role on the project. Setting is_default unsets it on every other status.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/statuses/:statusId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
statusIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
colorrequired | any | |
position | integer | |
is_closed | boolean | |
is_default | boolean |
Response 200
| Field | Type | Description |
|---|---|---|
status | string |
Example response
JSON
{
"status": "active"
}Errors
| Status | Message |
|---|---|
| 400 | color must be a #rrggbb hex value |
Example request
Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","color":"…","position":1,"is_closed":true,"is_default":true}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","color":"…","position":1,"is_closed":true,"is_default":true}),
});
const data = await res.json();Python
import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","color":"…","position":1,"is_closed":True,"is_default":True},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","color":"…","position":1,"is_closed":true,"is_default":true}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1' -Headers $headers -ContentType 'application/json' -Body $body#Delete a status/board column
DELETE
/v1/app/project/projects/:id/statuses/:statusIdDelete a status/board column. Requires at least admin role on the project. Refused if any non-deleted work package is still in this status.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/statuses/:statusId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
statusIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 409 | Move or delete work packages in this status first |
Example request
Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1",
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 DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/statuses/1' -Headers $headersWas this page helpful?
Thanks for your feedback.