Tasks API

Create, read, update, and manage the full task lifecycle programmatically. All endpoints require a valid X-API-Key header.

Endpoints

MethodEndpointDescription
GET/tasksList tasks with filtering and pagination
POST/tasksCreate a new task
GET/tasks/{id}Get a single task by ID
PATCH/tasks/{id}Update task fields
DELETE/tasks/{id}Delete a task (admin only)
POST/tasks/{id}/assignTrigger AI assignment
POST/tasks/{id}/analyzeRe-run AI analysis
POST/tasks/{id}/statusTransition task status

List tasks

GET /api/v1/tasks?status=pending_assignment&priority=high&page=1&limit=20

Query parameters

ParameterTypeDescription
statusstringFilter by task status (comma-separated for multiple)
prioritystringlow, medium, high, critical
project_idintegerFilter by project
assigned_tointegerFilter by assigned engineer ID
searchstringFull-text search across title and description
pageintegerPage number (default: 1)
limitintegerResults per page (max: 100, default: 20)

Create a task

POST /api/v1/tasks
Content-Type: application/json

{
  "title": "Implement OAuth login flow",
  "description": "Add Google and GitHub OAuth options to the login page using python-social-auth. Should integrate with existing JWT session management.",
  "priority": "high",
  "required_skills": ["Python", "OAuth", "Django"],
  "estimated_hours": 8,
  "deadline": "2026-03-01",
  "project_id": 42
}

Trigger AI assignment

POST /api/v1/tasks/142/assign

# Response
{
  "suggestions": [
    {
      "engineer_id": 7,
      "engineer_name": "Sarah Chen",
      "confidence_score": 94,
      "matched_skills": ["Python", "OAuth"],
      "current_utilisation": 65,
      "explanation": "Strong Python and OAuth skills with 35% remaining capacity."
    }
  ]
}

Update task status

POST /api/v1/tasks/142/status
Content-Type: application/json

{
  "status": "in_progress",
  "note": "Started work on Google OAuth flow"
}