Skip to content

Test Suites

Get Test Suite Details

/api/v2/testsuites/{id} 📋 Copied! ▼

Role: Guest and above.

Parameters

Name Description
id * Numeric ID of the Test Suite.
Type: integer (path)

Responses

Code Description
200

Test Suite data. scheduleConflicts lists other suites whose schedule overlaps this one on a shared device.

Media type: application/json

Example Value:

{
"id": 0,
"name": "string",
"description": "string",
"testCases": [
    {
        "id": 0,
        "name": "string",
        "weight": 1
    }
],
"schedule": {
    "startTime": "2026-09-23T08:00:00Z",
    "repeating": true,
    "repeatPeriod": 1,
    "repeatUnit": "H",
    "repeatDays": "MON,TUE,WED,THU,FRI",
    "repeatTimeRange": "08:00-18:00",
    "timezone": "Europe/London"
},
"tags": [
    "string"
],
"notifyFailureThresholdPercentage": 99,
"disabled": false,
"notifEmail": "string",
"failureNotifEmail": "string",
"skipInitialization": false,
"skipCleanup": false,
"projects": [
    {
        "id": 0,
        "name": "string"
    }
],
"scheduleConflicts": [
    {
        "conflictingSuiteId": 0,
        "conflictingSuiteName": "string",
        "detectedAt": "2026-09-23T08:00:00Z"
    }
],
"status": "string"
}
404

Resource was not found.

Update a Test Suite

/api/v2/testsuites/{id} 📋 Copied! ▼

Role: Admin, or the user who created the Test Suite.

name is required (at least 5 characters) and must be unique. testCaseIds lists the Test Cases in run order; testCaseWeights gives each one's weight, in the same order. notifyFailureThresholdPercentage is 0-100: the failure percentage at which notifications are sent. Assign projects with POST /api/v2/projects/assignments.

schedule: startTime is an ISO-8601 instant. repeatUnit is S, M or H (seconds, minutes, hours) and repeatPeriod is 0-24 hours or 0-1440 minutes. repeatDays is a comma-separated list such as MON,TUE; repeatTimeRange is HH:mm-HH:mm (a range that crosses midnight needs at least two consecutive days); timezone is an IANA name. skipCleanup is ignored unless Skip Cleanup is enabled for your environment.

Parameters

Name Description
id * Numeric ID of the Test Suite.
Type: integer (path)

Request body *

{
"name": "string",
"description": "string",
"testCaseIds": [
    0
],
"testCaseWeights": [
    1
],
"schedule": {
    "startTime": "2026-09-23T08:00:00Z",
    "repeating": true,
    "repeatPeriod": 1,
    "repeatUnit": "H",
    "repeatDays": "MON,TUE,WED,THU,FRI",
    "repeatTimeRange": "08:00-18:00",
    "timezone": "Europe/London"
},
"tags": [
    "string"
],
"notifyFailureThresholdPercentage": 99,
"disabled": false,
"notifEmail": "string",
"failureNotifEmail": "string",
"skipInitialization": false,
"skipCleanup": false
}

Responses

Code Description
200

Test Suite was updated successfully.

400

The body is invalid, for example a schedule with an unknown repeat unit or date format.

404

Resource was not found.

409

Another Test Suite already has this name.

Delete a Test Suite

/api/v2/testsuites/{id} 📋 Copied! ▼

Role: Admin, or the user who created the Test Suite.

Parameters

Name Description
id * Numeric ID of the Test Suite.
Type: integer (path)

Responses

Code Description
200

Test Suite was deleted successfully.

404

Resource was not found.

409

Test Suite is currently executing.

Execute a Test Suite

/api/v2/testsuites/{id}/execute 📋 Copied! ▼

Role: Standard and above.

Parameters

Name Description
id * Numeric ID of the Test Suite.
Type: integer (path)

Responses

Code Description
200

The execution was requested. result is SUCCESS (started), FAILURE, RESERVE_FAILURE (a device could not be reserved) or CAPACITY_LIMIT (the environment is running as many executions as it allows). Check result: a busy device is reported here, not as an error code.

Media type: application/json

Example Value:

{
"executionId": 0,
"result": "SUCCESS"
}
404

Resource was not found.

500

The execution could not be scheduled.

Cancel a Test Suite execution

/api/v2/testsuites/{id}/cancel 📋 Copied! ▼

Role: Admin, or the user who created the Test Suite.

Parameters

Name Description
id * Numeric ID of the Test Suite.
Type: integer (path)

Responses

Code Description
200

The execution was cancelled. The response is the ID of the cancelled Test Execution.

Media type: application/json

Example Value:

{
"id": 0
}
409

Test Suite is not running.

List Test Suites

/api/v2/testsuites 📋 Copied! ▼

Role: Guest and above.

Parameters

Name Description
page Zero-based page number. Default 0.
Type: integer (query)
size Page size. Default 20.
Type: integer (query)
sort <field>,asc or <field>,desc.
Type: string (query)
prj Only return items assigned to these projects: comma-separated project IDs.
Type: string (query)
filterName Filter to apply: text (name contains), tagsAny, tagsAll or tagsNone (comma-separated tag names), testcase (suites that contain the Test Case with this exact name), status (running, scheduled or problematic), or testexecutions (sort by number of executions).
Type: string (query)
filterValue The value for filterName.
Type: string (query)

Responses

Code Description
200

A page of Test Suites.

Media type: application/json

Example Value:

{
"content": [
    {
        "id": 0,
        "name": "string",
        "description": "string",
        "testCaseNames": [
            "string"
        ],
        "nextRunTime": "string",
        "schedule": {
            "startTime": "2026-09-23T08:00:00Z",
            "repeating": true,
            "repeatPeriod": 1,
            "repeatUnit": "H",
            "repeatDays": "MON,TUE,WED,THU,FRI",
            "repeatTimeRange": "08:00-18:00",
            "timezone": "Europe/London"
        },
        "status": "string",
        "lastExecutionId": 0,
        "lastExecutionTime": "string",
        "statistics": {
            "tsExecution": 0,
            "tsReserveFailure": 0,
            "tsAvgExecutionTime": 0,
            "tcExecution": 0,
            "tcSuccess": 0
        },
        "notifEmail": "string",
        "updated": "string",
        "projects": [
            {
                "id": 0,
                "name": "string"
            }
        ],
        "tags": [
            "string"
        ],
        "relatedTestNodes": [
            {
                "id": 0,
                "name": "string"
            }
        ],
        "hasScheduleConflicts": false
    }
],
"totalElements": 0,
"totalPages": 0,
"number": 0,
"size": 20
}

Create a Test Suite

/api/v2/testsuites 📋 Copied! ▼

Role: Standard and above.

name is required (at least 5 characters) and must be unique. testCaseIds lists the Test Cases in run order; testCaseWeights gives each one's weight, in the same order. notifyFailureThresholdPercentage is 0-100: the failure percentage at which notifications are sent. Assign projects with POST /api/v2/projects/assignments.

schedule: startTime is an ISO-8601 instant. repeatUnit is S, M or H (seconds, minutes, hours) and repeatPeriod is 0-24 hours or 0-1440 minutes. repeatDays is a comma-separated list such as MON,TUE; repeatTimeRange is HH:mm-HH:mm (a range that crosses midnight needs at least two consecutive days); timezone is an IANA name. skipCleanup is ignored unless Skip Cleanup is enabled for your environment.

Request body *

{
"name": "string",
"description": "string",
"testCaseIds": [
    0
],
"testCaseWeights": [
    1
],
"schedule": {
    "startTime": "2026-09-23T08:00:00Z",
    "repeating": true,
    "repeatPeriod": 1,
    "repeatUnit": "H",
    "repeatDays": "MON,TUE,WED,THU,FRI",
    "repeatTimeRange": "08:00-18:00",
    "timezone": "Europe/London"
},
"tags": [
    "string"
],
"notifyFailureThresholdPercentage": 99,
"disabled": false,
"notifEmail": "string",
"failureNotifEmail": "string",
"skipInitialization": false,
"skipCleanup": false
}

Responses

Code Description
201

ID of the Test Suite.

Media type: application/json

Example Value:

{
"id": 0
}
400

The body is invalid, for example a schedule with an unknown repeat unit or date format.

409

Name needs to be unique.

List upcoming scheduled executions

/api/v2/testsuites/upcoming 📋 Copied! ▼

Role: Guest and above.

Parameters

Name Description
hours Look-ahead window in hours. Default 24.
Type: integer (query)
prj Only return items assigned to these projects: comma-separated project IDs.
Type: string (query)

Responses

Code Description
200

The scheduled runs of enabled suites that start within the window, with each suite's estimated duration.

Media type: application/json

Example Value:

[
    {
        "suiteId": 0,
        "suiteName": "string",
        "scheduledTime": "2026-09-23T10:00:00Z",
        "estimatedDurationMs": 0
    }
]