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.

503 - Service Unavailable#

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"
}