Tasks API
Create, query, move, and manage tasks on your kanban board programmatically.
Authentication
All API requests require authentication via an API key passed in the Authorization header:
Authorization: Bearer YOUR_API_KEY
You can find your API key in Settings → API Keys on the dashboard. Keep it secret — anyone with your key can manage your tasks.
Security: Never expose your API key in client-side code or public repositories. Use environment variables or a secrets manager.
Base URL
https://dashboard.delegated.nl/tasks-api.php
Endpoints
GET Get Tasks by Column
Retrieve all tasks in a specific column.
GET /tasks-api.php?action=todo
GET /tasks-api.php?action=doing
GET /tasks-api.php?action=done
Response:
{
"success": true,
"tasks": [
{
"id": "task_8xK2mP",
"title": "Generate weekly ad creatives",
"description": "Create 5 ad variations for the spring campaign",
"priority": "high",
"priority_score": 0.85,
"status": "TODO",
"created_at": "2026-03-04T05:01:00Z",
"due_date": "2026-03-07T09:00:00Z",
"tags": ["ads", "creative"]
}
],
"count": 1
}
POST Create a Task
Add a new task to the TODO column.
POST /tasks-api.php?action=add
Content-Type: application/json
{
"title": "Write product descriptions",
"description": "Write compelling descriptions for our top 5 products",
"priority": "high",
"due_date": "2026-03-10T17:00:00Z",
"tags": ["content", "products"]
}
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title (max 200 chars) |
description | string | No | Detailed instructions for the agent |
priority | string | No | urgent, high, medium, low (default: medium) |
due_date | string | No | ISO 8601 datetime |
tags | array | No | Array of string labels |
Response:
{
"success": true,
"task": {
"id": "task_nR4kLp",
"title": "Write product descriptions",
"status": "TODO",
"priority_score": 0.72,
"created_at": "2026-03-04T12:30:00Z"
}
}
POST Move a Task
Move a task between columns (e.g., from TODO to DONE, or back to TODO).
POST /tasks-api.php?action=move
Content-Type: application/json
{
"task_id": "task_8xK2mP",
"to": "done"
}
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | The task ID to move |
to | string | Yes | Target column: todo, doing, or done |
POST Send Chat Message
Send a message to the AI agent via the chat API.
POST /tasks-api.php?action=chat
Content-Type: application/json
{
"message": "What tasks are currently in progress?",
"user": "admin"
}
Response:
{
"success": true,
"reply": "I'm currently working on 'Generate weekly ad creatives' — I've completed 3 of 5 variations. No other tasks in DOING.",
"timestamp": "2026-03-04T12:35:00Z"
}
Error Handling
All errors follow a consistent format:
{
"success": false,
"error": "Task not found",
"code": "TASK_NOT_FOUND"
}
| Code | HTTP Status | Description |
|---|---|---|
UNAUTHORIZED | 401 | Missing or invalid API key |
INVALID_ACTION | 400 | Unknown action parameter |
MISSING_FIELD | 400 | Required field not provided |
TASK_NOT_FOUND | 404 | Task ID doesn't exist |
RATE_LIMITED | 429 | Too many requests (max 60/min) |
Rate Limits
The API allows up to 60 requests per minute per API key. Exceeding this returns a 429 status with a Retry-After header.
Tip: Use the
GET endpoints to poll for task updates. For real-time updates, consider using webhooks instead.
cURL Examples
Create a task
curl -X POST "https://dashboard.delegated.nl/tasks-api.php?action=add" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Update pricing page","priority":"urgent"}'
Get all TODO tasks
curl "https://dashboard.delegated.nl/tasks-api.php?action=todo" \
-H "Authorization: Bearer YOUR_API_KEY"
Next Steps
- Webhooks — Get real-time event notifications
- Kanban Board — Visual task management
- AI Task Management — How the agent processes tasks