Skip to main content

Test Suites & Organization

Manage test suites, group tests into collections, configure browser states, shared parameters, reusable modules, AI suggestions, and notification channels.


Test Suites

MethodPathWhat it does
POST/test-suitesCreate a suite (name and org_id required)
GET/test-suites/{test_suite_id}Get suite details
DELETE/test-suites/{test_suite_id}Delete a suite and all its tests
PUT/test-suites/{test_suite_id}/renameRename a suite
GET/test-suites/{test_suite_id}/treeGet the full folder/test tree
GET/test-suites/{test_suite_id}/test-case-idsList all test case IDs in the suite
GET/test-suites/{test_suite_id}/test-case-pathsList folder paths in the suite
GET/test-suites/{test_suite_id}/test-cases-by-pathList tests matching a folder path (path and exact_match queries)

Collections

Group tests together to run as a set, on a schedule, with shared run-setting overrides.

MethodPathWhat it does
POST/test-suites/collectionCreate a collection (name, test_suite_id; optional schedule in cron format, run_settings)
GET/test-suites/collection/{collection_id}Get a collection with its linked runs
PUT/test-suites/collection/{collection_id}Update a collection (add/remove tests, change schedule, update settings)
DELETE/test-suites/collection/{collection_id}Delete a collection
GET/test-suites/collections/{test_suite_id}List collections in a suite
GET/test-suites/collections-summaries/{test_suite_id}Per-collection pass/fail/running summary
POST/test-suites/collection/{collection_id}/run-allBulk-run all tests in a collection

schedule uses standard cron format. Example: "0 9 * * 1-5" runs the collection at 09:00 UTC every weekday.


Browser States

Save authenticated browser sessions to skip login on every test run.

MethodPathWhat it does
GET/browser-states/{test_suite_id}List browser states in a suite
POST/browser-stateCreate a browser state (name, storage_state, test_suite_id)
PUT/browser-stateUpdate a browser state
GET/browser-state/{test_suite_id}/{browser_state_id}Get a single browser state

Shared & Asset Parameters

Manage reusable variables and file references available across tests in a suite.

MethodPathWhat it does
GET/test-suites/{test_suite_id}/shared-parametersList shared parameters (values are masked)
POST/test-suites/{test_suite_id}/shared-parametersAdd a shared parameter (key, value)
PUT/test-suites/{test_suite_id}/shared-parameters/{shared_parameter_id}Update a shared parameter
DELETE/test-suites/{test_suite_id}/shared-parameters/{shared_parameter_id}Delete a shared parameter
GET/test-suites/{test_suite_id}/asset-parametersList asset parameters
POST/test-suites/{test_suite_id}/asset-parametersAdd an asset parameter (references an uploaded asset by asset_id)
DELETE/test-suites/{test_suite_id}/asset-parameters/{asset_parameter_id}Delete an asset parameter

Test Modules

Reusable setup building blocks (for example, a shared login flow) derived from a test case or defined as a Python script.

MethodPathWhat it does
GET/test-suites/{test_suite_id}/test-modulesList test modules in a suite
POST/test-suites/{test_suite_id}/test-moduleCreate a module (name required; optional test_case_id, module_type, defining_py_script)
PATCH/test-suites/{test_suite_id}/test-module/{test_module_id}Update a module
DELETE/test-suites/{test_suite_id}/test-module/{test_module_id}Delete a module
PUT/test-suites/{test_suite_id}/test-module/{test_module_id}/script/approveApprove or disapprove a module's Python script

AI Test Suggestions

Let CJ propose new test cases from a URL, an existing test, an uploaded document, or free-text context.

MethodPathWhat it does
GET/test-suites/{test_suite_id}/test-case-suggestion-bundlesList previously generated suggestion bundles
POST/test-suites/{test_suite_id}/suggest-test-casesGenerate and persist suggestions (async)
POST/test-suites/{test_suite_id}/suggest-test-cases-syncGenerate lightweight suggestions without saving
POST/test-suites/{test_suite_id}/suggestions/verdictAccept or reject a suggestion (verdict: accepted / rejected); an accepted suggestion creates a real test case

Notification Channels

Configure where failure alerts are sent (Email, Slack, MS Teams).

MethodPathWhat it does
GET/test-suites/{test_suite_id}/notification-channelsList notification channels
POST/test-suites/{test_suite_id}/notification-channelsAdd a channel
PUT/test-suites/{test_suite_id}/notification-channels/{channel_id}Update a channel
DELETE/test-suites/{test_suite_id}/notification-channels/{channel_id}Remove a channel

The config field uses a service_type discriminator. Examples:

Slack

{
"name": "Slack — #test-failures",
"config": {
"service_type": "slack",
"webhook_url": "https://hooks.slack.com/services/..."
},
"linked_collection_ids": ["<collection_id>"]
}

Email

{
"name": "Email alerts",
"config": {
"service_type": "email",
"to_email_list": ["dev@example.com"],
"cc_email_list": ["manager@example.com"]
},
"linked_collection_ids": ["<collection_id>"]
}

MS Teams

{
"name": "Teams — Dev channel",
"config": {
"service_type": "msteams",
"webhook_url": "https://outlook.office.com/webhook/..."
},
"linked_collection_ids": ["<collection_id>"]
}