Tasks API
Create, read, update, and manage the full task lifecycle programmatically. All endpoints require a valid X-API-Key header.
Endpoints
| Method | Endpoint | Description |
|---|
| GET | /tasks | List tasks with filtering and pagination |
| POST | /tasks | Create 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}/assign | Trigger AI assignment |
| POST | /tasks/{id}/analyze | Re-run AI analysis |
| POST | /tasks/{id}/status | Transition task status |
List tasks
GET /api/v1/tasks?status=pending_assignment&priority=high&page=1&limit=20
Query parameters
| Parameter | Type | Description |
|---|
status | string | Filter by task status (comma-separated for multiple) |
priority | string | low, medium, high, critical |
project_id | integer | Filter by project |
assigned_to | integer | Filter by assigned engineer ID |
search | string | Full-text search across title and description |
page | integer | Page number (default: 1) |
limit | integer | Results 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"
}