Skip to main content
19 tools. Each one is also a REST route and a CLI command, from the same definition: the same input, the same output, the same errors.

get_task

Get a task. Returns a full task (notes, checklist, attachment) and your access role. Returns 404 if the task does not exist or is not accessible to you: the API never reveals the existence of another account’s task.

Input

Output

Example

get_tasks

Get several tasks by id. Resolves several task identifiers in one request, including shared tasks. Identifiers that are missing or inaccessible are returned together as unavailable, without revealing which case applies.

Input

Output

Example

list_inbox_history

Tasks you have already triaged. Returns the tasks that arrived in the Inbox and have since been placed, scheduled, completed or archived, most recently triaged first, with the instant each one left. Use it to look back at what an Inbox held, or to find something filed by mistake. A task created straight into a project or an area never appears here: it was never in the Inbox. A task that returned to the Inbox and was triaged again keeps the instant it first left, and appears once. Unlike listTasks, this does not exclude calendar blocks: a task turned into one left the Inbox like any other, and hiding it would make an item disappear without trace. This is the task half of the Inbox history. Agent handbacks live in the local vault and messages come from listInboxComments; the Desktop client merges the three into one chronological list.

Input

Output

Example

list_task_members

List the people with access to a task. Returns the owner and the invited members of a task, with their role (reader, commenter, editor). A task with no invited members returns just the owner: the common case.

Input

Output

Example

list_tasks

List the tasks. Returns open tasks by default, in manual order. status=done returns the most recently completed first. Calendar blocks (kind: "event") are always excluded. Filterable by project, by area and by title text.

Input

Output

Example

add_checklist_items

Add checklist items. Adds items without overwriting the existing ones. Labels already present (case-insensitive comparison) are silently skipped.

Input

Output

Example

archive_tasks

Archive or restore tasks. Archiving is reversible: it replaces deletion and is undone with restore: true. There is deliberately no permanent delete in this API. Owner only.

Input

Output

Example

assign_task

Assign a task to someone, or to nobody. username names someone who already reaches the task; anyone else is not found. null clears the assignment. Takes Can edit. An optional grant accepts only an exact existing handle and atomically grants direct task-only access before assigning; only the task owner may use it and existing guest role ceilings still apply.

Input

Output

Example

check_checklist_items

Tick checklist items. Ticks (or unticks with done: false) items named by their id or by their exact label, case-insensitively.

Input

Output

Example

complete_tasks

Tick or untick tasks. Marks tasks as done, or reopens them with done: false.

Input

Output

Example

create_task

Create a task. Creates a task from structured fields. To create from a sentence, use POST /v2/tasks/quick instead. A task belongs to a project or to an area, never both: if projectId is given, areaId is ignored.

Input

Output

Example

create_tasks

Create several tasks atomically. Creates an ordered task list in one atomic operation. If any parent or heading is invalid, no task is created. Use this for multi-line paste instead of firing several create_task calls.

Input

Output

Example

delete_task

Delete an archived task for good. Removes a task permanently. The task must already be archived: POST /v2/tasks/archive first. The irreversible step is deliberately reachable only from the reversible one, which is why archive is what an agent should reach for and this is not. Owner only.

Input

Output

Example

quick_add_task

Create a task from natural language. Creates a task from a sentence, using the same parser as the app’s omnibar. It reads English and French. Three families of token, combinable in any order:
  • ! to !!! (priority 1 to 3
  • #name) project, else area (prefix match, accent-insensitive)
  • a date in English or French: “tomorrow”, “monday 3pm”, “tmr”
Anything not recognised stays in the title. Example: !!! edit the video #YouTube tomorrow 3pm.

Input

Output

Example

reorder_hierarchy

Move tasks and projects atomically. Commits every supplied order and parent change in one database transaction. A task has exactly one explicit destination: the root, an area, or a project, optionally under a heading in that destination. A project has exactly one destination: the root or an area. If any item, destination, permission, or heading is invalid, nothing moves.

Input

Output

Example

schedule_tasks

Schedule tasks atomically. Schedules one or more tasks by day, optional precise time and optional manual order in one transaction. Omitted time preserves an existing precise time; null clears it. If any task is inaccessible, nothing changes. Deadlines are never changed.

Input

Output

Example

set_checklist

Replace a task’s checklist. Replaces the whole list, in the order given. This is what an editor saves: the app lets someone rename, reorder and delete items in one pass, and sending that as a series of adds and ticks could not express a removal at all. An item keeping its id keeps its identity; one without gets a new id.

Input

Output

Example

update_task

Update a task. Applies a partial patch: only the fields provided change. Passing null to deadline, projectId, areaId, notePath or conversationPath clears the value.

Input

Output

Example

update_tasks

Update several tasks at once. Applies the same patch to several tasks. Always prefer this as soon as two or more tasks receive the same change. The operation is atomic: if a single task is inaccessible, nothing changes. This is the reorganisation tool: projectId + headingId in one call files a whole batch under a milestone. Never fire a burst of update_task instead.

Input

Output

Example