Skip to main content
GET
List and filter tasks
Read access: a read-enabled personal or team REST API key, or a signed-in user. OAuth clients use the corresponding MCP tool through /mcp. Search and filter tasks in one board. Combine q, status, assigneeId, priority and sort. Without a status filter, done and wont_do tasks are hidden after 24 hours in that status. Set status explicitly to include older tasks in that status. Tasks are sorted by priority from urgent through none by default; status sort follows backlog, todo, in_progress, in_review, done, wont_do. Maximum 100 results per page, with total matching tasks and the current revision. Use either cursor continuation or a positive page number. Cursor cannot be combined with page or revision. Page requests clamp to the last available page; send the returned revision on subsequent page requests to reject changed lists. Priority is the default: urgent, high, medium, low, none. Without an explicit status filter, done and wont_do tasks disappear from lists after 24 hours in that status but retain direct access. q searches title, description, acceptance criteria and identifier. assigneeId:unassigned finds tasks without an assignee. MCP clients can use list_tasks for this operation. Request conventions · API keys · MCP connections

Authorizations

Authorization
string
header
required

Personal or team Mill REST API key

Path Parameters

boardId
string<uuid>
required

The boardId from the corresponding list, record or authorization response.

Query Parameters

q
string

string

Maximum string length: 300
status
enum<string>

backlog, todo, in_progress, in_review, done, wont_do

Available options:
backlog,
todo,
in_progress,
in_review,
done,
wont_do
assigneeId

JSON value

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
priority
enum<string>

none, low, medium, high, urgent

Available options:
none,
low,
medium,
high,
urgent
sort
enum<string>

createdAt, updatedAt, dueDate, priority, status, title

Available options:
createdAt,
updatedAt,
dueDate,
priority,
status,
title
limit
integer

integer

Required range: 1 <= x <= 100
cursor
string

string

Maximum string length: 1000
page
integer

integer

Required range: x <= 9007199254740991
revision
string

string

Pattern: ^[a-f0-9]{32}$

Response

Successful response. Examples are illustrative; field values vary by record.

Illustrative response shape. Fields can be absent in alternate successful flows; see the operation description and example.

items
object[]
hasMore
boolean
nextCursor
string | null
total
integer
page
integer
revision
string