Skip to content

Get a task by id

GET /v1/tasks/{taskId}

Returns the full detail for a single task: status, assignees, attached lists, parent task reference, subtask count, and the rich-text description.

NameTypeRequiredDescription
taskIdstringyesNumeric ID of the task.

No request body.

200 OK — task detail object.

FieldTypeDescription
idnumberNumeric ID of the task.
keystringStable UUID key for the task.
numbernumberAuto-incrementing task number within the team.
titlestringTask title.
prioritystring | nullOne of low, medium, high, urgent, or null.
dueDatestring | nullISO 8601 date the task is due, or null.
completedAtstring | nullISO 8601 timestamp the task was completed, or null if still open.
createdAtstringISO 8601 timestamp of creation.
updatedAtstringISO 8601 timestamp of the last update.
descriptionstring | nullCommonMark markdown rendering of the task body, or null if there’s none.
customAttributesarray of objectsValues set for the team’s custom attributes — see below.
customAttributes[].idnumberID of the custom attribute.
customAttributes[].valueanyValue for that attribute. The shape depends on the attribute type.

A timer attribute reports a whole number of minutes, always rounded down — 4m50s of tracked time reports as 4. It is the total of the task’s stopped time entries; a timer that is currently running is counted once it is paused, so this value does not change on its own while recording (the app’s own UI adds the running segment on top of it for display). The individual entries are not exposed over the API, and the value is read-only here: it is derived from the entries and cannot be set through Update a task.

| status | object | Current status — see below. | | status.id | number | Numeric ID of the status. | | status.name | string | Display name. | | status.color | string | null | Hex color used in the UI, or null. | | status.isCompleted | boolean | true if this status counts as “done”. | | assignees | array of objects | Users assigned to the task. May be empty. | | assignees[].id | string | User ID (UUID). | | assignees[].name | string | User’s display name. | | assignees[].email | string | User’s email address. | | taskLists | array of objects | Lists the task is attached to. A task can belong to several lists. | | taskLists[].id | number | Numeric ID of the list. | | taskLists[].name | string | Display name of the list. | | parent | object | null | The parent task if this is a subtask, otherwise null. | | parent.id | number | Numeric ID of the parent task. | | parent.number | number | Parent task’s number. | | parent.title | string | Parent task’s title. | | subtaskCount | number | Number of subtasks directly nested under this task. |

404 Not Found is returned with { "error": "Task not found" } if no task with that ID exists in the current team.