list_tasks
List tasks visible to the caller, with optional filters: projectId, parentId (pass "null" string or JSON null for top-level-only), status, assigneeId (or the sentinels "me" / "unassigned"), assignedToAgentPersona, collaboratorId (or "me": tasks a person collaborates on without holding them), title with titleMode ("contains" default, "equals", "startsWith"; all case-insensitive), dueBefore / dueAfter, overdueOnly, includeSubtasks, orderBy. Each row carries collaborators, the people working on it besides its assignee, isManual and datesFromSubtasks (true when its dates come from its subtasks), and url, the task's link in the Onplana web app. Returns up to 200 tasks per call with cursor-based pagination (nextCursor). Set includeSubtasks=true to include matching subtasks at any depth when filtering by status/assignee/title (omitting parentId). PREFER get_plan when you need the whole project tree in one call; PREFER list_assigned_tasks for your own queue. Use list_tasks when drilling parent to children or paginating through a large project. When you pass projectId, the response carries projectResolved: if it is false the id did not match any project visible to you and the empty tasks list says NOTHING about whether that project has work in it, re-check the id (use full ids from list_projects, never abbreviated) rather than concluding the project is empty or unsaved.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 25, max 200. | |
| title | No | Case-insensitive match on task title. See titleMode for how it matches. | |
| cursor | No | Last-id pagination cursor from a prior call's nextCursor. | |
| status | No | ||
| orderBy | No | Default 'dueDate'. Combined with priority desc as secondary. | |
| dueAfter | No | ISO date - show tasks due after this date. | |
| parentId | No | Parent task id, "null" string, or JSON null for top-level-only. | |
| dueBefore | No | ISO date - show tasks due before this date. | |
| projectId | No | Optional - restrict to one project. | |
| titleMode | No | How title is matched: 'contains' (default), 'equals', or 'startsWith'. All case-insensitive. | |
| assigneeId | No | Show tasks assigned to one user. Special values: 'me' (the caller), 'unassigned' (no assignee). | |
| overdueOnly | No | When true, only return tasks past their due date and not DONE. | |
| customFields | No | Filter by custom-field value(s); multiple entries are ANDed. Each entry is { fieldId, op, value? }. Ops must be valid for the field type , numeric (NUMBER/CURRENCY/RATING): eq/gt/gte/lt/lte/isNotEmpty; DATE: eq/before/after/isNotEmpty; text/DROPDOWN: eq/contains/isNotEmpty; MULTI_SELECT: contains/isNotEmpty; CHECKBOX: isChecked/isUnchecked (unchecked includes never set). Omit value for isNotEmpty, isChecked and isUnchecked. No neq / isEmpty. Get field ids from list_custom_field_defs. | |
| collaboratorId | No | Only tasks this user collaborates on (works on without holding). Special value: 'me' (the caller). | |
| includeSubtasks | No | When true, include matching subtasks at any depth (not just top-level). Default false. | |
| assignedToAgentPersona | No | When true, only return tasks whose assignee is an agent persona ("what are the agents working on"). |