Task ID (tsk_...).
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
Optionalagent?: stringExplicit owning agent (agi_...) for privileged calls.
Optionallimit?: numberMaximum entries to return. Capped at 100.
Optionalorg?: stringExplicit organization (org_...) for privileged calls; pass null when unscoped.
Optionalteam?: stringExplicit owning team (tem_...) for privileged calls.
Optionaluser?: stringExplicit owning user (usr_...) for privileged calls.
Successful response
List the tasks a task blocks
Returns a bounded page of the tasks that the specified task is marked as
blocking (the inverse of GET /tasks/{task}/blockers), newest first.
The task's owner is resolved from the task itself.
Blocking task ID (tsk_...).
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
Optionalagent?: stringExplicit owning agent (agi_...) for privileged calls.
Optionallimit?: numberMaximum tasks to return. Capped at 100.
Optionalorg?: stringExplicit organization (org_...) for privileged calls; pass null when unscoped.
Optionalteam?: stringExplicit owning team (tem_...) for privileged calls.
Optionaluser?: stringExplicit owning user (usr_...) for privileged calls.
Successful response
Delete a task
Deletes a task from task lists and detail views. The task event stream is
retained for auditability, while comments are removed and direct subtasks
are promoted to top-level tasks.
The delete event is accepted before the read model is updated. Clients
should remove the task from local collections immediately; subsequent reads
converge once the projection processes the event.
Authenticated users may delete tasks they can access using their session
identity. App-scoped developer and server-to-server callers must explicitly
supply the task's org and owner. team or user identifies that owner;
when neither is present, agent identifies an agent-owned task. With a team
or user owner, agent identifies the acting principal. Each reference is
validated before deletion.
Task ID (tsk_...).
Empty response. HTTP 204 is returned after the delete event is accepted.
Retrieve a task
Returns the full task object for the specified task ID. Authenticated users
and agents resolve access through their session. App-scoped developer and
server-to-server callers explicitly provide the owning team, user, or agent and
org. Callers without access receive a 404.
Task ID (tsk_...).
Optionalparams: { agent?: string; org?: string; team?: string; user?: string }Query parameters.
Optionalagent?: stringExplicit owning agent (agi_...) for privileged calls.
Optionalorg?: stringExplicit organization (org_...) for privileged calls; pass null when unscoped.
Optionalteam?: stringExplicit owning team (tem_...) for privileged calls.
Optionaluser?: stringExplicit owning user (usr_...) for privileged calls.
The requested task.
Update a task
Updates the supplied fields on a task and returns the complete updated task.
Authenticated users use their session identity. App-scoped developer and
server-to-server callers must explicitly supply the task's org and owner.
team or user identifies that owner; when neither is present, agent
identifies an agent-owned task. With a team or user owner, agent identifies
the acting principal. Every reference is validated before the update.
A cooperating coding-session client may supply both lease_id and
lease_session_id. The task aggregate fences that update against the live
lease and records server-sourced session provenance. Omitting both remains a
normal authorized human/API update.
Supply expected_version from the latest task representation to make the
update conditional. A concurrent write returns task_version_conflict.
Task ID (tsk_...).
Request body.
Optionalagent?: stringExplicit agent (agi_...). It is the owner when team and user are absent; otherwise it is the acting principal.
Optionaldescription?: stringUpdated long-form description.
Optionaldue_date?: stringUpdated due date in ISO 8601 format, or null to clear it.
Optionalepic?: stringReplacement grouping label. Pass null to clear it.
Optionalexpected_version?: numberAggregate version returned by the latest task read. The update fails with task_version_conflict if the task changed first.
Optionallease_id?: stringCurrent caller-held lease UUID. Must be paired with lease_session_id.
Optionallease_session_id?: stringCurrent coding-session UUID. Must be paired with lease_id.
Optionallinks?: Record<string, unknown>Replacement related-links object.
Optionalmetadata?: Record<string, unknown>Replacement task metadata object.
Optionalname?: stringUpdated display name for the task.
Optionalorg?: stringExplicit organization (org_...) for a developer or server-to-server call. Pass null for an owner outside an organization.
Optionalowner_agent?: stringAssign to an agent by public ID (agi_...).
Optionalowner_user?: stringAssign to a user by public ID (usr_...).
Optionalparent?: stringMove this task under a top-level parent (tsk_...), or pass null to promote it to a top-level task. A task that has subtasks cannot become one.
Optionalpriority?: numberUpdated priority from 0 (highest) to 4 (lowest).
Optionalsource_id?: stringReplacement source object identity. Must be supplied with the other source fields.
Optionalsource_scope?: stringReplacement source container. Pass together with source_type and source_id, or pass all three as null to clear the source.
Optionalsource_type?: stringReplacement source object kind. Must be supplied with the other source fields.
Optionalstatus?: stringUpdated status: open, in_progress, in_review, or done.
Optionaltags?: string[]Replacement tag list (max 20, each up to 40 characters; normalized to lowercase). Pass an empty array to clear all tags.
Optionalteam?: stringExplicit owning team (tem_...) for a developer or server-to-server call.
Optionaluser?: stringExplicit user (usr_...) for a developer or server-to-server call. With team, this identifies the acting team member.
The updated task.
List a task's subtasks
Returns a bounded page of the specified task's subtasks (tasks whose
parent is this task), newest first. Subtasks nest exactly one level, so
entries never have subtasks of their own. Privileged callers explicitly
provide the owning team, user, or agent and org.
Parent task ID (tsk_...).
Optionalparams: {Query parameters.
OptionalafterCursor?: stringOpaque cursor returned by the previous page.
Optionalagent?: stringExplicit owning agent (agi_...) for privileged calls.
Optionallimit?: numberMaximum subtasks to return. Capped at 100.
Optionalorg?: stringExplicit organization (org_...) for privileged calls; pass null when unscoped.
Optionalteam?: stringExplicit owning team (tem_...) for privileged calls.
Optionaluser?: stringExplicit owning user (usr_...) for privileged calls.
Successful response
List a task's activity Returns a bounded chronological page of activity for the specified task. App-scoped developer and server-to-server callers explicitly provide the owning
team,user, oragentandorg.