List tasks
Get a project’s board: its columns, each with the tasks in it, plus the archived and planned buckets. Responses always contain at most 100 tasks (50 by default). Continue through pagination.totalPages for the whole board, and for each task page follow relatedPage through pagination.relatedTotalPages for all labels, links and column metadata. Filters and sorting apply before pagination. Descriptions larger than 64 KiB are omitted with descriptionDeferred=true; read the task detail or description pages for full text.
limit of 100. Inspect pagination.totalPages and request subsequent page values to retrieve the entire project. Filters and sorting are applied before pagination. The page includes tasks across regular columns, planned tasks and archived tasks; it is not a separate limit for every column.
The web app fetches these pages sequentially and combines them for its board, list, calendar and Gantt views. Custom clients that previously omitted pagination to receive every task must now follow the pagination metadata. MCP list_tasks uses the same paginated contract.
The unauthenticated GET /public-project/{id} route also returns bounded pages. Its pagination object is alongside the board fields. Public visibility is checked before loading tasks and again for each subsequent request.
Descriptions larger than 64 KiB are returned as description: null with
descriptionDeferred: true. This means the text was omitted, not deleted. Load
GET /api/task/{id} for the task detail, or follow
GET /api/task/{id}/description?offset=0 and its nextOffset values for bounded
text pages. Send the first page’s version on subsequent requests; a 409
requires restarting from offset zero. Omit description in generic task updates
when editing a list summary. Sending an explicit empty string clears the text.
The web board searches omitted descriptions through
GET /api/task/description-matches/{projectId}?query=…, following nextCursor
as after until it is null. Searches match literal case-insensitive substrings;
% and _ have no wildcard meaning. This endpoint requires project access.
Public details use /api/public-project/{id}/task/{taskId}/description; visibility
and task ownership are checked on every page. A description timeout returns 503
and can be retried.
Each task page also has pagination.relatedTotalPages. Request relatedPage=2,
3, and so on for the same task page and filters, merging labels and external
links by ID and columns by slug. Each response contains at most 100 labels and
100 external links, a page of 100 columns, and up to 100 additional columns needed
to represent the selected tasks. The web client completes these continuations
before showing a successful refresh. Use returned column position to retain
ordering. Both task and related pagination describe a live collection; concurrent
changes are picked up on a later refresh, not an immutable snapshot.
Board-level project descriptions use the same 64 KiB omission flag. Authorized
clients can use the project detail endpoint; public clients can follow
GET /api/public-project/{id}/description with offset and version, just like
public task descriptions. Every database statement in a board read has a
three-second timeout; expensive counts or offsets return a retryable 503.Authorizations
API key or session token (Bearer)
Path Parameters
Query Parameters
1 <= x <= 10000001 <= x <= 10000001 <= x <= 100createdAt, priority, dueDate, position, title, number asc, desc Response
The project board
Always paginated: 50 tasks by default, at most 100 per page. Continue through totalPages to retrieve all tasks. For each task page, follow relatedPage through relatedTotalPages to retrieve all labels, external links and columns (100 related rows per kind per request, plus up to 100 columns needed to represent the tasks).