List an issue’s action tasks#
Description#
Return a paginated collection of the remediation issue’s action tasks. status is the action task’s own lifecycle status; assigneeStatus is the independent status of the assignee’s response to the task.
An issue has at most 10 action tasks, so the collection returns all of them in one page. To detect new or changed action tasks, compare each action task’s modified.dateTime with the value from a previous sync.
An issue that does not exist and an issue the caller cannot read both return 403, so the response does not reveal which issue ids exist. The collection is all or nothing: a failure returns an error rather than a partial page.
GET /issues/{issueId}/actionTasks
Required OAuth Scopes
grc:read
Parameters#
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
X-Version |
header |
string |
true |
Version of the API (2026-09-01.grc.preview) |
$maxpagesize |
query |
integer(int32) |
false |
Maximum number of items to return in a single page. The service applies a default and a maximum; requests above the maximum are clamped. |
$next |
query |
string |
false |
Opaque cursor identifying the next page of results, taken from the previous page. Omit on the first request. |
Wk-Workspace |
header |
string |
true |
The id of the Workiva workspace to operate in. Authorization is enforced against the authenticated user’s access within this workspace. |
issueId |
path |
string |
true |
The unique system identifier of the issue. |
Code Samples#
curl -X GET https://api.app.wdesk.com/issues/{issueId}/actionTasks \
-H 'Accept: application/json' \
-H 'Wk-Workspace: 1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d' \
-H 'Authorization: Bearer {access-token}' \
-H 'X-Version: 2026-09-01.grc.preview'
http GET https://api.app.wdesk.com/issues/{issueId}/actionTasks \
X-Version:2026-09-01.grc.preview \
Accept:application/json \
Wk-Workspace:1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
Authorization:"Bearer {access-token}"
wget --method=GET "https://api.app.wdesk.com/issues/{issueId}/actionTasks" \
--output-document - \
--header 'Accept: application/json' \
--header 'Wk-Workspace: 1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d' \
--header 'Authorization: Bearer {access-token}' \
--header 'X-Version: 2026-09-01.grc.preview'
import requests
headers = {
'X-Version': '2026-09-01.grc.preview',
'Accept': 'application/json',
'Wk-Workspace': '1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.app.wdesk.com/issues/{issueId}/actionTasks', headers = headers)
print(r.json())
Returns#
200 - A paginated collection of the issue’s action tasks.#
A collection of action tasks.
400 - The request was invalid.#
Error response indicating the service could not process the request.
401 - Authentication is missing or invalid.#
Error response indicating the service could not process the request.
403 - The caller is not permitted to access this resource.#
Error response indicating the service could not process the request.
429 - The rate limit has been exceeded.#
Error response indicating the service could not process the request.
500 - An unexpected error occurred.#
Error response indicating the service could not process the request.
Example Responses#
{
"@nextLink": "https://api.app.wdesk.com/issues/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/actionTasks?$next=b3BhcXVlLW5leHQtcGFnZS10b2tlbg==",
"data": [
{
"assignee": {
"id": "u_4cc9f9128a684f45a7a37b08b70b54c1"
},
"assigneeStatus": "inProgress",
"created": {
"dateTime": "2026-03-15T14:30:00Z",
"user": {
"id": "u_4cc9f9128a684f45a7a37b08b70b54c1"
}
},
"description": "Configure the AP system so purchase order creation and approval require two distinct users.",
"dueDate": "2026-06-30T23:59:00Z",
"id": "3f2b1a4c-6d5e-4f7a-8b9c-1d2e3f4a5b6c",
"issue": {
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
},
"modified": {
"dateTime": "2026-03-20T09:00:00Z",
"user": {
"id": "u_4cc9f9128a684f45a7a37b08b70b54c1"
}
},
"name": "Implement dual-approval workflow",
"sentAt": "2026-03-20T09:00:00Z",
"status": "inProgress"
}
]
}
{
"code": "invalidFilter",
"message": "The $filter value could not be parsed.",
"target": "$filter"
}
{
"code": "unauthenticated",
"message": "Authentication credentials were missing or invalid."
}
{
"code": "permissionDenied",
"message": "You do not have permission to access this resource."
}
{
"code": "rateLimitExceeded",
"message": "Rate limit exceeded. Retry after the period indicated in the response headers."
}
{
"code": "internalError",
"message": "An unexpected error occurred. Please try again later."
}
{
"code": "503ServiceUnavailable",
"message": "The server cannot handle the request due to a temporary overload or scheduled maintenance"
}