Qualio Change Management API

The Change Management API from Qualio — 2 operation(s) for change management.

OpenAPI Specification

qualio-change-management-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Qualio Developer Change Management API
  version: '0.1'
  description: "Whether you're streamlining document control, automating quality event management, integrating training records, or syncing supplier data across systems, the Qualio API provides secure and scalable solutions. Getting started is easy: generate an API key, authenticate your requests, explore example code, and start building. Follow the steps below to integrate with Qualio quickly and efficiently.\n\n  This portal includes everything you need to build with confidence:\n- Secure, token-based authentication\n- Full reference documentation for each endpoint\n- Example code in multiple programming languages\n- \"Try it out\" functionality to test requests live\n- Fair usage rate limits to ensure system stability\n \n\n #### Generate Your API Key \n To access the API, you’ll need an API key:\n\n- Log in to the [Qualio admin panel](https://app.qualio.com/user-management/admin).\n\n- Navigate to Admin Settings > [Developer API tokens](https://app.qualio.com/user-management/admin/dev-api).\n\n- Click Create token and save the key securely.\n\n- Only users with administrative privileges can generate API keys. \n\n\n\nIf you don’t have admin access, please ask your Qualio administrator to create a key for you.\n \n\n #### Authenticate Your Requests\n\nQualio uses API key authentication using the X-Api-Key header. Add your API key in the authentication panel to the right to see examples of how to use it in a language of your choice.\n \n\n #### Make Your First API Call\n\nHere is an easy place to get started: [fetching all your effective documents](#tag/documents/GET/v1/documents/query)\n \n\n #### Respect Rate Limits\n\nTo ensure fair use and maintain performance, API requests are subject to rate limits:\n\n- Each API key has a request threshold of maximum 200 requests per minute\n- If you exceed this limit, you'll receive an HTTP 429 (Too Many Requests) response.\n- We recommend implementing retry logic in your client applications, if this is a concern for you.\n\n \n\n #### Explore and Build\nUse the navigation panel to browse available API endpoints, such as:\n- Documents — Create, query, and manage your controlled documents\n- User Management — Invite users, update roles, or sync user data\n- Audit Trail — Retrieve historical changes for compliance reporting\n- You’ll find example code in Python, JavaScript, C#, Ruby, PHP, Go, and Shell for each endpoint. Click “Try it out” to test requests directly from the browser.\n \n\n #### How is this API versioned? \n We prefix each URL with the major version of the API. Within this major version, we promise to not make any breaking changes, which are:\n - Changes to the datatype of request or response payload attribute. \n - Removal of an attribute or parameter. \n - Changes to a URL. \n\n We do not consider the following to be breaking changes: \n - Additional attributes on return payloads  \n - Additional optional attributes on request payloads \n\n \n#### Where can I get an OpenApi spec for this? \n You can [find it here](/download-openapi), but bear in mind that this API is updated regularly, so be sure to fetch it afresh for the latest features\n"
servers:
- url: https://api.qualio.com
security:
- api_key: []
tags:
- name: Change Management
paths:
  /v1/change-management/change-controls:
    get:
      summary: List change controls
      description: "Lists change controls for your Qualio instance. A change control (CC) is a formal, auditable record that documents and routes a change for review and approval â\x80\x94 typically a change to one or more controlled documents, which appear as the change control's linked items. Each entry includes its id (e.g. CC-123), title, owner, status (`open` or `closed`), timestamps, and content sections. Supports filtering by status, ordering, and pagination."
      operationId: listChangeControls
      tags:
      - Change Management
      security:
      - api_key: []
      parameters:
      - in: query
        name: offset
        schema:
          $ref: '#/components/schemas/offsetParam'
        description: A start point for the batch to be returned. For example, a value of 5 will start at the 6th element in the overall population
      - in: query
        name: limit
        schema:
          $ref: '#/components/schemas/limitParam'
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/statusParam'
        description: The status of a domain object
      - in: query
        name: orderBy
        schema:
          $ref: '#/components/schemas/orderByParam'
        description: The field to order the results by
      responses:
        '200':
          description: Successful change control entries retrieval
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/changeControlResp'
        '400':
          description: The request has malformed query parameters
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericBadRequest400ParametersResponse'
        '403':
          description: This API key is not allowed to perform this action, or the API key is incorrect
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericForbiddenResponse'
        '429':
          description: This API key has exceeded the fair usage policy in Qualio, and has it its requests restricted. This request has not been processed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/throttledResponse'
    options:
      description: "Lists change controls for your Qualio instance. A change control (CC) is a formal, auditable record that documents and routes a change for review and approval â\x80\x94 typically a change to one or more controlled documents, which appear as the change control's linked items. Each entry includes its id (e.g. CC-123), title, owner, status (`open` or `closed`), timestamps, and content sections. Supports filtering by status, ordering, and pagination."
      operationId: listChangeControlsOptions
      tags:
      - Change Management
      x-scalar-ignore: true
      parameters:
      - in: query
        name: offset
        schema:
          $ref: '#/components/schemas/offsetParam'
        description: A start point for the batch to be returned. For example, a value of 5 will start at the 6th element in the overall population
      - in: query
        name: limit
        schema:
          $ref: '#/components/schemas/limitParam'
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/statusParam'
        description: The status of a domain object
      - in: query
        name: orderBy
        schema:
          $ref: '#/components/schemas/orderByParam'
        description: The field to order the results by
      responses:
        '200':
          description: Options 200
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
    post:
      summary: Create a change control
      description: Creates a change control for a draft document. A change control is the formal workflow record that documents and routes the proposed change for review and approval. Provide the document and the content `sections`; the section positions must match those defined by the change control template and start at position 1.
      operationId: createChangeControl
      tags:
      - Change Management
      security:
      - api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createCC'
      responses:
        '200':
          description: Successful change control entries retrieval
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createdCC'
        '400':
          description: The request has malformed body
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericBadRequestResponse'
        '403':
          description: This API key is not allowed to perform this action, or the API key is incorrect
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericForbiddenResponse'
        '429':
          description: This API key has exceeded the fair usage policy in Qualio, and has it its requests restricted. This request has not been processed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/throttledResponse'
  /v1/change-management/change-requests:
    get:
      summary: List change requests
      description: Lists change requests for your Qualio instance. A change request (CR) is a formal record used to propose, track, and approve changes to controlled documents. Each entry includes its code (e.g. DCR-1), title, owner, status, timestamps, and linked change items. Supports filtering by status, text search, ordering, and pagination.
      operationId: listChangeRequests
      tags:
      - Change Management
      security:
      - api_key: []
      parameters:
      - in: query
        name: offset
        schema:
          $ref: '#/components/schemas/offsetParam'
        description: A start point for the batch to be returned. For example, a value of 5 will start at the 6th element in the overall population
      - in: query
        name: limit
        schema:
          $ref: '#/components/schemas/limitParam'
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/statusParam'
        description: The status of a domain object
      - in: query
        name: orderBy
        schema:
          $ref: '#/components/schemas/orderByParam'
        description: The field to order the results by
      responses:
        '200':
          description: Successful change request list retrieval
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/changeRequestResp'
        '400':
          description: The request has malformed query parameters
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericBadRequest400ParametersResponse'
        '403':
          description: This API key is not allowed to perform this action, or the API key is incorrect
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericForbiddenResponse'
        '429':
          description: This API key has exceeded the fair usage policy in Qualio, and has it its requests restricted. This request has not been processed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/throttledResponse'
    options:
      description: Lists change requests for your Qualio instance. A change request (CR) is a formal record used to propose, track, and approve changes to controlled documents. Each entry includes its code (e.g. DCR-1), title, owner, status, timestamps, and linked change items. Supports filtering by status, text search, ordering, and pagination.
      operationId: listChangeRequestsOptions
      tags:
      - Change Management
      x-scalar-ignore: true
      parameters:
      - in: query
        name: offset
        schema:
          $ref: '#/components/schemas/offsetParam'
        description: A start point for the batch to be returned. For example, a value of 5 will start at the 6th element in the overall population
      - in: query
        name: limit
        schema:
          $ref: '#/components/schemas/limitParam'
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/statusParam'
        description: The status of a domain object
      - in: query
        name: orderBy
        schema:
          $ref: '#/components/schemas/orderByParam'
        description: The field to order the results by
      responses:
        '200':
          description: Options 200
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Content-Type:
              schema:
                type: string
            Content-Disposition:
              schema:
                type: string
components:
  schemas:
    changeRequestResp:
      type: object
      properties:
        total:
          type: number
        items:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              title:
                type: string
              status:
                type: string
              owner:
                type: string
              created_time:
                type: string
                format: date-time
              closed_time:
                anyOf:
                - type: string
                  format: date-time
                - type: 'null'
              change_items:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                    code:
                      type: string
                    version:
                      type: string
                    type:
                      type: string
                      enum:
                      - document
                      - supplier
                      - event
                  required:
                  - title
                  - code
                  - version
                  - type
                  additionalProperties: false
            required:
            - code
            - title
            - status
            - owner
            - created_time
            - closed_time
            - change_items
            additionalProperties: false
      required:
      - total
      - items
      additionalProperties: false
      description: A paginated list of change requests
      example:
        total: 1
        items:
        - code: DCR-1
          title: Update Privacy Policy
          status: in_progress
          owner: John Smith
          created_time: '2024-07-30T18:00:00.000Z'
          closed_time: null
          change_items:
          - title: Privacy Policy
            code: POL-1
            version: '2.0'
            type: document
    statusParam:
      description: The status of a domain object
      example: Closed
      type: string
    genericForbiddenResponse:
      type: object
      properties:
        message:
          type: string
      required:
      - message
      additionalProperties: false
      example:
        message: User is not authorized to access this resource with an explicit deny
    limitParam:
      type: number
      description: The maximum number of results to return. This is typically used with offset to paginate results.
      example: 30
    genericBadRequest400ParametersResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              description:
                type: string
              location:
                type: string
              name:
                type: string
            required:
            - description
            additionalProperties: false
        status:
          type: string
          const: error
      required:
      - errors
      - status
      additionalProperties: false
      example:
        status: error
        errors:
        - location: query
          name: document_id
          description: document_id is not an integer
    createCC:
      type: object
      properties:
        document_id:
          type: number
        sections:
          type: array
          items:
            type: object
            properties:
              content:
                type: string
              position:
                type: number
            required:
            - content
            - position
      required:
      - document_id
      - sections
      description: The request to create a change control, the sections must match those in the change control template, and position starts at 1
      example:
        document_id: 1
        sections:
        - content: This change is to our privacy policy to bring it in line with GDPR
          position: 1
        - content: There is no impact to our other documented processes, and employees will be trained on this document before it becomes effective
          position: 2
    throttledResponse:
      type: object
      properties:
        message:
          type: string
      required:
      - message
      additionalProperties: false
      example:
        message: You have exceeded what is allowed in the fair use policy for this API
    orderByParam:
      description: The field to order the results by
      example: created_date
      type: string
    genericBadRequestResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              description:
                type: string
              location:
                type: string
              name:
                type: string
            required:
            - description
            additionalProperties: false
        status:
          type: string
          const: error
      required:
      - errors
      - status
      additionalProperties: false
      example:
        status: error
        errors:
        - location: body
          name: email
          description: Email missing from payload
    offsetParam:
      description: A start point for the batch to be returned. For example, a value of 5 will start at the 6th element in the overall population
      example: 0
      type: number
    createdCC:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        status:
          type: string
        owner:
          type: string
        created_time:
          type: string
          format: date-time
        closed_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
        change_items:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              code:
                type: string
              version:
                type: string
              type:
                type: string
                enum:
                - document
                - supplier
                - event
            required:
            - title
            - code
            - version
            - type
            additionalProperties: false
      required:
      - id
      - title
      - status
      - owner
      - created_time
      - closed_time
      - change_items
      additionalProperties: false
      description: A successfully created change control
      example:
        id: CC-1-123
        title: Test Change Control
        status: open
        created_time: '2024-07-30T18:00:00.000Z'
        closed_time: '2024-07-29T18:00:00.000Z'
        owner: Kai Havertz
        change_items:
        - title: Test Policy
          code: POL-1
          version: '1.0'
          type: document
    changeControlResp:
      type: object
      properties:
        total:
          type: number
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              status:
                type: string
              owner:
                type: string
              created_time:
                type: string
                format: date-time
              closed_time:
                anyOf:
                - type: string
                  format: date-time
                - type: 'null'
              change_items:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                    code:
                      type: string
                    version:
                      type: string
                    type:
                      type: string
                      enum:
                      - document
                      - supplier
                      - event
                  required:
                  - title
                  - code
                  - version
                  - type
                  additionalProperties: false
            required:
            - id
            - title
            - status
            - owner
            - created_time
            - closed_time
            - change_items
            additionalProperties: false
      required:
      - total
      - items
      additionalProperties: false
      description: A series of change control entries
      example:
        total: 1
        items:
        - id: CC-1-123
          title: Test Change Control
          status: open
          created_time: '2024-07-30T18:00:00.000Z'
          closed_time: '2024-07-29T18:00:00.000Z'
          owner: Kai Havertz
          change_items:
          - title: Test Policy
            code: POL-1
            version: '1.0'
            type: document
  securitySchemes:
    api_key:
      type: apiKey
      name: X-Api-Key
      in: header