Skip to main content
Required permission: Tasks → Read to list, Tasks → Write to create, change or delete.
These are organization tasks. A key never sees anybody’s personal list.Tasks a person makes in the web app belong to that person and are invisible to every API key. Tasks a key creates are visible to your team in the app, because a list nobody can open is not a list.

List tasks

Soonest first, with undated tasks last — a list sorted the other way opens on the pile nobody is waiting for.
open=true is not the same as “not done”. A cancelled task is closed too: it will not happen. Both done and cancelled are excluded by open=true, which is the distinction most integrations actually mean.

Statuses

todo, in_progress, in_review, qa, done, cancelled, hold. done and cancelled are the terminal pair. Moving a task to either stamps completed_at in the same write; moving it out again clears it. You never set completed_at yourself — it and the status cannot disagree.

Buckets

bucket is computed, not stored, and saves you re-deriving it: overdue, today, upcoming, someday (no due date — a real answer, and the common one), or completed. Days are counted in UTC, so the answer is a property of the task rather than of where the request landed.

Priority

iCalendar’s nine-step PRIORITY: 0 is unset, 1 is highest, 9 is lowest. The app offers five of them — Urgent 1, High 2, Medium 5, Low 9 — so a task written with those reads correctly in the interface and in Apple Reminders or Thunderbird.

Create a task

title is the only required field.

Assigning

assignee takes an email address or a user id, and an address is the easier half: it is the thing you already know, and it is matched case-insensitively. The person must be a member of your organization. Anybody else is refused with 400 and nothing is written — a task that looked assigned in the request and is not in the answer is how work quietly goes undone. Reads return the whole member, so assignee.email round-trips straight back into a write.

Read, change, delete

PATCH changes only the fields you name. This is the one endpoint in the API that merges rather than replaces, and it is deliberate: the calls integrations actually make are “mark this done” and “move this to Friday”, one field at a time and often from two systems at once.
That closes the task and touches nothing else. The title, tags and due date are exactly as they were.
A request that names no writable field is refused rather than treated as a no-op, so a typo in a field name is a 400 and not a silent success.

Not available yet

Comments and activity. Every task carries a history and a comment thread in the app. They are readable there and not through the API — a comment has an author, and an API key is not a person, so “who said this” would have no honest answer. Ordering on the board. sort_key decides where a task sits in a column when it is dragged. It is not writable here: the board’s positions are relative, and a key setting them blind would shuffle a column somebody else is looking at. Subtasks. The checklist inside a task’s notes is reported as steps and is part of a rich-text document, not a list of rows. notes is its plain-text projection, which is what an integration can usefully read.

Errors

See Errors for the full response shape.