Types
Kinds of work package (task, bug, milestone…).
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/project/projects/:id/types | List a project's work-package types |
| POST | /v1/app/project/projects/:id/types | Create a work-package type |
| PATCH | /v1/app/project/projects/:id/types/:typeId | Update a work-package type |
| DELETE | /v1/app/project/projects/:id/types/:typeId | Delete a work-package type |
#List a project's work-package types
GET
/v1/app/project/projects/:id/typesList a project's work-package types. Requires at least viewer role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/types- 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 |
|---|---|---|
types | array of object | |
types[].id | integer | |
types[].project_id | integer | |
types[].name | string | |
types[].color | string | |
types[].icon | string | |
types[].is_milestone | boolean | |
types[].position | integer | |
types[].created_at | string (date-time) |
Example response
JSON
{
"types": [
{
"id": 42,
"project_id": 7,
"name": "Example name",
"color": "#2563eb",
"icon": "string",
"is_milestone": true,
"position": 1,
"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/types' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types', {
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/types",
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/types' -Headers $headers#Create a work-package type
POST
/v1/app/project/projects/:id/typesCreate a work-package type. Requires at least admin role on the project. Appended to the end of the type list.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/types- 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 | |
icon | any | |
is_milestone | boolean |
Response 201
| Field | Type | Description |
|---|---|---|
type | string |
Example response
JSON
{
"type": "string"
}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/types' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","color":"…","icon":"…","is_milestone":true}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","color":"…","icon":"…","is_milestone":true}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","color":"…","icon":"…","is_milestone":True},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","color":"…","icon":"…","is_milestone":true}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types' -Headers $headers -ContentType 'application/json' -Body $body#Update a work-package type
PATCH
/v1/app/project/projects/:id/types/:typeIdUpdate a work-package type. Requires at least admin role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/types/:typeId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
typeIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
colorrequired | any | |
icon | any | |
is_milestone | boolean | |
position | integer |
Response 200
| Field | Type | Description |
|---|---|---|
type | string |
Example response
JSON
{
"type": "string"
}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/types/1' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example name","color":"…","icon":"…","is_milestone":true,"position":1}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types/1', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","color":"…","icon":"…","is_milestone":true,"position":1}),
});
const data = await res.json();Python
import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","color":"…","icon":"…","is_milestone":True,"position":1},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","color":"…","icon":"…","is_milestone":true,"position":1}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types/1' -Headers $headers -ContentType 'application/json' -Body $body#Delete a work-package type
DELETE
/v1/app/project/projects/:id/types/:typeIdDelete a work-package type. Requires at least admin role on the project. Refused if any non-deleted work package still uses this type.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/types/:typeId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
typeIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 409 | Re-type or delete work packages using this type first |
Example request
Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types/1' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/types/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/types/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/types/1' -Headers $headersWas this page helpful?
Thanks for your feedback.