Checklists API
API endpoints for managing standard work checklists — template CRUD, daily completion, history, missed checklist detection, and compliance rate.
Overview
The Checklists API manages standard work checklist templates and their completion records. Checklists enforce routine task execution on a scheduled cadence (daily, shift, weekly, monthly). The API tracks completions, detects missed checklists, and calculates compliance rates for operational dashboards.
All procedures are tenant-scoped via organizationId and include audit trail logging.
Create Checklist
Create a new standard work checklist template.
POST /api/trpc/checklists.create
Request:
{
"json": {
"boardId": "brd_01HXK5...",
"name": "Line 3 — Start of Shift Checks",
"description": "Verify equipment readiness before production start",
"frequency": "daily",
"items": [
{ "id": "chk_01", "text": "Verify safety guards are in place", "required": true },
{ "id": "chk_02", "text": "Check lubricant levels on Machine A", "required": true },
{ "id": "chk_03", "text": "Review yesterday's production log", "required": false }
],
"assigneeIds": ["usr_01HXK5...", "usr_01HXK6..."],
"deadlineHour": 8
}
}
| Field | Type | Required | Description |
|---|---|---|---|
boardId | string | Yes | Board to associate the checklist with |
name | string | Yes | Checklist name (1-200 characters) |
description | string | No | Purpose description (max 2000 characters) |
frequency | string | Yes | daily, shift, weekly, or monthly |
items | array | Yes | Array of task items (at least one required) |
items[].id | string | Yes | Unique item identifier within the checklist |
items[].text | string | Yes | Task description |
items[].required | boolean | No | Whether this item must be checked (default: true) |
assigneeIds | array | No | User IDs responsible for completion (empty = assigned to all) |
deadlineHour | number | No | Hour of day (0-23) by which to complete (default: 17) |
Update Checklist
Partially update an existing checklist template. Only provided fields are modified.
POST /api/trpc/checklists.update
{
"json": {
"id": "cl_01HXK5...",
"name": "Updated checklist name",
"frequency": "shift",
"deadlineHour": 14,
"isActive": true
}
}
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Checklist ID |
name | string | No | Updated name |
description | string | No | Updated description |
frequency | string | No | Updated frequency |
items | array | No | Updated items array |
assigneeIds | array | No | Updated assignee list |
deadlineHour | number | No | Updated deadline hour |
isActive | boolean | No | Active status (set to false to deactivate) |
Delete Checklist
Permanently delete a checklist template and all its completion records.
POST /api/trpc/checklists.delete
{
"json": {
"id": "cl_01HXK5..."
}
}
Deleting a checklist cascades to all completion records. This action cannot be undone. Consider deactivating (isActive: false) instead if you need to preserve historical data.
List Checklists
List all checklists for a board, optionally filtered by active status.
GET /api/trpc/checklists.list?input={"json":{"boardId":"brd_01HXK5...","isActive":true}}
| Parameter | Type | Required | Description |
|---|---|---|---|
boardId | string | Yes | Board ID |
isActive | boolean | No | Filter by active/inactive status |
Get Today’s Checklists
Get all active checklists due in the current period for the authenticated user. Includes a flag indicating whether each checklist has already been completed.
GET /api/trpc/checklists.getToday?input={"json":{"boardId":"brd_01HXK5..."}}
Response:
{
"result": {
"data": {
"json": [
{
"id": "cl_01HXK5...",
"name": "Line 3 — Start of Shift Checks",
"frequency": "daily",
"deadlineHour": 8,
"items": [...],
"isCompleted": false
},
{
"id": "cl_01HXK6...",
"name": "End of Day Safety Review",
"frequency": "daily",
"deadlineHour": 17,
"items": [...],
"isCompleted": true
}
]
}
}
}
Checklists with an empty assigneeIds array are considered assigned to all board members and will appear for every user. The period is determined by the checklist’s frequency (today for daily, current week for weekly, etc.).
Complete Checklist
Submit a checklist completion with responses for each item.
POST /api/trpc/checklists.complete
{
"json": {
"checklistId": "cl_01HXK5...",
"responses": [
{ "itemId": "chk_01", "checked": true, "comment": null },
{ "itemId": "chk_02", "checked": true, "comment": "Level slightly below MIN, topped up" },
{ "itemId": "chk_03", "checked": false, "comment": "Log not available — IT system down" }
]
}
}
| Field | Type | Required | Description |
|---|---|---|---|
checklistId | string | Yes | Checklist template ID |
responses | array | Yes | Array of item responses (at least one required) |
responses[].itemId | string | Yes | Checklist item ID |
responses[].checked | boolean | Yes | Whether the item was checked off |
responses[].comment | string | No | Observation or exception comment |
Validation rules:
- All items marked as
requiredin the template must havechecked: true. - Each checklist can only be completed once per period (returns
CONFLICTif already completed).
Get Completion History
List completion records for a specific checklist with optional date range filtering.
GET /api/trpc/checklists.getCompletionHistory?input={"json":{"checklistId":"cl_01HXK5...","startDate":"2026-03-01","endDate":"2026-03-25","limit":50,"offset":0}}
| Parameter | Type | Required | Description |
|---|---|---|---|
checklistId | string | Yes | Checklist ID |
startDate | string | No | Start of date range (ISO 8601) |
endDate | string | No | End of date range (ISO 8601) |
limit | number | No | Results per page (1-200, default: 50) |
offset | number | No | Pagination offset (default: 0) |
Response:
{
"result": {
"data": {
"json": {
"items": [
{
"id": "comp_01HXK5...",
"checklistId": "cl_01HXK5...",
"completedById": "usr_01HXK5...",
"date": "2026-03-25T00:00:00.000Z",
"completedAt": "2026-03-25T07:45:00.000Z",
"responses": [...]
}
],
"total": 22,
"hasMore": false
}
}
}
}
Get Missed Checklists
Get active checklists that have not been completed by their deadline in the current period.
GET /api/trpc/checklists.getMissed?input={"json":{"boardId":"brd_01HXK5..."}}
A checklist is “missed” when:
- It is active (
isActive: true) - The current UTC hour is past the configured
deadlineHour - No completion record exists for the current period
Response:
{
"result": {
"data": {
"json": [
{
"id": "cl_01HXK5...",
"name": "Line 3 — Start of Shift Checks",
"frequency": "daily",
"deadlineHour": 8
}
]
}
}
}
Use this endpoint to power compliance dashboards and automated alerting. Pair with the escalation engine to notify supervisors when checklists are repeatedly missed.
Get Completion Rate
Calculate the completion rate for a checklist over a date range.
GET /api/trpc/checklists.getCompletionRate?input={"json":{"checklistId":"cl_01HXK5...","startDate":"2026-03-01","endDate":"2026-03-25"}}
| Parameter | Type | Required | Description |
|---|---|---|---|
checklistId | string | Yes | Checklist ID |
startDate | string | Yes | Start of date range (ISO 8601) |
endDate | string | Yes | End of date range (ISO 8601) |
Response:
{
"result": {
"data": {
"json": {
"checklistId": "cl_01HXK5...",
"checklistName": "Line 3 — Start of Shift Checks",
"expected": 25,
"completed": 22,
"rate": 88
}
}
}
}
Expected completions are calculated based on frequency: daily = one per day, shift = two per day, weekly = one per 7 days, monthly = one per 30 days. The rate is capped at 100%.
Was this page helpful?