qTest Pulse API

The Tricentis qTest Pulse REST API for event-driven test automation orchestration — rules, triggers, actions, constants, executions and projects.

OpenAPI Specification

tricentis-qtest-pulse-openapi.yaml Raw ↑
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"