User ID (usr_...) for user-scoped tasks.
Optionalparams: { afterCursor?: string; limit?: number; org?: string; team?: string }Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the preceding page.
Optionallimit?: numberMaximum cycle components to return. Defaults to 50; maximum is 100.
Optionalorg?: stringOptional organization context for privileged callers.
Optionalteam?: stringTeam ID (tem_...) owning the tasks.
Successful response
Create a task for an owner
Creates a new task owned by the specified user or team and returns the full
task object. User-authenticated calls are attributed to the authenticated
user or agent. App-scoped developer and server-to-server callers must provide
the task's explicit org scope and an explicit user or agent actor for
team tasks; a user-owned task reuses the user in the route unless an explicit
agent is supplied. Every referenced principal is validated against the app,
owner, and team membership before creation.
User ID (usr_...) for user-scoped tasks.
Request body.
Optionalagent?: stringExplicit acting agent (agi_...) for a developer or server-to-server call. Mutually exclusive with an acting user; the agent must belong to the task owner.
Optionalorg?: stringExplicit organization (org_...) for developer and server-to-server calls. Pass null when the owner is not organization-scoped. The value must match the selected user or team.
Attributes for the task to create. name is required; all other fields are optional.
Optionalteam?: stringTeam ID (tem_...). The task will be owned by this team.
The newly created task.
List an owner's tasks
Returns tasks owned by the specified user or team. You can narrow results using the
optional filters below. By default results are returned in reverse chronological
order (most recently created first); use sort and order to sort by due date or
priority instead.
User-authenticated callers may list their personal tasks or tasks for teams they
have joined. Privileged callers provide the owner in the route; the owner's
organization is implied by that principal. An explicit org is optional and,
when set, must match the owner's organization.
User ID (usr_...) for user-scoped tasks.
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
OptionaldueAfter?: stringReturn only tasks with a due date strictly after this ISO 8601 datetime or date. Tasks without a due date are excluded.
OptionaldueBefore?: stringReturn only tasks with a due date strictly before this ISO 8601 datetime (2026-08-01T00:00:00Z) or date (2026-08-01, meaning midnight UTC). Tasks without a due date are excluded.
Optionalepic?: stringReturn only tasks with this exact epic label.
Optionallimit?: numberMaximum number of tasks to return. Capped at 100.
Optionalorder?: stringSort direction, "asc" or "desc". Defaults to "desc" for created and "asc" for due_date and priority.
Optionalorg?: stringOptional organization (org_...) for developer and server-to-server calls. When omitted, the org is taken from the owner principal (team, user, or agent). When set, it must match that principal's org; pass null for an owner outside an organization.
Optionaloverdue?: booleanWhen true, return only overdue tasks: a due date before the current UTC day and a status other than "done". A task due today is not overdue.
OptionalownerAgent?: stringFilter tasks assigned to a specific agent. Provide the agent's public ID (agi_...).
OptionalownerUser?: stringFilter tasks assigned to a specific user. Provide the user's public ID (usr_...).
Optionalparent?: stringReturn only subtasks of the given task (tsk_...), or pass none to return only top-level tasks.
Optionalpriority?: numberFilter tasks by priority, from 0 (highest) to 4 (lowest).
Optionalready?: booleanWhen true, return only open tasks with no unfinished blockers and no active session lease. This is a projection snapshot; claim a lease before starting work.
Optionalsearch?: stringRestrict results to tasks whose name or description contains this string.
Optionalsort?: stringSort key. One of "created" (default — most recently created first), "due_date" (soonest due first; tasks without a due date always sort last), or "priority" (most urgent first). Ties break by most recently created.
OptionalsourceId?: stringReturn only tasks whose source matches this object identity. Must be supplied with the other source filters.
OptionalsourceScope?: stringReturn only tasks whose source matches this container. Must be supplied with source_type and source_id.
OptionalsourceType?: stringReturn only tasks whose source matches this object kind. Must be supplied with the other source filters.
Optionalstatus?: stringFilter tasks by status. One of "open", "in_progress", "in_review", or "done". Omit to return tasks in all statuses.
Optionaltag?: stringReturn only tasks carrying this tag (matched against the canonical lowercase form).
Optionalteam?: stringTeam ID (tem_...). Only tasks belonging to this team are returned.
Successful response
List an owner's ready tasks
Returns open tasks with no unfinished blockers and no active session lease.
Readiness is calculated by the server from the current task projection. It is
a snapshot, not a reservation; claim a task lease before starting work.
Pass explain=true to include every open task with a stable readiness reason.
User ID (usr_...) for user-scoped tasks.
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
OptionalassignedToMe?: booleanOnly include tasks assigned to the authenticated user.
Optionalepic?: stringOnly include tasks with this exact epic label.
Optionalexplain?: booleanInclude blocked and actively leased open tasks with exclusion reasons.
Optionallimit?: numberMaximum number of readiness entries to return. Capped at 100.
Optionalorg?: stringOptional organization context for privileged callers.
OptionalsourceId?: stringOnly include tasks whose source matches this object identity.
OptionalsourceScope?: stringOnly include tasks whose source matches this container. Must be supplied with source_type and source_id.
OptionalsourceType?: stringOnly include tasks whose source matches this object kind.
Optionalteam?: stringTeam ID (tem_...) owning the tasks.
Successful response
Search an owner's tasks
Performs a full-text search over tasks owned by the specified user or team and returns
matching results. Combine q with the optional filters to narrow the result set
further. When no query is provided, the endpoint behaves like a filtered list.
The query field in the response echoes the effective search query.
User-authenticated callers may search their personal tasks or tasks for teams
they have joined. Privileged callers provide the owner in the route; the owner's
organization is implied by that principal. An explicit org is optional and,
when set, must match the owner's organization.
User ID (usr_...) for user-scoped tasks.
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
Optionalepic?: stringReturn only tasks with this exact epic label.
Optionallimit?: numberMaximum number of tasks to return. Capped at 100.
Optionalorg?: stringOptional organization (org_...) for developer and server-to-server calls. When omitted, the org is taken from the owner principal (team, user, or agent). When set, it must match that principal's org; pass null for an owner outside an organization.
OptionalownerAgent?: stringRestrict results to tasks assigned to the agent with this public ID (agi_...).
OptionalownerUser?: stringRestrict results to tasks assigned to the user with this public ID (usr_...).
Optionalparent?: stringReturn only subtasks of the given task (tsk_...), or pass none to return only top-level tasks.
Optionalpriority?: numberFilter results by priority, from 0 (highest) to 4 (lowest).
Optionalq?: stringFull-text search query matched against task names and descriptions. Takes precedence over query when both are provided.
Optionalquery?: stringAlias for q. Use q when possible; this parameter exists for compatibility.
OptionalsourceId?: stringReturn only tasks whose source matches this object identity.
OptionalsourceScope?: stringReturn only tasks whose source matches this container. Must be supplied with source_type and source_id.
OptionalsourceType?: stringReturn only tasks whose source matches this object kind.
Optionalstatus?: stringFilter results by status. One of "open", "in_progress", "in_review", or "done". Omit to include all statuses.
Optionaltag?: stringReturn only tasks carrying this tag (matched against the canonical lowercase form).
Optionalteam?: stringTeam ID (tem_...). Only tasks belonging to this team are searched.
Successful response
List task blocker cycles Runs an on-demand diagnostic over unfinished tasks owned by the specified team or user and returns a forward cursor-paginated page of complete cyclic blocker components. Detection is bounded to owners with at most 100 unfinished tasks. This endpoint is read-only: cycles do not prevent task updates, lease acquisition, or completion.