Skip to navigation

PM · Search · Search and load tasks by board, status, assignee, tag, or text

View as Markdown

The primary task query endpoint — used by the UI for ALL task loading, including the board view (no search) and board search box.

IMPORTANT — always scope with board + status: The UI always passes board=<board_id> and status=<status_id> together, fetching one column at a time (page_size=10). Without scoping, results span the entire workspace (800+ tasks) with no relevance ranking.

Correct agent pattern:

  1. Call listStatuses to get status IDs for the board.
  2. Call searchTasks?board=<id>&status=<sid>&search=<term> per column.

Supports nested filters on assignees/tags, date ranges, and full-text search across title/description/tags/comments.

SUBTASKS ARE EXCLUDED BY DEFAULT — pass include_subtasks=true to search them. A subtask that is absent from every result is not missing or unindexed; it is filtered out. Confirm with getTask by slug before concluding a ticket does not exist.

Authentication

AuthorizationApi-Key

Header authentication of the form Api-Key <token>

OR
AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

OrganizationstringOptional

Workspace (organization) ID the request is scoped to.

SpacestringOptional

Optional sub-space ID for further scoping inside the workspace.

Query parameters

searchstringOptional
boardstringOptionalformat: "uuid"
statusstringOptionalformat: "uuid"
assigneesstringOptional

Nested filter on assignees (e.g. assignees:123).

tagsstringOptional

Nested filter on tags (e.g. tags:42).

priorityintegerOptional
completebooleanOptional
task_typeenumOptional
Allowed values:
include_subtasksbooleanOptional

Whether subtasks appear as their own rows. Defaults to false, matching the board view, where a subtask is shown inside its parent's card rather than as a top-level row.

Pass true to search subtasks too — without it a subtask is unreachable by title, description or comment text, and can only be fetched by slug via getTask. Use it whenever you are looking for a ticket that "should exist but never shows up".

task_type=SUBTASK implies inclusion on its own; an explicit include_subtasks always wins. Any value other than true/false is rejected.

Not to be confused with subtasks, which is the nested filter that matches a PARENT task by one of its subtask IDs.

start_date_afterdateOptional

Tasks with start_date on or after this date (YYYY-MM-DD).

start_date_beforedateOptional

Tasks with start_date on or before this date (YYYY-MM-DD).

due_date_afterdateOptional

Tasks with due_date on or after this date (YYYY-MM-DD).

due_date_beforedateOptional

Tasks with due_date on or before this date (YYYY-MM-DD).

orderingstringOptional
expandstringOptional

Comma-separated list of fields to expand inline on the response (FlexFields style, e.g. assignees,tags,time_tracking).

pageintegerOptional

1-based page number for paginated list endpoints.

page_sizeintegerOptional
Page size for paginated list endpoints.

Response

Paginated task search results.