Skip to content

Tasks

The task system is a Kanban-style board for tracking work assigned to agents. Tasks move through defined statuses, can carry dependencies, and link to projects and agents.

Base path: /api/kanban-tasks

All endpoints require Authorization: Bearer <token>.


Task Statuses

StatusDescription
backlogNot yet assigned — waiting in the queue
assignedAssigned to an agent but not yet started
in_progressAgent is actively working on it
qa_reviewWork is done; waiting for QA validation
up_for_reviewReady for human review
doneCompleted and accepted

List Tasks

GET /api/kanban-tasks

Query parameters:

ParameterTypeDescription
statusstringFilter by status (see table above)
prioritystringlow, medium, high, critical
assigned_agentstringFilter by agent name
project_idstringFilter by project
limitnumberDefault 20, max 100
offsetnumberDefault 0

Response:

json
{
  "success": true,
  "data": [
    {
      "id": "tk_01J...",
      "title": "Implement pagination for agents list",
      "description": "Add limit/offset to GET /api/agents",
      "status": "in_progress",
      "priority": "high",
      "assignedAgent": "backend-coder",
      "projectId": "proj_01J...",
      "dependsOn": [],
      "createdAt": "2026-04-01T09:00:00Z",
      "updatedAt": "2026-04-03T11:42:00Z"
    }
  ],
  "pagination": { "limit": 20, "offset": 0, "total": 38 }
}

curl:

bash
curl "https://api.cortex.acrobi.com/api/kanban-tasks?status=in_progress&priority=high" \
  -H "Authorization: Bearer <token>"

Create Task

POST /api/kanban-tasks

Request body:

json
{
  "title": "Add rate limiting to auth endpoints",
  "description": "Apply 10 req/min limit to /api/auth/login and /api/auth/signup",
  "status": "backlog",
  "priority": "high",
  "assignedAgent": "backend-coder",
  "projectId": "proj_01J...",
  "dependsOn": ["tk_01J...", "tk_02J..."]
}
FieldTypeRequiredDescription
titlestringYesShort task title
descriptionstringNoDetailed description or acceptance criteria
statusstringNoDefault backlog
prioritystringNolow, medium (default), high, critical
assignedAgentstringNoAgent name to assign
projectIdstringNoProject to associate
dependsOnstring[]NoTask IDs that must complete first

Response: 201 Created

json
{
  "success": true,
  "data": {
    "id": "tk_01J...",
    "title": "Add rate limiting to auth endpoints",
    "status": "backlog",
    "priority": "high",
    "createdAt": "2026-04-03T12:00:00Z"
  }
}

curl:

bash
curl -X POST "https://api.cortex.acrobi.com/api/kanban-tasks" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Add rate limiting to auth endpoints",
    "priority": "high",
    "assignedAgent": "backend-coder"
  }'

Get Task

GET /api/kanban-tasks/:id

Returns full task detail including dependency states.

Response:

json
{
  "success": true,
  "data": {
    "id": "tk_01J...",
    "title": "Add rate limiting to auth endpoints",
    "description": "Apply 10 req/min limit...",
    "status": "assigned",
    "priority": "high",
    "assignedAgent": "backend-coder",
    "projectId": "proj_01J...",
    "dependsOn": [
      {
        "id": "tk_00J...",
        "title": "Set up Redis connection",
        "status": "done"
      }
    ],
    "blockedBy": [],
    "createdAt": "2026-04-03T12:00:00Z",
    "updatedAt": "2026-04-03T12:05:00Z"
  }
}

Update Task

PATCH /api/kanban-tasks/:id

Partial update — include only the fields you want to change. Moving a task through statuses is done via this endpoint.

Request body:

json
{
  "status": "qa_review",
  "assignedAgent": "qa-tester"
}

Response: 200 OK — returns updated task object.

curl:

bash
curl -X PATCH "https://api.cortex.acrobi.com/api/kanban-tasks/tk_01J..." \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status": "qa_review", "assignedAgent": "qa-tester"}'

Delete Task

DELETE /api/kanban-tasks/:id

Permanently deletes the task.

Response:

json
{ "success": true }

WARNING

Tasks with dependent tasks cannot be deleted until those dependencies are resolved or removed.

Built by Acrobi