qTest Pulse API
The Tricentis qTest Pulse REST API for event-driven test automation orchestration — rules, triggers, actions, constants, executions and projects.
The Tricentis qTest Pulse REST API for event-driven test automation orchestration — rules, triggers, actions, constants, executions and projects.
swagger: "2.0"
info:
version: "2025.2.0"
title: qTest Pulse
externalDocs:
description: "Introduction to qTest Pulse API"
url: "https://documentation.tricentis.com/qtest/od/en/content/apis/apis/common_apis.htm"
# during dev, should point to your local machine
host: pulse-us-east-1.qtestnet.com
# basePath prefixes all resource paths
# this must match with REST_ENDPOINT in config
basePath: /api
#
schemes:
# tip: remove http to make production-grade
#- http
- https
# format of bodies a client can send (Content-Type)
consumes:
- application/json
- application/x-www-form-urlencoded
# format of the responses to the client (Accepts)
produces:
- application/json
securityDefinitions:
qtestToken:
type: apiKey
in: header
name: Authorization
qtestUrl:
type: apiKey
in: header
name: x-qtest-url
security:
- qtestToken: []
qtestUrl: []
paths:
/swagger:
x-swagger-pipe: swagger_raw
/me:
get:
tags:
- "user"
summary: Get current logged-in user
description: To get current logged-in user
responses:
<<: &default_responses
400:
$ref: "#/responses/BadRequest"
401:
$ref: "#/responses/Unauthorized"
403:
$ref: "#/responses/Forbidden"
default:
$ref: "#/responses/Default"
200:
description: OK
schema: &user_schema
$ref: "#/definitions/User"
put: &me_put
tags:
- "user"
summary: Update current user
parameters:
- name: user
in: body
required: true
schema:
$ref: "#/definitions/UserInput"
responses:
<<: *default_responses
200:
description: OK
schema: *user_schema
patch: *me_put
/projects:
get:
tags:
- "project"
summary: Get all projects
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items: &project_schema
$ref: "#/definitions/Project"
/projects/{id}:
parameters: &id_path_param
- $ref: "#/parameters/IdPath"
get:
tags:
- "project"
summary: Get a project
description: To get a project by id
responses:
<<: *default_responses
200:
description: OK
schema: *project_schema
/constants:
get:
tags:
- "constant"
summary: Get all constants of a project
description: To get all constants of a project
parameters: &pagination_query_params
- $ref: "#/parameters/ProjectIdQuery"
- $ref: "#/parameters/FirstQuery"
- $ref: "#/parameters/OffsetQuery"
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items: &constant_schema
$ref: "#/definitions/Constant"
post:
tags:
- "constant"
summary: Create a constant
description: To create a constant
parameters: &constant_body_param
- name: constant
in: body
required: true
schema:
$ref: "#/definitions/ConstantInput"
responses:
<<: *default_responses
201:
description: Created
schema: *constant_schema
/constants/{id}:
parameters: *id_path_param
get:
tags:
- "constant"
summary: Get a constant
description: To get a constant by id
responses:
<<: *default_responses
200:
description: OK
schema: *constant_schema
put: &constant_put
tags:
- "constant"
summary: Update a constant
description: To update a constant
parameters: *constant_body_param
responses:
<<: *default_responses
200:
description: OK
schema: *constant_schema
patch: *constant_put
delete:
tags:
- "constant"
summary: Delete a constant
description: To delete a constant
responses: &delete_responses
<<: *default_responses
200:
description: OK
schema:
type: string
/triggers:
get:
tags:
- "trigger"
summary: Get all triggers of a project
description: To get all triggers of a project
parameters: *pagination_query_params
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items: &trigger_schema
$ref: "#/definitions/Trigger"
post:
tags:
- "trigger"
summary: Create a trigger
description: To create a trigger
parameters: &trigger_body_param
- name: trigger
in: body
required: true
schema:
$ref: "#/definitions/TriggerInput"
responses:
<<: *default_responses
201:
description: Created
schema: *trigger_schema
/triggers/{id}:
parameters: *id_path_param
get:
tags:
- "trigger"
summary: Get a trigger
description: To get a trigger by id
responses:
<<: *default_responses
200:
description: OK
schema: *trigger_schema
put: &trigger_put
tags:
- "trigger"
summary: Update a trigger
description: To update a trigger
parameters: *trigger_body_param
responses:
<<: *default_responses
200:
description: OK
schema: *trigger_schema
patch: *trigger_put
delete:
tags:
- "trigger"
summary: Delete a trigger
description: To delete a trigger
responses: *delete_responses
/actions:
get:
tags:
- "action"
summary: Get all actions of a project
description: To get all actions of a project
parameters: *pagination_query_params
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items: &action_schema
$ref: "#/definitions/Action"
post:
tags:
- "action"
summary: Create an action
description: To create an action
parameters: &action_body_param
- name: action
in: body
required: true
schema:
$ref: "#/definitions/ActionInput"
responses:
<<: *default_responses
201:
description: Created
schema: *action_schema
/actions/{id}:
parameters: *id_path_param
get:
tags:
- "action"
summary: Get an action
description: To get an action by id
responses:
<<: *default_responses
200:
description: OK
schema: *action_schema
put: &action_put
tags:
- "action"
summary: Update an action
description: To update an action
parameters: *action_body_param
responses:
<<: *default_responses
200:
description: OK
schema: *action_schema
patch: *action_put
delete:
tags:
- "action"
summary: Delete an action
description: To delete an action
responses: *delete_responses
/rules:
get:
tags:
- "rule"
summary: Get all rules of a project
description: To get all rules of a project
parameters: *pagination_query_params
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items: &rule_schema
$ref: "#/definitions/Rule"
post:
tags:
- "rule"
summary: Create a rule
description: To create a rule
parameters: &rule_body_param
- name: rule
in: body
required: true
schema:
$ref: "#/definitions/RuleInput"
responses:
<<: *default_responses
201:
description: Created
schema: *rule_schema
/rules/{id}:
parameters: *id_path_param
get:
tags:
- "rule"
summary: Get a rule
description: To get a rule by id
responses:
<<: *default_responses
200:
description: OK
schema: *rule_schema
put: &rule_put
tags:
- "rule"
summary: Update a rule
parameters: *rule_body_param
responses:
<<: *default_responses
200:
description: OK
schema: *rule_schema
patch: *rule_put
delete:
tags:
- "rule"
summary: Delete a rule
description: To delete a rule
responses: *delete_responses
/executions:
get:
tags:
- "execution"
summary: Get all executions of an action
description: To get all execution of an action
parameters:
- $ref: "#/parameters/ProjectIdQuery"
- $ref: "#/parameters/ActionIdQuery"
- $ref: "#/parameters/FromQuery"
- $ref: "#/parameters/ToQuery"
- $ref: "#/parameters/FirstQuery"
- $ref: "#/parameters/OffsetQuery"
responses:
<<: *default_responses
200:
description: OK
schema:
type: array
items:
$ref: "#/definitions/BasicExecution"
/executions/{id}:
parameters: *id_path_param
get:
tags:
- "execution"
summary: Get an execution
description: To get an execution by id
responses:
<<: *default_responses
200:
description: OK
schema:
$ref: "#/definitions/Execution"
# common parameters
parameters:
IdPath:
name: id
in: path
required: true
type: string
description: ID of the project
ProjectIdQuery:
name: projectId
in: query
required: true
type: string
description: ID of the project
ActionIdQuery:
name: actionId
in: query
type: string
description: ID of the action in the project
FromQuery:
name: from
in: query
type: integer
format: int64
description: Timestamp of the begining of an execution in milliseconds
ToQuery:
name: to
in: query
type: integer
format: int64
description: Timestamp of the begining of an execution in milliseconds
FirstQuery:
name: first
in: query
type: integer
format: int64
description: Return only the first N results
OffsetQuery:
name: offset
in: query
type: integer
format: int64
description: Skip the first N results
# common reponses
responses:
Default:
description: Error
schema: &error_schema
$ref: "#/definitions/Error"
BadRequest:
description: Bad Request
schema: *error_schema
Unauthorized:
description: Unauthorized
schema: *error_schema
Forbidden:
description: Forbidden
schema: *error_schema
# complex objects have schema definitions
definitions:
Error:
required:
- message
properties:
message:
type: string
Application:
required:
- name
- logoUrl
- displayOrder
- url
- hasLicense
- hasPermission
properties:
name:
type: string
logoUrl:
type: string
displayOrder:
type: integer
format: int32
url:
type: string
hasLicense:
type: boolean
hasPermission:
type: boolean
Account:
required:
- qtestClientId
- name
properties:
qtestClientId:
type: string
name:
type: string
UserSettings:
properties:
notifiedVersion:
type: string
UserInput:
properties:
settings:
$ref: "#/definitions/UserSettings"
User:
allOf:
- $ref: "#/definitions/Doc"
- $ref: "#/definitions/UserInput"
- required:
- qtestUserId
- username
- firstName
- lastName
- avatar
- account
- applications
- projects
properties:
qtestUserId:
type: string
username:
type: string
firstName:
type: string
lastName:
type: string
avatar:
type: string
account:
$ref: "#/definitions/Account"
applications:
type: array
items:
$ref: "#/definitions/Application"
projects:
type: array
items:
$ref: "#/definitions/Project"
Doc:
required:
- id
properties:
id:
type: string
ProjectDoc:
required:
- projectId
properties:
projectId:
type: string
Project:
allOf:
- $ref: "#/definitions/Doc"
- required:
- qtestProjectId
- name
properties:
qtestProjectId:
type: integer
format: int64
name:
type: string
ConstantInput:
allOf:
- $ref: "#/definitions/ProjectDoc"
- required:
- name
- hidden
properties:
name:
type: string
hidden:
type: boolean
value:
type: string
Constant:
allOf:
- $ref: "#/definitions/Doc"
- $ref: "#/definitions/ConstantInput"
TriggerInput:
allOf:
- $ref: "#/definitions/ProjectDoc"
- required:
- name
properties:
name:
type: string
Trigger:
allOf:
- $ref: "#/definitions/Doc"
- $ref: "#/definitions/TriggerInput"
ActionInput:
allOf:
- $ref: "#/definitions/ProjectDoc"
- required:
- name
properties:
name:
type: string
description:
type: string
code:
type: string
Action:
allOf:
- $ref: "#/definitions/Doc"
- $ref: "#/definitions/ActionInput"
RuleInput:
allOf:
- $ref: "#/definitions/ProjectDoc"
- required:
- name
- active
properties:
name:
type: string
active:
type: boolean
triggerId:
type: string
actionIds:
type: array
items:
type: string
Rule:
allOf:
- $ref: "#/definitions/Doc"
- $ref: "#/definitions/RuleInput"
BasicExecution:
allOf:
- $ref: "#/definitions/Doc"
- required:
- actionId
- status
properties:
actionId:
type: string
status:
type: string
enum: [pending, executing, failed, completed]
payload:
properties:
sample:
type: string
start:
type: integer
format: int64
end:
type: integer
format: int64
out:
type: string
err:
type: string
result:
type: string
createAt:
type: string
Execution:
allOf:
- $ref: "#/definitions/BasicExecution"
- required:
- actionId
- status
properties:
actionId:
type: string
status:
type: string
enum: [pending, executing, failed, completed]
payload:
properties:
sample:
type: string
start:
type: integer
format: int64
end:
type: integer
format: int64
out:
type: string
err:
type: string
result:
type: string
createAt:
type: string
# API groups
tags:
- name: "user"
description: "User API"
- name: "project"
description: "Project API"
- name: "constant"
description: "Constant API"
- name: "trigger"
description: "Trigger API"
- name: "action"
description: "Action API"
- name: "rule"
description: "Rule API"
- name: "execution"
description: "Execution API"