Retrieve a list of runs#

Description#

Returns a paginated list of runs for a script, both script executions and dependency bundle generations. Use the type property to tell them apart.

Use $filter to constrain results to a started.dateTime range with the ge and le operators, optionally combined with and. Values must be RFC 3339 timestamps. Runs that never started are excluded from a filtered result. $filter is ignored when $next is supplied, since the cursor already carries the filter forward to subsequent pages.

List items omit dependencyState. Retrieve an individual run with GET /scripts/{scriptId}/runs/{runId} to read it.

GET /scripts/{scriptId}/runs

Required OAuth Scopes

file:read

Parameters#

Parameter

In

Type

Required

Description

X-Version

header

string

true

Version of the API (2026-09-01.scripting.preview)

scriptId

path

string

true

The unique identifier of the script

$filter

query

string

false

The properties to filter the results by.

$maxpagesize

query

integer(int32)

false

The maximum number of results to retrieve

$next

query

string

false

Pagination cursor for next set of results.

Filter Options#

Available logical operators: and

Name

Predicates Supported

started.dateTime

ge, le

Code Samples#

curl -X GET https://api.app.wdesk.com/scripts/{scriptId}/runs \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    -H 'X-Version: 2026-09-01.scripting.preview'
http GET https://api.app.wdesk.com/scripts/{scriptId}/runs \
    X-Version:2026-09-01.scripting.preview \
    Accept:application/json \
    Authorization:"Bearer {access-token}"
wget --method=GET "https://api.app.wdesk.com/scripts/{scriptId}/runs" \
    --output-document - \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer {access-token}' \
    --header 'X-Version: 2026-09-01.scripting.preview'
import requests

headers = {
  'X-Version': '2026-09-01.scripting.preview',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.app.wdesk.com/scripts/{scriptId}/runs', headers = headers)

print(r.json())

Returns#

200 - OK#

Returns a JSON object with data and @nextLink properties. data contains a list of ScriptRun objects, and @nextLink provides the URL to the next set of results. If there are no additional results, @nextLink doesn’t appear. If the request returns no results at all, data contains an empty array.

400 - Bad Request#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

401 - Unauthorized#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

403 - Forbidden#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

404 - Not Found#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

429 - Too Many Requests#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

500 - Internal Server Error#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

503 - Service Unavailable#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

Example Responses#

{
  "@nextLink": "<opaque_url>",
  "data": [
    {
      "completed": {
        "dateTime": "2026-05-13T20:42:31Z"
      },
      "created": {
        "dateTime": "2026-05-13T20:41:35Z",
        "user": {
          "id": "V3ZVc2VyFzV3NiQ5NDA2NjIzNxk2njH"
        }
      },
      "durationSeconds": 44,
      "id": "ae82b647-8e43-44c3-a4e7-2aa3294c87ac",
      "runtime": "python3.13",
      "started": {
        "dateTime": "2026-05-13T20:41:47Z"
      },
      "status": "completed",
      "totalElapsedSeconds": 56,
      "type": "script"
    },
    {
      "completed": {
        "dateTime": "2026-05-12T09:15:44Z"
      },
      "created": {
        "dateTime": "2026-05-12T09:14:02Z",
        "user": {
          "id": "V3ZVc2VyFzV3NiQ5NDA2NjIzNxk2njH"
        }
      },
      "durationSeconds": 95,
      "id": "16dc8639-70f4-4905-b087-8f28027db75b",
      "runtime": "python3.13",
      "started": {
        "dateTime": "2026-05-12T09:14:09Z"
      },
      "status": "completed",
      "totalElapsedSeconds": 102,
      "type": "dependency"
    }
  ]
}
{
  "code": "400BadRequest",
  "message": "The request was unacceptable, often due to a missing or invalid parameter"
}
{
  "code": "401Unauthorized",
  "message": "No valid API token provided"
}
{
  "code": "403Forbidden",
  "message": "The API token does not have permissions to perform the request"
}
{
  "code": "404NotFound",
  "message": "The requested resource could not be found"
}
{
  "code": "429TooManyRequests",
  "message": "Too many requests have been made against the API in too short a time"
}
{
  "code": "500InternalServerError",
  "message": "The server encountered an unexpected condition that prevented it from fulfilling the request"
}
{
  "code": "503ServiceUnavailable",
  "message": "The server cannot handle the request due to a temporary overload or scheduled maintenance"
}