Checklists
Onboarding and leaver checklists made from templates, their tasks, and your own open tasks.
| Method | Path | Summary |
|---|---|---|
| GET | /api/checklists | List checklists |
| GET | /api/checklists/tasks/mine | Open tasks that are the viewer's to do, across every checklist |
| GET | /api/checklists/templates | Checklist templates |
| GET | /api/checklists/:id | Get a checklist |
| POST | /api/checklists | Start a checklist |
| POST | /api/checklists/:id/tasks | Add a task |
| POST | /api/checklists/tasks/:tid/toggle | Tick or untick a task |
| DELETE | /api/checklists/tasks/:tid | Delete a task |
| DELETE | /api/checklists/:id | Cancel a checklist |
#List checklists
GET
/api/checklists- Address
https://<your-org>.brambleit.cloud/hr/api/checklists- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Query parameters
| Name | Type | Description |
|---|---|---|
employee | number | A person's checklists. |
include | string | closed to include finished and cancelled ones. |
Response 200
| Field | Type | Description |
|---|---|---|
checklists | array of any |
Example response
JSON
{
"checklists": []
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Open tasks that are the viewer's to do, across every checklist
GET
/api/checklists/tasks/mine- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/tasks/mine- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Response 200
| Field | Type | Description |
|---|---|---|
tasks | array of object | |
tasks[].id | integer, or null | |
tasks[].tenant_id | integer | |
tasks[].checklist_id | integer | |
tasks[].title | string | |
tasks[].details | string, or null | |
tasks[].assignee | string: "hr" | "manager" | "employee" | |
tasks[].assignee_employee_id | integer, or null | |
tasks[].done_at | string (date-time), or null | |
tasks[].done_by | integer, or null | |
tasks[].done_by_name | string, or null | |
tasks[].sort | integer | |
tasks[].employee_id | integer | |
tasks[].kind | string: "onboarding" | "offboarding" | |
tasks[].checklist_name | string | |
tasks[].employee_name | string |
Example response
JSON
{
"tasks": [
{
"id": 42,
"tenant_id": 1,
"checklist_id": 7,
"title": "Example title",
"details": "string",
"assignee": "hr",
"assignee_employee_id": 7,
"done_at": "2026-11-12T09:30:00.000Z",
"done_by": 1,
"done_by_name": "Example done by name",
"sort": 1,
"employee_id": 7,
"kind": "onboarding",
"checklist_name": "Example checklist name",
"employee_name": "Example employee name"
}
]
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/tasks/mine', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Checklist templates
GET
/api/checklists/templates- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/templates- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Response 200
| Field | Type | Description |
|---|---|---|
templates | array of object | |
templates[].id | integer, or null | |
templates[].kind | string: "onboarding" | "offboarding" | |
templates[].name | string | |
templates[].description | string, or null | |
templates[].tasks | boolean |
Example response
JSON
{
"templates": [
{
"id": 42,
"kind": "onboarding",
"name": "Example name",
"description": "string",
"tasks": false
}
]
}Errors
| Status | Message |
|---|---|
| 403 | HR admins only |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/templates', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Get a checklist
GET
/api/checklists/:id- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
checklist | array of any | |
tasks | array of any |
Example response
JSON
{
"checklist": [],
"tasks": []
}Errors
| Status | Message |
|---|---|
| 404 | Checklist not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/12.5', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Start a checklist
POST
/api/checklists- Address
https://<your-org>.brambleit.cloud/hr/api/checklists- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Request body JSON
| Name | Type | Description |
|---|---|---|
employee_id | integer | The person. |
template_id | number | The template. |
anchor_date | string (date) | The date tasks' due dates count from (start or leaving date). |
Response 201
| Field | Type | Description |
|---|---|---|
id | integer |
Example response
JSON
{
"id": 42
}Errors
| Status | Message |
|---|---|
| 400 | Choose a checklist |
| 400 | … already has an open … checklist |
| 403 | Only HR admins can start checklists |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"employee_id":7,"template_id":12.5,"anchor_date":"2026-11-12"}),
});
const data = await res.json();#Add a task
POST
/api/checklists/:id/tasks- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/:id/tasks- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
title | string | |
assignee | any | Who does it (HR, the manager, the person, IT…). |
details | string | |
due_date | string (date) | When it's due. |
Response 201
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | Give the task a title |
| 403 | Only HR admins can add tasks |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/42/tasks', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"title":"Example title","assignee":"…","details":"string","due_date":"2026-11-12"}),
});
const data = await res.json();#Tick or untick a task
POST
/api/checklists/tasks/:tid/toggle- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/tasks/:tid/toggle- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Path parameters
| Name | Type | Description |
|---|---|---|
tidrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
done | boolean | true or false. |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean | |
complete | any |
Example response
JSON
{
"ok": true,
"complete": null
}Errors
| Status | Message |
|---|---|
| 400 | This checklist was cancelled |
| 404 | Task not found |
| 403 | This task isn't yours to tick off |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/tasks/12.5/toggle', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"done":false}),
});
const data = await res.json();#Delete a task
DELETE
/api/checklists/tasks/:tid- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/tasks/:tid- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Path parameters
| Name | Type | Description |
|---|---|---|
tidrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 403 | Only HR admins can remove tasks |
| 404 | Task not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/tasks/12.5', {
method: 'DELETE',
credentials: 'include',
});
const data = await res.json();#Cancel a checklist
DELETE
/api/checklists/:id- Address
https://<your-org>.brambleit.cloud/hr/api/checklists/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: HR.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 403 | Only HR admins can cancel checklists |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/hr/api/checklists/42', {
method: 'DELETE',
credentials: 'include',
});
const data = await res.json();Was this page helpful?
Thanks for your feedback.