Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/tricentis-test-run-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: "[Introduction to qTest API Specification](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/qtest_api_specification.htm) \n[How to use interactive API Doc](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/how_to_use_interactive_api_documentation.htm)\n The bearer token can be found at `[qtestUrl/p/{projectId}/portal/project#tab=resource]` under the API & SDK tab."
version: v3.0
title: qTest Manager API Version 3.0 Test Run API
servers:
- url: https://apitryout.qtestnet.com/
tags:
- name: test-run
description: Test Run API
paths:
/api/v3/projects/{projectId}/test-runs:
get:
tags:
- test-run
summary: Gets multiple Test Runs
description: 'To retrieve all Test Runs under root or under a container (Release, Test Cycle or Test Suite)
<strong>qTest Manager version:</strong> 6+'
operationId: getOf
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container (Release, Test Cycle or Test Suite)
Input 0 (zero) to retrieve Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em> and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
- name: expand
in: query
description: Specify <em>expand=descendants</em> to include all Test Runs which are directly or indirectly under the container
required: false
schema:
type: string
- name: includeToscaProperties
in: query
description: "By default, Tosca properties of Test Run (imported from Tosca) are not included in the response. Specify includeToscaProperties=true to include them.\n\n <em>(tosca_guid, tosca_node_path, tosca_workspace_url, tosca_testevent_guid)</em>"
required: false
schema:
type: boolean
default: false
- name: page
in: query
description: By default the first page is returned but you can specify any page number to retrieve objects
required: false
schema:
type: integer
format: int64
default: 1
- name: pageSize
in: query
description: The result is paginated. By the default, the number of objects in each page is 100 if this is omitted. You can specify your custom number (up to 999) in this parameter
required: false
schema:
type: integer
format: int64
default: 100
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunListResource'
security:
- Authorization: []
post:
tags:
- test-run
summary: Creates a Test Run
description: 'To create a Test Run under root or a container (Release, Test Cycle or Test Suite)
<strong>qTest Manager version:</strong> 6+You can optionally specify a parent in the request parameter to create its test runs.
The associated Test Case is specified in the request body'
operationId: createTestRun
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
201:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
description: The Test Run's properties and its associated Test Case
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/dataset:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values from dataset.
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Number of test runs can be created depend on number_of_rows property and it should not more than 100.
operationId: addTestRunWithParametersDataset
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateByDatasetResource'
description: "The Test Run's properties, its associated Test Case and specific data set \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>dataset_id:</em> Dataset id use for generate test runs. Dataset must be active and contains all parameters inside all test case steps. Dataset has at least 1 data row. \n\n<em>from_row:</em> Must be less or equal max rows in dataset. \n\n<em>number_of_rows:</em> number of test run can be create must be less or equal ((max rows - from_row) +1) and must be less than <em>100</em>."
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/manually:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values manual
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Maximum number of test runs can be created is 100.
operationId: addTestRunWithParameters
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateManualResource'
description: "The Test Run's properties, its associated Test Case and list of Test runs \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>test_runs (required):</em> list of test runs will be created by this API. For each test run, it will have list of test steps (by providing test step id) and their parameter values for each step e.g.(\"description_parameter_values\", and \"expected_parameter_values\"). \n\n<strong>You no need to specify <em>combined_type</em> and <em>number_of_combinations</em> in this api.<strong>"
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/randomize:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values random from selection combine type.
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Maximum number of test runs can be created depend on combine type.
operationId: addTestRunWithParametersRandomize
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateRandomResource'
description: "The Test Run's properties, its associated Test Case and combine type, number of combination \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>combined_type:</em> combine type for generate test runs with random test run value. Values can specify for this property are: <strong>1</strong> (for unique_value ) OR <strong>0</strong> (for unique_data ). \n\n<em>number_of_combinations:</em> number of test run can be create must be less or equal max possible created combinations based on selected combination_type and must less than <em>100</em>."
required: true
/api/v3/projects/{projectId}/test-runs/execution-statuses:
get:
tags:
- test-run
summary: Gets Test Run statuses
description: Gets Test Run statuses
operationId: getStatusValuable
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StatusResource'
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/subhierarchy:
get:
tags:
- test-run
summary: Gets a Sub Hierarchy
description: "To retrieve a Sub Hierarchy of a container (root, release, test-cycle) \n\n<strong>qTest Manager version:</strong> 9.3.4+"
operationId: getSubhierachy
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentType
in: query
description: parentType
required: false
schema:
type: string
- name: parentId
in: query
description: parentId
required: false
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationObjectTree'
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments:
get:
tags:
- test-run
summary: Gets all Comments of a Test Run
description: 'To retrieve all Comments of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: getTestRunComments
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResourceCommentResource'
security:
- Authorization: []
post:
tags:
- test-run
summary: Adds a Comment to a Test Run
description: 'To add a Comment to a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: addTestRunComment
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: The PID or ID of the Test Run.
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
description: The Comment's content
required: true
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments/{commentId}:
get:
tags:
- test-run
summary: Gets a Comment from a Test Run
description: 'To retrieve a specific Comment from a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: getTestRunCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run.
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the Comment
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
put:
tags:
- test-run
summary: Updates a Comment of a Test Run
description: 'To update a Comment of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: updateCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the comment which you want to update.
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
description: The Comment's updated content
required: true
delete:
tags:
- test-run
summary: Deletes a Comment of a Test Run
description: 'To delete a Comment of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: deleteCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run.
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the comment which you want to delete.
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}:
get:
tags:
- test-run
summary: Gets a Test Run
description: 'To retrieve a Test Run
<strong>qTest Manager version:</strong> 4+'
operationId: getTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run.
required: true
schema:
type: integer
format: int64
- name: expand
in: query
description: "Valid values include: \n\ni)<em>testcase</em> - to expand the associated Test Case in the response; \n\nii) <em>testcase.teststep</em> - to expand the associated Test Case and its Test Steps in the response"
required: false
schema:
type: string
- name: includeToscaProperties
in: query
description: "By default, Tosca properties of Test Run (imported from Tosca) are not included in the response. Specify includeToscaProperties=true to include them.\n\n <em>(tosca_guid, tosca_node_path, tosca_workspace_url, tosca_testevent_guid)</em>"
required: false
schema:
type: boolean
default: false
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
put:
tags:
- test-run
summary: Updates a Test Run
description: 'To update a Test Run or move it to another container
<strong>qTest Manager version:</strong> 6+'
operationId: updateTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run.
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container (Release, Test Cycle or Test Suite)
Input 0 (zero) to move the test run to under root
<strong>Important:</strong> If you use the request parameters, the request body will be ignored. That means the test run is being moved but it will not be updated with the properties specify in the request body'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em> and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
description: The Test Run's updated properties
required: true
delete:
tags:
- test-run
summary: Deletes a Test Run
description: 'To delete a Test Run
<strong>qTest Manager version:</strong> 6+'
operationId: deleteTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Message'
security:
- Authorization: []
components:
schemas:
TestStepResource:
type: object
required:
- description
- expected
properties:
customFieldInfo:
type: array
items:
$ref: '#/components/schemas/CustomFieldInfo'
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
id:
type: integer
format: int64
example: 111
description:
type: string
example: Test Step description
expected:
type: string
example: Test step expected result
order:
type: integer
format: int32
example: 1
minimum: 1
attachments:
type: array
items:
$ref: '#/components/schemas/AttachmentResource'
maxItems: 2147483647
minItems: 0
group:
type: integer
format: int32
called_test_case_name:
type: string
root_called_test_case_id:
type: integer
format: int64
called_test_case:
$ref: '#/components/schemas/TestCaseWithCustomFieldResource'
parent_test_step_id:
type: integer
format: int64
information:
$ref: '#/components/schemas/TestStepInformationVM'
plain_value_text:
type: string
parameter_values:
type: array
items:
type: string
called_test_case_id:
type: integer
format: int64
TestRunWithCustomFieldResource:
type: object
required:
- properties
- test_case
properties:
parentId:
type: integer
format: int64
example: 843974
parentType:
type: string
example: test-suite
enum:
- root
- release
- test-cycle
- test-suite
automation:
type: string
created:
type: string
format: date-time
testCaseId:
type: integer
format: int64
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
id:
type: integer
format: int64
example: 11595056
name:
type: string
example: What's New section
minLength: 1
maxLength: 500
order:
type: integer
format: int32
example: 2
pid:
type: string
example: TR-2
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
properties:
type: array
items:
$ref: '#/components/schemas/PropertyResource'
test_case:
$ref: '#/components/schemas/TestCaseWithCustomFieldResource'
latest_test_log:
$ref: '#/components/schemas/ShortTestLogResource'
test_case_version_id:
type: integer
format: int64
example: 13765789
test_case_version:
type: string
creator_id:
type: integer
format: int64
example: 5202
assign_parameter_values:
type: array
items:
$ref: '#/components/schemas/ParameterTestStepResource'
tosca_guid:
type: string
tosca_node_path:
type: string
tosca_workspace_url:
type: string
tosca_testevent_guid:
type: string
configuration_id:
type: string
format: uuid
PagedResourceCommentResource:
type: object
properties:
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
page:
type: integer
format: int32
example: 1
description: Current page
page_size:
type: integer
format: int32
example: 25
description: Current page size
total:
type: integer
format: int64
example: 100
description: Total record found
items:
type: array
description: Data of records
items:
$ref: '#/components/schemas/CommentResource'
TestCaseWithCustomFieldResource:
type: object
required:
- properties
properties:
links:
type: array
description: Link to resource
readOnly: true
items:
$ref: '#/components/schemas/Link'
id:
type: integer
format: int64
example: 1
description: ID of the Test Case
name:
type: string
example: Test Case 1
description: Name of the Test Case
minLength: 1
maxLength: 500
order:
type: integer
format: int32
example: 1
description: Display order of the Test Case
pid:
type: string
example: TC-1
description: PID of the Test Case
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
properties:
type: array
description: Fields value of the Test Case
items:
$ref: '#/components/schemas/PropertyResource'
web_url:
type: string
example: https://apitryout.qtestnet.com/p/1/portal/project#tab=testdesign&object=1&id=1
description: Web URL of the Test Case
readOnly: true
attachments:
type: array
description: Arrays of Attachment of the Test Case
items:
$ref: '#/components/schemas/AttachmentResource'
maxItems: 2147483647
minItems: 0
parent_id:
type: integer
format: int64
example: 2107628
description: Module ID of the Test Case
test_case_version_id:
type: integer
format: int64
example: 11
description: ID of Test Case Version
version:
type: string
description: Test Case Version of the Test Case
description:
type: string
example: Description of test case 1
description: Description of the Test Case
precondition:
type: string
example: Precondition of test case 1
description: Precondition of the Test Case
creator_id:
type: integer
format: int64
example: 1
description: ID of the User who create the Test Case
agent_ids:
type: array
items:
type: integer
format: int64
test_steps:
type: array
description: Arrays of Test Step of the Test Case
items:
$ref: '#/components/schemas/TestStepResource'
tosca_guid:
type: string
description: GUID of Tosca test case.
tosca_node_path:
type: string
description: Node Path of Tosca test case.
tosca_url:
type: string
tosca_test_case_unique_id:
type: string
tosca_state:
type: string
tosca_workspace_url:
type: string
last_mo
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tricentis/refs/heads/main/openapi/tricentis-test-run-api-openapi.yml