Qase defects API

Defects raised against failed test results.

Work with this as data

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/qase-defects-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qase-defects-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Qase TestOps API v1 cases defects API
  description: The Qase TestOps API v1 is a token-authenticated REST API for the Qase test management platform. It exposes the core test management domain over HTTPS - Projects, Test Cases, Test Suites, Test Runs, Test Results, Defects, and Test Plans - so teams can create and manage test cases, launch and complete test runs, publish automated test results from CI pipelines, and track defects programmatically. Authentication uses a personal or application API token passed in the `Token` header. Most collection endpoints are scoped by a project code (a 2-10 character identifier), and support limit/offset pagination. This description grounds a representative subset of the full surface documented at developers.qase.io; the machine-readable source specification is published at github.com/qase-tms/specs.
  version: '1.0'
  contact:
    name: Qase
    url: https://developers.qase.io
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.qase.io/v1
  description: Qase TestOps API v1
security:
- TokenAuth: []
tags:
- name: defects
  description: Defects raised against failed test results.
paths:
  /defect/{code}:
    parameters:
    - $ref: '#/components/parameters/Code'
    get:
      operationId: get-defects
      tags:
      - defects
      summary: Get all defects
      description: Retrieves all defects stored in the selected project.
      parameters:
      - name: status
        in: query
        description: 'Possible values: open, resolved, in_progress, invalid.'
        schema:
          type: string
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: A list of defects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefectListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /defect/{code}/{id}:
    parameters:
    - $ref: '#/components/parameters/Code'
    - $ref: '#/components/parameters/Id'
    get:
      operationId: get-defect
      tags:
      - defects
      summary: Get a specific defect
      description: Retrieves a specific defect by id.
      responses:
        '200':
          description: A defect.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefectResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      operationId: delete-defect
      tags:
      - defects
      summary: Delete a specific defect
      description: Deletes a specific defect by id.
      responses:
        '200':
          description: Deletion result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /defect/{code}/resolve/{id}:
    parameters:
    - $ref: '#/components/parameters/Code'
    - $ref: '#/components/parameters/Id'
    patch:
      operationId: resolve-defect
      tags:
      - defects
      summary: Resolve a specific defect
      description: Marks a specific defect as resolved.
      responses:
        '200':
          description: Resolve result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /defect/{code}/status/{id}:
    parameters:
    - $ref: '#/components/parameters/Code'
    - $ref: '#/components/parameters/Id'
    patch:
      operationId: update-defect-status
      tags:
      - defects
      summary: Update a defect status
      description: Updates the status of a specific defect (open or in progress).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                  - open
                  - in_progress
      responses:
        '200':
          description: Status update result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    DefectResponse:
      type: object
      properties:
        status:
          type: boolean
        result:
          $ref: '#/components/schemas/Defect'
    Defect:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        actual_result:
          type: string
        severity:
          type: integer
        status:
          type: string
        milestone_id:
          type: integer
    IdResponse:
      type: object
      properties:
        status:
          type: boolean
          example: true
        result:
          type: object
          properties:
            id:
              type: integer
    BaseResponse:
      type: object
      properties:
        status:
          type: boolean
          example: true
    DefectListResponse:
      type: object
      properties:
        status:
          type: boolean
        result:
          type: object
          properties:
            total:
              type: integer
            filtered:
              type: integer
            count:
              type: integer
            entities:
              type: array
              items:
                $ref: '#/components/schemas/Defect'
    Error:
      type: object
      properties:
        status:
          type: boolean
          example: false
        errorMessage:
          type: string
        errorFields:
          type: array
          items:
            type: object
            additionalProperties: true
  parameters:
    Code:
      name: code
      in: path
      required: true
      description: Code of the project, uppercase, 2-10 characters.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: A number of entities in result set. Default is 10, max is 100.
      schema:
        type: integer
        default: 10
        maximum: 100
    Id:
      name: id
      in: path
      required: true
      description: Identifier of the entity.
      schema:
        type: integer
    Offset:
      name: offset
      in: query
      description: How many entities should be skipped. Default is 0.
      schema:
        type: integer
        default: 0
  responses:
    Unauthorized:
      description: Unauthorized - missing or invalid API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too Many Requests - the rate limit has been exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    TokenAuth:
      type: apiKey
      in: header
      name: Token
      description: A personal or application API token. Create it in the Qase app under Settings and pass it in the `Token` header on every request. All requests must use HTTPS.