In this area
Tasks
Manage task boards, tasks, checklists, labels and assignees.
List task boards
get/v1/public/task-boards
Returns all task boards in the organization with their columns, members, and task count.
Parameters
No parameters.
Responses
200
Examples
curl -X GET "https://api.cognizy.ai/api/v1/public/task-boards" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Get a task board
get/v1/public/task-boards/{id}
Returns a single board with columns, tasks nested per column, labels, and members. Use list_tasks below to query tasks with filters and pagination instead of pulling the full board.
Parameters
idstringrequired· path- Task board ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task board ID |
Responses
200Task board returned404Task board not found
Examples
curl -X GET "https://api.cognizy.ai/api/v1/public/task-boards/<id>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"List tasks in a board
get/v1/public/task-boards/{id}/tasks
Paginated tasks within a board, with composable filters: column, assignee, label, overdue, completed.
Parameters
idstringrequired· path- Task board ID
limitnumberoptional· query- Range 1–100
pagenumberoptional· querycompletedbooleanoptional· query- true = only completed; false = only uncompleted; omit for both
overduebooleanoptional· query- true = only tasks past their dueDate and not completed
labelIdstringoptional· queryassigneeIdstringoptional· querycolumnIdstringoptional· query
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task board ID |
limitoptional | query | number | Range 1–100 |
pageoptional | query | number | |
completedoptional | query | boolean | true = only completed; false = only uncompleted; omit for both |
overdueoptional | query | boolean | true = only tasks past their dueDate and not completed |
labelIdoptional | query | string | |
assigneeIdoptional | query | string | |
columnIdoptional | query | string |
Responses
200
Examples
curl -X GET "https://api.cognizy.ai/api/v1/public/task-boards/<id>/tasks" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Create a task in a board
post/v1/public/task-boards/{id}/tasks
Accepts Idempotency-Key
Creates a new task in a specific column of a board. Most fields are optional; only title and columnId are required. Defaults to aiGenerated: true when called via the public API (overrideable in body) so the dashboard surfaces tasks that came from MCP/integrations distinctly from human-created ones. Returns the full task row with assignees, labels, counts.
Parameters
idstringrequired· path- Task board ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task board ID |
Body (JSON)required
titlestringrequiredcolumnIdstringrequired- Target column ID within this board
descriptionstringoptionalprioritystringoptionalLOWMEDIUMHIGHURGENTdueDatestring (date-time)optional- ISO datetime
estimatedMinutesintegeroptionalassigneeIdsstring[]optionallabelIdsstring[]optionalconversationIdstringoptionalcontactIdstringoptionalaiGeneratedbooleanoptional- Defaults to true via public API
aiReasonstringoptionalparentIdstringoptional- Parent task ID (for subtasks)
| Field | Type | Description |
|---|---|---|
titlerequired | string | |
columnIdrequired | string | Target column ID within this board |
descriptionoptional | string | |
priorityoptional | string | LOWMEDIUMHIGHURGENT |
dueDateoptional | string (date-time) | ISO datetime |
estimatedMinutesoptional | integer | |
assigneeIdsoptional | string[] | |
labelIdsoptional | string[] | |
conversationIdoptional | string | |
contactIdoptional | string | |
aiGeneratedoptional | boolean | Defaults to true via public API |
aiReasonoptional | string | |
parentIdoptional | string | Parent task ID (for subtasks) |
Responses
201Task created400Invalid task payload404Board, column, assignee, or label not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/task-boards/<id>/tasks" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"title": "texto",
"columnId": "column_123",
"description": "texto",
"priority": "LOW",
"dueDate": "2026-11-12T14:00:00.000Z",
"estimatedMinutes": 0,
"assigneeIds": [
"assignee_123"
],
"labelIds": [
"label_123"
],
"conversationId": "conversation_123",
"contactId": "contact_123",
"aiGenerated": true,
"aiReason": "texto",
"parentId": "parent_123"
}'Get a task by id
get/v1/public/tasks/{id}
Returns the full task: description, checklist, subtasks, recent activities (50), assignees, labels, linked conversation/contact.
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Responses
200Task returned404Task not found
Examples
curl -X GET "https://api.cognizy.ai/api/v1/public/tasks/<id>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Update task fields
patch/v1/public/tasks/{id}
Accepts Idempotency-Key
Partial update of task fields (title, description, priority, dueDate, estimatedMinutes). Pass dueDate: null to clear it. Other omitted fields are left untouched. Triggers PRIORITY_CHANGED / DUE_DATE_CHANGED / UPDATED activity entries as applicable.
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Body (JSON)required
titlestringoptionaldescriptionstringoptionalprioritystringoptionalLOWMEDIUMHIGHURGENTdueDatestring (date-time)optionalestimatedMinutesintegeroptional
| Field | Type | Description |
|---|---|---|
titleoptional | string | |
descriptionoptional | string | |
priorityoptional | string | LOWMEDIUMHIGHURGENT |
dueDateoptional | string (date-time) | |
estimatedMinutesoptional | integer |
Responses
200Task updated400Invalid patch payload404Task not found
Examples
curl -X PATCH "https://api.cognizy.ai/api/v1/public/tasks/<id>" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"title": "texto",
"description": "texto",
"priority": "LOW",
"dueDate": "2026-11-12T14:00:00.000Z",
"estimatedMinutes": 0
}'Delete a task
delete/v1/public/tasks/{id}
Removes a task entirely. Cascades to comments, checklist items, attachments, and subtasks. Idempotent — succeeds with 204 even if the task was already gone or never belonged to your org (cross-tenant ids are not revealed).
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Responses
204Task deleted (or already gone — idempotent)
Examples
curl -X DELETE "https://api.cognizy.ai/api/v1/public/tasks/<id>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Add a comment to a task
post/v1/public/tasks/{id}/comments
Accepts Idempotency-Key
Posts a comment authored by the user who created the API key (or the org owner as fallback). Triggers the same notifications and activity log entry as an in-app comment. Use this from MCP/external agents to surface findings on tasks ("AI detected this ticket is at-risk", "Suggested fix: X").
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Body (JSON)required
contentstringrequired- Comment body
parentIdstringoptional- Parent comment ID for threaded replies
| Field | Type | Description |
|---|---|---|
contentrequired | string | Comment body |
parentIdoptional | string | Parent comment ID for threaded replies |
Responses
201Comment created400Invalid content or parentId404Task not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/comments" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"content": "texto",
"parentId": "parent_123"
}'Add a checklist item to a task
post/v1/public/tasks/{id}/checklist
Accepts Idempotency-Key
Appends a new checklist item at the end of the task's checklist. Triggers a CHECKLIST_ITEM_ADDED activity entry.
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Body (JSON)required
titlestringrequired- Checklist item title
| Field | Type | Description |
|---|---|---|
titlerequired | string | Checklist item title |
Responses
201Checklist item created400Invalid title404Task not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/checklist" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"title": "texto"
}'Toggle a checklist item completion
post/v1/public/tasks/{id}/checklist/{itemId}/toggle
Accepts Idempotency-Key
Flips completed on/off. Adding done: true would let the caller force-set instead of toggle, but toggle is simpler and mirrors the in-app UI button. Triggers CHECKLIST_ITEM_COMPLETED activity when completing.
Parameters
idstringrequired· path- Task ID
itemIdstringrequired· path- Checklist item ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
itemIdrequired | path | string | Checklist item ID |
Responses
200Checklist item toggled404Task or checklist item not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/checklist/<itemId>/toggle" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Delete a checklist item
delete/v1/public/tasks/{id}/checklist/{itemId}
Parameters
idstringrequired· path- Task ID
itemIdstringrequired· path- Checklist item ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
itemIdrequired | path | string | Checklist item ID |
Responses
204Checklist item deleted404Task or checklist item not found
Examples
curl -X DELETE "https://api.cognizy.ai/api/v1/public/tasks/<id>/checklist/<itemId>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Attach a label to a task
post/v1/public/tasks/{id}/labels/{labelId}
Accepts Idempotency-Key
Verifies the label belongs to the caller's org before attaching. Idempotent at the data layer via PK constraint — re-attach raises Prisma P2002 which we swallow.
Parameters
idstringrequired· path- Task ID
labelIdstringrequired· path- Label ID to attach
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
labelIdrequired | path | string | Label ID to attach |
Responses
204Label attached (or already attached — idempotent)404Task or label not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/labels/<labelId>" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Detach a label from a task
delete/v1/public/tasks/{id}/labels/{labelId}
Parameters
idstringrequired· path- Task ID
labelIdstringrequired· path- Label ID to detach
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
labelIdrequired | path | string | Label ID to detach |
Responses
204Label detached (or was not attached — idempotent)404Task or label not found
Examples
curl -X DELETE "https://api.cognizy.ai/api/v1/public/tasks/<id>/labels/<labelId>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"Move a task to a different column / position
post/v1/public/tasks/{id}/move
Accepts Idempotency-Key
Move within the same board. The target column must belong to the task's current board (TaskService enforces this). Pass position as a 0-based index in the destination column. Triggers MOVED activity entry; auto-sets completedAt / archivedAt when the target column has those flags.
Parameters
idstringrequired· path- Task ID
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
Body (JSON)required
columnIdstringrequired- Destination column ID (same board)
positionintegerrequired- 0-based index in the destination column
| Field | Type | Description |
|---|---|---|
columnIdrequired | string | Destination column ID (same board) |
positionrequired | integer | 0-based index in the destination column |
Responses
200Task moved400Invalid columnId or position404Task or column not found
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/move" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"columnId": "column_123",
"position": 0
}'Assign a user to a task
post/v1/public/tasks/{id}/assignees/{userId}
Accepts Idempotency-Key
Idempotent — re-assigning the same user is treated as success (TaskService raises BadRequestException for duplicates; we map that to 204). The user must be a member of the same org. Sends an in-app notification to the new assignee.
Parameters
idstringrequired· path- Task ID
userIdstringrequired· path- User ID to assign (must be a member of the same org)
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
userIdrequired | path | string | User ID to assign (must be a member of the same org) |
Responses
204User assigned (or already assigned — idempotent)404Task or user not found in organization
Examples
curl -X POST "https://api.cognizy.ai/api/v1/public/tasks/<id>/assignees/<userId>" \
-H "Authorization: Bearer $COGNIZY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Unassign a user from a task
delete/v1/public/tasks/{id}/assignees/{userId}
Idempotent — succeeds even if the user wasn't assigned.
Parameters
idstringrequired· path- Task ID
userIdstringrequired· path- User ID to unassign
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Task ID |
userIdrequired | path | string | User ID to unassign |
Responses
204User unassigned (or was not assigned — idempotent)404Task not found
Examples
curl -X DELETE "https://api.cognizy.ai/api/v1/public/tasks/<id>/assignees/<userId>" \
-H "Authorization: Bearer $COGNIZY_API_KEY"