Docs

API reference

Every endpoint is scoped to the authenticated account — via session cookie in the browser, or a bearer MCP token for scripts and agents.

All requests and responses are JSON. Authenticate with either:

  • a session cookie, set by POST /api/auth/login; or
  • an Authorization: Bearer <mcp-token> header, generated in the Account panel.
curl -X GET https://trydone.app/api/tasks \
  -H "Authorization: Bearer <your-generated-mcp-token>"

Auth & account

POST/api/auth/signupCreate an account (email + password).
POST/api/auth/loginStart a session; sets a cookie.
POST/api/auth/logoutEnd the current session.
GET/api/auth/meThe current user and whether an MCP token exists.
POST/api/auth/passwordChange the account password.
POST/api/auth/mcp-tokenGenerate (or regenerate) the account's MCP token.
DELETE/api/auth/mcp-tokenRevoke the MCP token.

Tasks

GET/api/tasksList tasks — filter by status, priority, project, parent; search title/notes.
POST/api/tasksCreate a task.
POST/api/tasks/quickCreate a task from a raw quick-capture string.
GET/api/tasks/:idGet one task.
PATCH/api/tasks/:idUpdate a task.
DELETE/api/tasks/:idDelete a task (cascades to subtasks) — moves it to Trash, not a hard delete.
POST/api/tasks/bulk-assignAssign a set of task ids (up to 200) to a user or Claude.
POST/api/tasks/:id/decomposeSplit a task into subtasks from a list of titles.
POST/api/tasks/:id/approveApprove a task an agent proposed as complete (status pending_approval → done).
POST/api/tasks/:id/rejectReject a pending_approval task, with optional feedback (→ back to in_progress).

Trash

GET/api/trashList deleted tasks, most recent first.
POST/api/tasks/:id/restoreRestore a deleted task (and whichever subtasks were deleted with it).
DELETE/api/trash/:idPermanently delete one trashed task.
DELETE/api/trashEmpty the trash.

Tags

GET/api/tagsList tags.
POST/api/tagsCreate a tag.
DELETE/api/tags/:idDelete a tag (removed from every task that had it).
GET/api/task-tagsList every task↔tag pairing for the account.
POST/api/tasks/:id/tagsApply a tag to a task.
DELETE/api/tasks/:id/tags/:tagIdRemove a tag from a task.

Dependencies

GET/api/dependenciesList all blocked-by relationships for the account.
GET/api/tasks/:id/dependenciesList a task's blockers.
POST/api/tasks/:id/dependenciesAdd a blocker (cycle-checked).
DELETE/api/tasks/:id/dependencies/:blockerIdRemove a blocker.

Activity

GET/api/tasks/:id/commentsList a task's activity feed (comments + status history).
POST/api/tasks/:id/commentsAdd a comment, authored by you or Claude.

Digest & review

GET/api/digestOverdue, due-today, stalled, and recently-completed tasks.
GET/api/reviewThe weekly review roll-up.
GET/api/statsCompletion trend, streak, and open-task breakdowns by priority/project.
POST/api/triage/runBulk-assign unassigned tasks matching a rule to Claude.

Projects

GET/api/projectsList projects.
POST/api/projectsCreate a project.
PATCH/api/projects/:idUpdate a project.
DELETE/api/projects/:idDelete a project.

MCP

POST/mcpThe remote MCP endpoint — JSON-RPC over Streamable HTTP. See MCP setup.