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/signup | Create an account (email + password). |
| POST | /api/auth/login | Start a session; sets a cookie. |
| POST | /api/auth/logout | End the current session. |
| GET | /api/auth/me | The current user and whether an MCP token exists. |
| POST | /api/auth/password | Change the account password. |
| POST | /api/auth/mcp-token | Generate (or regenerate) the account's MCP token. |
| DELETE | /api/auth/mcp-token | Revoke the MCP token. |
Tasks
| GET | /api/tasks | List tasks — filter by status, priority, project, parent; search title/notes. |
| POST | /api/tasks | Create a task. |
| POST | /api/tasks/quick | Create a task from a raw quick-capture string. |
| GET | /api/tasks/:id | Get one task. |
| PATCH | /api/tasks/:id | Update a task. |
| DELETE | /api/tasks/:id | Delete a task (cascades to subtasks) — moves it to Trash, not a hard delete. |
| POST | /api/tasks/bulk-assign | Assign a set of task ids (up to 200) to a user or Claude. |
| POST | /api/tasks/:id/decompose | Split a task into subtasks from a list of titles. |
| POST | /api/tasks/:id/approve | Approve a task an agent proposed as complete (status pending_approval → done). |
| POST | /api/tasks/:id/reject | Reject a pending_approval task, with optional feedback (→ back to in_progress). |
Trash
| GET | /api/trash | List deleted tasks, most recent first. |
| POST | /api/tasks/:id/restore | Restore a deleted task (and whichever subtasks were deleted with it). |
| DELETE | /api/trash/:id | Permanently delete one trashed task. |
| DELETE | /api/trash | Empty the trash. |
Tags
| GET | /api/tags | List tags. |
| POST | /api/tags | Create a tag. |
| DELETE | /api/tags/:id | Delete a tag (removed from every task that had it). |
| GET | /api/task-tags | List every task↔tag pairing for the account. |
| POST | /api/tasks/:id/tags | Apply a tag to a task. |
| DELETE | /api/tasks/:id/tags/:tagId | Remove a tag from a task. |
Dependencies
| GET | /api/dependencies | List all blocked-by relationships for the account. |
| GET | /api/tasks/:id/dependencies | List a task's blockers. |
| POST | /api/tasks/:id/dependencies | Add a blocker (cycle-checked). |
| DELETE | /api/tasks/:id/dependencies/:blockerId | Remove a blocker. |
Activity
| GET | /api/tasks/:id/comments | List a task's activity feed (comments + status history). |
| POST | /api/tasks/:id/comments | Add a comment, authored by you or Claude. |
Digest & review
| GET | /api/digest | Overdue, due-today, stalled, and recently-completed tasks. |
| GET | /api/review | The weekly review roll-up. |
| GET | /api/stats | Completion trend, streak, and open-task breakdowns by priority/project. |
| POST | /api/triage/run | Bulk-assign unassigned tasks matching a rule to Claude. |
Projects
| GET | /api/projects | List projects. |
| POST | /api/projects | Create a project. |
| PATCH | /api/projects/:id | Update a project. |
| DELETE | /api/projects/:id | Delete a project. |
MCP
| POST | /mcp | The remote MCP endpoint — JSON-RPC over Streamable HTTP. See MCP setup. |