Skip to main content

Tasks

The Tasks API provides CRUD access to project tasks, plus ancillary actions for status, assignment, tags, archive/activate, clone, comments and timers.
New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys). Those conventions apply to every endpoint below and are not repeated here.
Identifier note: tasks are addressed by their numeric task_id and always belong to a project (task_projectid). task_status is a taskstatus_id and task_priority is a taskpriority_id.
Scope: starting/stopping individual timers, recurring settings, task dependencies, per-user notes, attachments/cover image, kanban position, bulk actions and pinning are managed in-app and are not part of this API. Checklists on a task are handled by the Checklists API (resource_type=task). Timers are read-only here, plus a stop-all command.

The task object


List / search tasks

Returns { data, meta, message } (200).

Get a task

Returns the task (200), message “Task retrieved successfully.”

Create a task

The client is derived from the project; the milestone defaults to the project’s uncategorised milestone when omitted. Assignment is set separately via the assigned action.
Returns the new task (201), message “Task created successfully.”

Update a task

Full update of the editable fields (same parameters as Create, except the project is fixed). Assignment is managed via the assigned action.
Returns the task (200), message “Task updated successfully.”

Delete a task

Returns { "data": { "id": 120 }, "message": "Task deleted successfully." }.

Change status

Sets the status (and stamps the status-change date; marks the completer when set to the completed status).
Returns the task (200), message “Task status updated successfully.”

Set assigned team members

Full-set replace (empty array clears).
Returns the task (200), message “Task assignees updated successfully.”

Set tags

Full-set replace (empty array clears).

Archive / activate

No body. Toggles active_state between archived and active.

Clone a task

Clones the task into a target project + milestone.
Returns the new task (201), message “Task cloned successfully.”

Timers

Timers are read-only via the API, plus a stop-all command.

List timers

Returns the task’s time entries: [{ id, user: {id,name}, started, stopped, time, status, billing_status }].

Stop all running timers

No body. Stops any running timers on the task. Returns { "data": { "id": 120 }, "message": "..." }.

Comments

List comments

Add a comment

Delete a comment


Errors

See Getting started for the shared error format. Task-specific: