Skip to content

Todos API

All endpoints require authentication. Base path: /api/v1/todos.

MethodPathDescription
GET/v1/todosList all todos
POST/v1/todosCreate a todo
GET/v1/todos/{todo}Get a single todo
PUT/v1/todos/{todo}Update a todo (incl. is_completed, link)
DELETE/v1/todos/{todo}Delete a todo
GET/v1/todos/due-dateTodos grouped by due date

Todo creation and updates accept: title, description, link, priority (low/medium/high), status (backlog/pending/in-progress/waiting/almost-done), effort, progress (0–100), due_at, category_id, tags[]. Natural-language parsing in the title (#tag, /category, due:, repeat:, link:) is applied when creating.

MethodPathDescription
GET/v1/todos/categoriesList categories
POST/v1/todos/categoriesCreate a category (title, max 50)
GET/v1/todos/categories/{category}Get a category
PUT/v1/todos/categories/{category}Update a category
DELETE/v1/todos/categories/{category}Delete a category
MethodPathDescription
GET/v1/todos/workspacesList workspaces
POST/v1/todos/workspacesCreate a workspace (title, categories[])
GET/v1/todos/workspaces/{workspace}Get a workspace
PUT/v1/todos/workspaces/{workspace}Update a workspace (incl. is_hideable)
DELETE/v1/todos/workspaces/{workspace}Delete a workspace
POST/v1/todos/workspaces/{workspace}/categories/attachAttach categories
POST/v1/todos/workspaces/{workspace}/categories/detachDetach categories
MethodPathDescription
POST/v1/todos/{todo}/subtasksAdd a subtask (title)
PUT/v1/todos/{todo}/subtasks/{subtask}Update a subtask (title, is_completed)
DELETE/v1/todos/{todo}/subtasks/{subtask}Delete a subtask