qTest Manager API v3

The core Tricentis qTest test management REST API — projects, releases, modules, requirements, test cases, test steps, test cycles, test suites, test runs, test logs, defects, attachments, users, fields and search. Authentication is a bearer token issued by the qTest login endpoint.

OpenAPI Specification

tricentis-qtest-manager-openapi.yaml Raw ↑
---
swagger: "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"
host: "apitryout.qtestnet.com"
basePath: "/"
tags:
- name: "attachment"
  description: "Attachment API"
- name: "auth-systems"
  description: "Authentication Systems API"
- name: "automation-job"
  description: "Automation Job API"
- name: "build"
  description: "Build API"
- name: "common"
  description: "Common API"
- name: "defect"
  description: "Defect API"
- name: "field"
  description: "Field API"
- name: "groups"
  description: "User Group API"
- name: "integration-settings"
  description: "Integration Settings"
- name: "login"
  description: "Login API"
- name: "module"
  description: "Module API"
- name: "object-link"
  description: "Object Link API"
- name: "project"
  description: "Project API"
- name: "release"
  description: "Release API"
- name: "requirement"
  description: "Requirement API"
- name: "search"
  description: "Search API"
- name: "site-templates"
  description: "Site Templates API"
- name: "test-case"
  description: "Test Case API"
- name: "test-cycle"
  description: "Test Cycle API"
- name: "test-log"
  description: "Test Log API"
- name: "test-run"
  description: "Test Run API"
- name: "test-suite"
  description: "Test Suite API"
- name: "tosca"
  description: "Tosca Integration API"
- name: "user"
  description: "User API"
- name: "user-profile"
  description: "User Profile API"
- name: "webhook"
  description: "Webhook"
schemes:
- "https"
paths:
  /api/v3.1/projects/{projectId}/test-runs/{testRunId}/auto-test-logs:
    post:
      tags:
      - "test-log"
      summary: "Submits multiple test results"
      description: "To submit Automation Test Logs of multiple Test Runs\n\n<strong>qTest\
        \ Manager version:</strong> 8.0.2+"
      operationId: "submitAutomationTestLogs"
      parameters:
      - name: "projectId"
        in: "path"
        description: "ID of the project"
        required: true
        type: "integer"
        format: "int64"
      - in: "body"
        name: "body"
        description: "<em>test_suite:</em> ID of the Test Suite where the submitted\
          \ Test Runs will be located\n\n<em>parent_module:</em> In case there has\
          \ been no Test Case associated with the submitted Test Run, a new automation\
          \ Test Case will be created. The new Test Cases are located under a module\
          \ named <em>Automation</em>. If you specify an ID for parent_module, the\
          \ <em>Automation</em> module will be located under the specified module.\
          \ Otherwise, the <em>Automation</em> module is located directly under root\n\
          \n<em>execution_date (required):</em> Execution date in <em>YYYY-mm-dd</em>\
          \ format\n\n<em>test_logs (required):</em> The array of TestLog objects.\
          \ The below are TestLog attributes\n\n<em>status (required):</em> The automation\
          \ result values that were mapped with Test Run Result in qTest automation\
          \ settings\n\n<em>exe_start_date (required):</em> Execution start time\n\
          \n<em>exe_end_date (required):</em> Execution end time\n\n<em>name (required):</em>\
          \ Test Run name\n\n<em>automation_content (required):</em> An XML formatted\
          \ string that contains the class test/ group test/ package test\n\n<em>attachments:</em>\
          \ An array of the Attachment objects\n\n<em>note:</em> Test Log note\n\n\
          <em>test_step_logs:</em> An of TestStepLog objects. You can specify Test\
          \ Steps' order in the request. It must be continous series of numbers, starting\
          \ from zero, or it will throw an error. The order will be used when the\
          \ Test Case is created or updated in qTest. If the order is omitted, Test\
          \ Steps will be alphabetically sorted when creating or updating Test Case\n\
          \n<em>testcase_properties:</em> An of Testcase properties objects. You can\
          \ specify Test case properties' order in the request. \n\n<em>tosca_guid</em>:\
          \ GUID of Tosca test case. Use for creating Tosca Test Case\n\n<em>tosca_node_path</em>:\
          \ Node Path of Tosca test case. Use for creating Tosca Test Case\n\n<em>tosca_guid</em>\
          \ and <em>tosca_node_path</em> are optional but must be specified in pair"
        required: true
        schema:
          $ref: "#/definitions/AutomationRequest"
      - name: "type"
        in: "query"
        description: "Always input <em>automation</em> for this parameter"
        required: true
        type: "string"
        enum:
        - "automation"
      - name: "testRunId"
        in: "path"
        description: "This should always be <strong>0 (zero)</strong> or else it will\
          \ throw an exception"
        required: true
        type: "integer"
        format: "int64"
      - name: "escapeXml"
        in: "query"
        description: "<em>escapeXml=true</em> - default value. &gt and &lt in <em>Automation\
          \ Content</em> field are encoded\n\n<em>escapeXml=false</em> - the Automation\
          \ Content field is not encoded"
        required: false
        type: "boolean"
        default: false
      - name: "userId"
        in: "query"
        required: false
        type: "string"
      responses:
        201:
          description: "Test results are submitted successfully to qTest Manager\n\
            \n<em>id:</em> ID of the submission job. You will need this Id to check\
            \ the job status using <strong>GET /api/v3/projects/queue-processing/{jobId}</strong>\n\
            \n<em>state:</em> Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
            \ FAILED, PENDING, and SUCCESS"
          schema:
            $ref: "#/definitions/QueueProcessingResponse"
        400:
          description: "It failed to submit test results to qTest Manager. Failure\
            \ reasons may be: i) invalid project ID; ii) <em>testRunId</em> is not\
            \ 0 (zero) iii) the value of parameter <em>type</em> is not <em>Automation</em>"
        413:
          description: ""
      security:
      - Authorization: []
  /api/v3/admin-profiles/current:
    get:
      tags:
      - "user-profile"
      summary: "Gets current User's Admin Profile"
      description: "To retrieve your Admin Profile\n\n<strong>qTest Manager version:</strong>\
        \ 4+"
      operationId: "getCurrent"
      parameters: []
      responses:
        200:
          description: "Return authorities list of current admin"
          schema:
            $ref: "#/definitions/AdminProfile"
      security:
      - Authorization: []
  /api/v3/auth-systems:
    get:
      tags:
      - "auth-systems"
      summary: "Get multiple Authentication Systems"
      description: "To get multiple Authentication Systems"
      operationId: "getAll"
      parameters: []
      responses:
        200:
          description: "Return list of Authentication Systems"
          schema:
            $ref: "#/definitions/AuthSystemResponse"
      security:
      - Authorization: []
  /api/v3/auth-systems/ldap/{ldapAuthConfigId}/import:
    post:
      tags:
      - "auth-systems"
      summary: "Associate Manager users with LDAP users"
      description: "Associate Manager users with LDAP users authentication LDAP config"
      operationId: "importLDapUsers"
      parameters:
      - name: "ldapAuthConfigId"
        in: "path"
        description: "Id of the Authentication config"
        required: true
        type: "integer"
        format: "int64"
      - name: "mergeUser"
        in: "query"
        description: "Option to merge LDAP account to qTest account if qTest email\
          \ already exists in qTest (support true/false value, <strong>default = false</strong>)"
        required: false
        type: "boolean"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "array"
          items:
            $ref: "#/definitions/LdapUserResource"
      responses:
        200:
          description: "Return list of success users and errors if had."
          schema:
            $ref: "#/definitions/ResponseWrapper"
      security:
      - Authorization: []
  /api/v3/auth-systems/ldap/{ldapAuthConfigId}/users:
    get:
      tags:
      - "auth-systems"
      summary: "Get all LDAP users of an authentication LDAP config"
      description: "Get all LDAP users of an authentication LDAP config with pagination\
        \ supported. Users are mapped with qTest users won't be returned.\n\nIf <strong>pageSize</strong>\
        \ and <strong>page</strong> is omitted, all users will be returned without\
        \ any default paging data."
      operationId: "getAllLdapUsers"
      parameters:
      - name: "ldapAuthConfigId"
        in: "path"
        description: "Id of the Authentication config"
        required: true
        type: "integer"
        format: "int64"
      - name: "pageSize"
        in: "query"
        description: "Number of of item count per page. If this <strong>pageSize</strong>\
          \ and <strong>page</strong> is omitted, all users will be returned without\
          \ any default paging data."
        required: false
        type: "integer"
        default: 100
        format: "int64"
      - name: "page"
        in: "query"
        description: "Page number that you want to get the result. If this <strong>pageSize</strong>\
          \ and <strong>page</strong> is omitted, all users will be returned without\
          \ any default paging data."
        required: false
        type: "integer"
        default: 1
        format: "int64"
      responses:
        200:
          description: "Return list of LDAP users"
          schema:
            $ref: "#/definitions/LDAPUsersResponse"
      security:
      - Authorization: []
  /api/v3/automation/automation-agents:
    post:
      tags:
      - "automation-job"
      summary: "Search automation agents"
      description: "To search automation agents in projects that user is assigned\
        \ to \n\n<em>fields:</em> specify which property of Automation Agent you want\
        \ to include in the response. If you omit it or specify an asterisk (*), all\
        \ of following fields are included: id, name, project_id, host_id, framework,\
        \ active, configuration\n\n\n<em>query:</em> specify a structured query (criteria,\
        \ operator and value) with one or multiple clauses to search for Automation\
        \ Agents. Following are supporting criteria\n\n| Criteria | Operators | Value\
        \ |\n|-----|-----|-------|\n| name, framework   |  <>, ~, is empty, =, !~,\
        \ is not empty   | string     |\n |host_name | <>, ~, =, !~ | string | \n\
        | id, project_id, host_id | <>, >, <, <=, >=, =| id \n | active | = | active,\
        \ inactive\n\n"
      operationId: "searchAutomationAgents"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/AutomationArtifactSearchParams"
      - 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
        type: "integer"
        default: 100
        format: "int64"
      - name: "page"
        in: "query"
        description: "By default the first page is returned but you can specify any\
          \ page number to retrieve objects"
        required: false
        type: "integer"
        default: 1
        format: "int64"
      responses:
        200:
          description: ""
          schema:
            $ref: "#/definitions/AutomationAgentSearchResult"
      security:
      - Authorization: []
  /api/v3/automation/jobs/schedule/create:
    post:
      tags:
      - "automation-job"
      summary: "Create a Schedule"
      description: "To create a new Schedule which will be executed immediately\n\n\
        <strong>NOTE:</strong> Try It Out function will not work for this API\n\n\
        <strong>qTest Manager version:</strong> 6+\""
      operationId: "createSchedule"
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/AutomationScheduleCreationAPI"
      responses:
        201:
          description: "Schedule is created"
          schema:
            type: "integer"
            format: "int64"
      security:
      - Authorization: []
  /api/v3/fields/{objectType}:
    get:
      tags:
      - "field"
      summary: "Gets all site field of an object type"
      description: "To get all fields (at site level) for Release, Build, Requirement,\
        \ Test Case, Test Step, Test Suite, Test Run, or Defect"
      operationId: "getAllSiteFields"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "page"
        in: "query"
        description: "By default the first page is returned but you can specify any\
          \ page number to retrieve objects"
        required: false
        type: "integer"
        default: 1
        format: "int64"
      - 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
        type: "integer"
        default: 100
        format: "int64"
      responses:
        200:
          description: "Successfully get a list of Site Fields"
          headers:
            X-Item-Total:
              type: "integer"
              format: "int32"
              description: "Total number of values available"
            Link:
              type: "string"
              format: "uri"
              description: "Contain one or more hypermedia link relations"
          schema:
            $ref: "#/definitions/FieldResourceSwagger"
        400:
          description: "Invalid data sent to get all Site Fields"
        403:
          description: "User does not have permission to get Site Fields"
      security:
      - Authorization: []
    post:
      tags:
      - "field"
      summary: "Creates a Custom Site Field of an Object Type"
      description: "To create a new Site Field for Release, Build, Requirement, Test\
        \ Case, Test Step, Test Suite, Test Run, or Defect"
      operationId: "createCustomSiteField"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - in: "body"
        name: "body"
        description: "The Site field's properties and values\n\n<strong>label (required)</strong>:\
          \ specify display name of the field\n\n<strong>data_type (required)</strong>:\
          \ specify the field type. Its valid values include\n\n- 1 - Text box\n\n\
          - 2 - Text area\n\n- 3 - Combo box\n\n- 4 - Date picker\n\n- 5 - User list\n\
          \n- 6 - Rich text editor\n\n- 7 - Number\n\n- 8 - Check box\n\n- 9 - Date\
          \ time picker\n\n- 12 - URL\n\n- 17 - Multiple selection combobox\n\nIn\
          \ case you are creating a multiple picklist typed field (data_type's value\
          \ is 8 or 17), you will need to specify <em>multiple=true</em>\n\nIn case\
          \ you are creating a picklist typed field, you can specify the field's values\
          \ in the <em>allowed_values array</em>\n\nOrder is not applicable when creating\
          \ new field\n\nFor Test Steps, \n- You can not create more than 2 custom\
          \ fields \n\n- You can not set field as required \n\n- Number of characters\
          \ in label should be less than or equal to 16 \n\n- You can only select\
          \ Rich text editor / Combo Box / User List as <em>data_type</em> "
        required: true
        schema:
          $ref: "#/definitions/FieldInputResource"
      responses:
        201:
          description: ""
          schema:
            $ref: "#/definitions/FieldResource"
        400:
          description: "Invalid data sent to create a Site Field"
        403:
          description: "User does not have permission to create a Site Field"
      security:
      - Authorization: []
  /api/v3/fields/{objectType}/{fieldId}:
    get:
      tags:
      - "field"
      summary: "Gets a Custom Site Field of an Object Type"
      description: "To get a custom field (at site level) for Release, Build, Requirement,\
        \ Test Case, Test Step, Test Suite, Test Run, or Defect"
      operationId: "getCustomSiteField"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the custom field"
        required: true
        type: "integer"
        format: "int64"
      responses:
        200:
          description: "Successfully get a Site Field"
          schema:
            $ref: "#/definitions/FieldResourceSwagger"
        400:
          description: "Invalid data sent to get a Site Field"
        403:
          description: "User does not have permission to get Site Field"
        404:
          description: "Field does not exist"
      security:
      - Authorization: []
    put:
      tags:
      - "field"
      summary: "Updates a Custom Site Field of an Object Type"
      description: "To update a custom field (at site level) for Release, Build, Requirement,\
        \ Test Case, Test Step, Test Suite, Test Run, or Defect"
      operationId: "updateCustomSiteField"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the custom field"
        required: true
        type: "integer"
        format: "int64"
      - in: "body"
        name: "body"
        description: "The Site Field's updated properties & values\n\nNotes:\n\n-\
          \ Not allow to update <strong>data_type</strong>\n\n- To delete a value\
          \ of a Combo box/Checkbox or Multiple selection combo box, exclude that\
          \ value out of \"allowed_values\"\n\n- To add more allowed_values for Site\
          \ Field, refer [here](#/field/createSiteFieldAllowedValues)\n\n- To update\
          \ list allowed_values of Site Field, refer [here](#/field/updateSiteFieldAllowedValues)\n\
          \n- Can not set field as required for test steps\n\n- Number of characters\
          \ in label should be less than or equal to 16 for test steps"
        required: true
        schema:
          $ref: "#/definitions/FieldInputResource"
      responses:
        200:
          description: "Successfully updated a Site Field"
          schema:
            $ref: "#/definitions/FieldResource"
        400:
          description: "Invalid data sent to update a Site Field"
        403:
          description: "User does not have permission to update Site Field"
        404:
          description: "Field does not exist"
      security:
      - Authorization: []
    delete:
      tags:
      - "field"
      summary: "Deletes a Custom Site Field of an Object Type"
      description: "To delete a custom field (at site level) for Release, Build, Requirement,\
        \ Test Case, Test Step, Test Suite, Test Run, or Defect"
      operationId: "deleteCustomSiteField"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the custom field"
        required: true
        type: "integer"
        format: "int64"
      responses:
        200:
          description: "Successfully updated a Site Field"
          schema:
            type: "object"
        400:
          description: "Invalid data sent to update a Site Field"
        403:
          description: "User does not have permission to update Site Field"
        404:
          description: "Field does not exist"
      security:
      - Authorization: []
  /api/v3/fields/{objectType}/{fieldId}/allowed-values:
    get:
      tags:
      - "field"
      summary: "Gets all allowed values of a Site Field"
      description: "To get all allowed values of a Site Field with Combo box/Multi\
        \ selection combo box/Check box/User list data type"
      operationId: "getSiteFieldAllowedValues"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the field"
        required: true
        type: "integer"
        format: "int64"
      - name: "page"
        in: "query"
        description: "By default the first page is returned but you can specify any\
          \ page number to retrieve objects"
        required: false
        type: "integer"
        default: 1
        format: "int64"
      - 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
        type: "integer"
        default: 100
        format: "int64"
      responses:
        200:
          description: "Successfully get allowed values"
          headers:
            X-Item-Total:
              type: "integer"
              format: "int32"
              description: "Total number of values available"
            Link:
              type: "string"
              format: "uri"
              description: "Contain one or more hypermedia link relations"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/AllowedValueResource"
        400:
          description: "Invalid field"
        403:
          description: "User does not have permission to get Site Field"
        404:
          description: "Field does not exist"
      security:
      - Authorization: []
    post:
      tags:
      - "field"
      summary: "Creates allowed values of a Site Field"
      description: "Creates maximum 100 allowed values of a Site Field with Combo\
        \ box/Multi selection combo box/Check box data type"
      operationId: "createSiteFieldAllowedValues"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the field"
        required: true
        type: "integer"
        format: "int64"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "array"
          items:
            $ref: "#/definitions/AllowedValueResource"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/AllowedValueResponseResource"
        201:
          description: "Successfully create allowed values"
        400:
          description: "Invalid field or value"
        403:
          description: "User does not have permission to create Site Field allowed\
            \ value"
        404:
          description: "Field does not exist"
      security:
      - Authorization: []
  /api/v3/fields/{objectType}/{fieldId}/allowed-values/{value}:
    put:
      tags:
      - "field"
      summary: "Updates an allowed value of a Site Field"
      description: "Update allowed values of a Site Field with Combo box/Multi selection\
        \ combo box/Check box data type"
      operationId: "updateSiteFieldAllowedValues"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the field"
        required: true
        type: "integer"
        format: "int64"
      - name: "value"
        in: "path"
        description: "ID (property \"value\") of allowed value"
        required: true
        type: "integer"
        format: "int64"
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/AllowedValueInputResource"
      responses:
        200:
          description: "Successfully update allowed values"
          schema:
            $ref: "#/definitions/CustomeResourceSupport"
        400:
          description: "Invalid field or value"
        403:
          description: "User does not have permission to update Site Field allowed\
            \ value"
        404:
          description: "Field or allowed value does not exist"
      security:
      - Authorization: []
    delete:
      tags:
      - "field"
      summary: "Deletes an allowed value of a Site Field"
      description: "To delete an allowed value of a Site Field with Combo box/Multi\
        \ selection combo box/Check box data type"
      operationId: "deleteSiteFieldValue"
      parameters:
      - name: "objectType"
        in: "path"
        description: "Valid values include releases, builds, requirements, test-cases,\
          \ test-steps, defects, test-suites and test-runs"
        required: true
        type: "string"
        enum:
        - "requirements"
        - "test-cases"
        - "defects"
        - "test-runs"
        - "test-suites"
        - "releases"
        - "builds"
        - "test-steps"
      - name: "fieldId"
        in: "path"
        description: "ID of the field"
        required: true
        type: "integer"
        format: "int64"
      - name: "value"
        in: "path"
        description: "ID (property \"value\") of allowed value"
        required: true
        type: "integer"
        format: "int64"
      responses:
        200:
          description: "Successfully delete an allowed value"
          schema:
            type: "object"
        400:
          description: "Invalid field or value"
        403:
          description: "User does not have permission to delete Site Field's value"
        404:
          description: "Field or value does not exist"
      security:
      - Authorization: []
  /api/v3/groups:
    get:
      tags:
      - "groups"
      summary: "Get multiple UserGroups"
      description: "To get multiple UserGroups"
      operationId: "getAllUserGroups"
      parameters: []
      responses:
        200:
          description: "Return list of UserGroups"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/UserGroupResource"
      security:
      - Authorization: []
    post:
      tags:
      - "groups"
      summary: "Create custom UserGroup"
      description: "To create new custom UserGroup"
      operationId: "createCustomUserGroup"
      parameters:
      - in: "body"
        name: "body"
        description: "<em>name (required):</em> Name of UserGroup\n\n<em>description:</em>\
          \ Description of UserGroup\n\n<em>is_default:</em> Set this UserGroup as\
          \ default group for new user\n\n<em>user_ids:</em> List of userId will be\
          \ assign to this group after created\n\n<em>authority_names:</em> List of\
          \ authorities for this UserGroup. Values can be: [ ROLE_ADMINCONFIGURATION,\
          \ ROLE_ADMININFORMATION, ROLE_INSIGHTSEDITOR, ROLE_INSIGHTSEDITOR, ROLE_LAUNCHACCESS,\
          \ ROLE_PROFILEADMIN, ROLE_PROFILEVIEWER, ROLE_PROJECTARCHIVER, ROLE_PROJECTCREATOR,\
          \ ROLE_PROJECTUPDATER, ROLE_PROJECTVIEWER, ROLE_PULSEACCESS, ROLE_SITELEVELFIELD,\
          \ ROLE_USERADMIN, ROLE_USERGROUPMANAGER, ROLE_ANALYTICSVIEWER ]"
        required: true
        schema:
          $ref: "#/definitions/UserGroupResource"
      responses:
        200:
          description: "Return newly created UserGroup"
          schema:
            $ref: "#/definitions/UserGroupResource"
      security:
      - Authorization: []
  /api/v3/projects:
    get:
      tags:
      - "project"
      summary: "Gets multiple Projects"
      description: "To retrieve all Projects which the requested qTest  Manager account\
        \ can access to\n\n<strong>qTest Manager version:</strong> 4+"
      operationId: "getProjects"
      parameters:
      - name: "expand"
        in: "query"
        description: "<em>expand=userprofile</em> - to include your profile and permissions\
          \ in each project"
        required: false
        type: "string"
        enum:
        - "userprofile"
      - name: "assigned"
        in: "query"
        description: "<em>assigned=true</em> - default value. Only the projects which\
          \ the requested user has access to\n\n<em>assigned=false</em> - Users with\
          \ admin profile can use this value to retrieve all projects, regardless\
          \ of having access"
        required: false
        type: "boolean"
      - name: "page"
        in: "query"
        description: "By default, all projects are returned; but you can specify any\
          \ page number to retrieve objects"
        required: false
        type: "integer"
        default: 1
        format: "int64"
      - 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
        type: "integer"
        default: 100
        forma

# --- truncated at 32 KB (408 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tricentis/refs/heads/main/openapi/tricentis-qtest-manager-openapi.yaml