Listen
0:00 / ~0:52
Programmatic access to task CRUD, reordering, CSV import, and CSV export. All endpoints require an authenticated session and operate within the caller's active workspace.
/api/tasks?projectRef={ref}Returns every task for the given project, ordered by status column and sort order.
const res = await fetch("/api/tasks?projectRef=1");
const { ok, tasks } = await res.json();
// tasks: Array<{ id, title, statusId, priority, assignedTo, dueDate, ... }>/api/tasksprojectRef and title are required. Everything else has sensible defaults.
{
"projectRef": "1",
"title": "Design homepage mockup",
"priority": "High",
"assignedTo": ["sarah@kavanah.ai"],
"dueDate": "2026-05-15",
"tag": "design"
}/api/tasks/{id}PATCH any subset of fields. Returns the full updated task. Use this endpoint for status moves, reassignments, and edits.
{
"statusId": "in-progress",
"assignedTo": "marcus@kavanah.ai",
"priority": "Medium"
}/api/tasks/{id}Permanently deletes the task and all of its attachments.
/api/tasks/reorderBulk update for drag-and-drop on the board. Send the new status and sort order for every affected task in a single round-trip.
{
"tasks": [
{ "id": 42, "statusId": "in-progress", "sortOrder": 0, "projectRef": "1" },
{ "id": 17, "statusId": "in-progress", "sortOrder": 1, "projectRef": "1" }
]
}/api/tasks/import/api/tasks/export?projectRef={ref}&format={fmt}Import accepts a UTF-8 CSV string under csv. Export supports standard, jira, and asana formats and returns a text/csv response.