/api/v2/todo and require an authenticated session (cookie-based). Every response returns JSON.
All Tasks API endpoints require an active authenticated session. Requests without a valid session cookie receive a
401 Unauthorized response.GET /api/v2/todo
Retrieve a list of tasks belonging to the authenticated user. You can narrow results with any combination of the optional query parameters below.A comma-separated list of tag IDs. When provided, only tasks that carry at least one of the specified tags are returned.
Filter by completion status. Pass
"true" to return only completed tasks, or "false" to return only incomplete tasks. Omit the parameter to return both.POST /api/v2/todo
Create a new task. Onlytitle is required; all other fields are optional and default to null or false when omitted.
The display name of the task. Maximum 500 characters.
A longer description or notes for the task. Supports plain text.
Task urgency level. Accepted values:
"high", "medium", "low", or null.Due date in
YYYY-MM-DD format, e.g. "2024-08-01".A specific due time as an ISO 8601 datetime string. Used when
isAllDay is false.When
true, the task spans the entire due date and dueTime is ignored. Defaults to true.A hex color string (e.g.
"#f59e0b") used to visually label the task.Set to
true to enable a reminder notification for this task.An array of tag IDs to attach to the task.
The ID of a parent task. When set, this task is treated as a subtask nested under the parent.
The ID of the project this task belongs to. When omitted, the task is placed in your inbox project.
The ID of the section within the project. Requires
projectId to also be set.PATCH /api/v2/todo/:id
Partially update an existing task. Send only the fields you want to change — unspecified fields remain untouched.The unique ID of the task to update.
Updated task title.
Updated description.
Updated priority:
"high", "medium", "low", or null.Updated due date (
YYYY-MM-DD).Updated due time (ISO 8601 datetime string).
Updated all-day flag.
Pass
true to mark the task as complete. completedAt is set automatically.Updated color hex string.
Updated reminder flag.
Replaces the full set of tag IDs on the task.
Ordering key used to reposition the task within a list.
Move the task to a different project.
Move the task to a different section within its project.
DELETE /api/v2/todo/:id
Permanently delete a single task by its ID.The unique ID of the task to delete.
GET /api/v2/todo/search
Run a full-text search across all task titles and descriptions. Returns tasks and tags ranked by relevance.The search query string. Matches against task titles and descriptions.
DELETE /api/v2/todo/bulk
Delete multiple tasks in a single request. Pass the IDs as a comma-separated query parameter.A comma-separated list of task IDs to delete, e.g.
todoIds=id1,id2,id3.PATCH /api/v2/todo/bulk
Update a shared set of fields across multiple tasks at once. Pass the task IDs as a comma-separated query parameter and send the fields to apply in the request body.All identified tasks receive the same field values. To apply different changes to each task individually, use
PATCH /api/v2/todo/:id for each one.A comma-separated list of task IDs to update, e.g.
todoIds=id1,id2,id3.Mark all targeted tasks as complete or incomplete.
Set the same priority —
"high", "medium", "low", or null — on all targeted tasks.Assign the same due date (
YYYY-MM-DD) to all targeted tasks.Assign the same due time to all targeted tasks.
Set the all-day flag on all targeted tasks.
Enable or disable reminders on all targeted tasks.
Replace the tag set on all targeted tasks with the provided array of tag IDs.
Move all targeted tasks to the specified project.
Move all targeted tasks to the specified section.