Skip to main content
Version: 2021-04-15

Tasks

Create, read, update, and delete tasks; page a list; search and batch-fetch. Subtasks use the same endpoints β€” no separate routes. Create one with POST /projects/lists/{listId}/tasks and parentTaskId (plus required title and dueDate). List them with POST /projects/tasks/search filtered by parentTaskId, or subtaskViewMode (collapsed | expanded with embedded subtasks[] | separate with parentTaskId / parentName). Update and delete use Update A Task Or Subtask and Delete A Task Or Subtask with the subtask id. Custom fields: definitions live in the Custom Fields V2 API (objectKey: "task", optional scopes of space | folder | list | workspace). Set values on Create/Update Task via customFields β€” keys omit the task. prefix (definition task.project_phase β†’ { "project_phase": "discovery" }).

πŸ“„οΈSearch Tasks

Searches tasks across the location with filters, sort, free-text `query`, and optional `subtaskViewMode`. Requires `limit`; pass body `searchAfter` from the previous response `searchAfter` (opaque base64url string) for the next page. Scope to lists with `listIds` (max 10) β€” do not send a separate `graph` filter when using `listIds`. Filter subtasks with `parentTaskId` (Tasks V2 locations only; otherwise 422). `subtaskViewMode=expanded` returns embedded `subtasks[]`; `separate` may include `parentName`. Neither field appears on Get/Create/Update/List/Batch. `total` is the hit count after filters and access scope.