Task Subtasks
Ask
List task subtasks
GET/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/subtasksLists subtasks for a visible Task.
Required scopes: task:read
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.dayIdrequired | string:uuidDay identifier. |
path.taskIdrequired | string:uuidTask identifier. |
query.limit | integerMaximum number of records to return. Defaults to 50 and is capped at 200. |
query.cursor | stringCursor returned by page.nextCursor from the previous list response. |
Response 200
data | object[] |
|---|---|
data[].id | string:uuidSubtask identifier. |
data[].orgId | string:uuidOrganization identifier. |
data[].taskId | string:uuidParent Task identifier. |
data[].dayId | string:uuidAssociated Day identifier used for activity and sync. |
data[].title | stringSubtask title. |
data[].isCompleted | booleanWhether the subtask is complete. |
data[].order | integerSubtask display order. |
data[].createdBy | string:uuidRoadOps user ID that created the subtask. |
data[].createdAt | string:date-timeUTC subtask creation timestamp. |
data[].updatedAt | string:date-timeUTC timestamp of the latest subtask change. |
data[].isDeleted | booleanSoft-delete flag. |
data[].version | integerCurrent subtasks-item aggregate version. |
data[].cursor | integerLatest cursor projected into this subtask. |
page | object |
page.limit | integerMaximum number of records returned in this page. |
page.nextCursor | string | nullCursor to pass as the next request's cursor query parameter, or null when there are no more results. |
Add a subtask
POST/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/subtasksAdds a lightweight subtask to a Task.
Required scopes: task:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.dayIdrequired | string:uuidDay identifier. |
path.taskIdrequired | string:uuidTask identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
id | string:uuid |
|---|---|
titlerequired | stringSubtask title. |
orderrequired | integerSubtask display order. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerCursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
Update a subtask
PATCH/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/subtasks/{subtaskId}Updates subtasks text, order, or completion state.
Required scopes: task:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.dayIdrequired | string:uuidDay identifier. |
path.taskIdrequired | string:uuidTask identifier. |
path.subtaskIdrequired | string:uuidSubtask identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
expectedVersion | integer |
|---|---|
updatesrequired | object |
updates.title | stringSubtask title. |
updates.isCompleted | booleanWhether the subtask is complete. |
updates.order | integerSubtask display order. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerCursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
Delete a subtask
DELETE/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/subtasks/{subtaskId}Deletes a Task subtask.
Required scopes: task:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.dayIdrequired | string:uuidDay identifier. |
path.taskIdrequired | string:uuidTask identifier. |
path.subtaskIdrequired | string:uuidSubtask identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerCursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |