Qualio Compliance Intelligence API
The Compliance Intelligence API from Qualio — 11 operation(s) for compliance intelligence.
The Compliance Intelligence API from Qualio — 11 operation(s) for compliance intelligence.
openapi: 3.1.0
info:
title: Qualio Developer Compliance Intelligence 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: Compliance Intelligence
paths:
/v1/compliance/frameworks:
get:
summary: List frameworks
description: 'Lists the compliance frameworks in your Qualio instance. A framework is a compliance standard (for example ISO 13485, ISO 9001, or GDPR) that groups the requirements your organisation has committed to meet. Each framework has a status: disabled (not currently in use), implementing (controls are being set up), or monitoring (actively tracking compliance against the standard). Results are ordered by framework id. Use the offset and limit parameters to page through large sets; the total field in the response reports the full count of matching frameworks before pagination is applied. Filter by status to return only frameworks in a particular state; omit the parameter to return frameworks in any state.'
operationId: listComplianceFrameworks
tags:
- Compliance Intelligence
security:
- api_key: []
parameters:
- in: query
name: status
schema:
description: 'Filter results to only frameworks with this status. Accepted values: disabled, implementing, monitoring. Omit to return frameworks in any state.'
example: monitoring
type: string
enum:
- disabled
- implementing
- monitoring
description: 'Filter results to only frameworks with this status. Accepted values: disabled, implementing, monitoring. Omit to return frameworks in any state.'
- in: query
name: offset
schema:
description: Number of items to skip before collecting results. Use with limit to page through results. Defaults to 0.
example: 0
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of items to skip before collecting results. Use with limit to page through results. Defaults to 0.
- in: query
name: limit
schema:
description: Maximum number of items to return in a single response. Minimum 1, maximum 100. Defaults to 25.
example: 25
type: integer
minimum: 1
maximum: 100
description: Maximum number of items to return in a single response. Minimum 1, maximum 100. Defaults to 25.
responses:
'200':
description: Successful retrieval of compliance frameworks.
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:
type: object
properties:
items:
type: array
items:
type: object
properties:
id:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The unique numeric identifier of the framework.
example: 1
name:
type: string
description: The display name of the compliance framework.
example: ISO 13485
description:
anyOf:
- type: string
- type: 'null'
description: An optional human-readable description of the framework.
example: 'Medical devices: Quality management systems'
status:
type: string
enum:
- disabled
- implementing
- monitoring
description: 'The current status of the framework. disabled: not currently in use. implementing: controls are being set up. monitoring: actively tracking compliance.'
example: monitoring
required:
- id
- name
- description
- status
additionalProperties: false
total:
type: number
required:
- items
- total
additionalProperties: false
description: A paginated list of compliance frameworks.
example:
total: 2
items:
- id: 1
name: ISO 13485
description: 'Medical devices: Quality management systems'
status: monitoring
- id: 2
name: ISO 9001
description: null
status: implementing
ref: complianceFrameworkListResponse
'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 the compliance frameworks in your Qualio instance. A framework is a compliance standard (for example ISO 13485, ISO 9001, or GDPR) that groups the requirements your organisation has committed to meet. Each framework has a status: disabled (not currently in use), implementing (controls are being set up), or monitoring (actively tracking compliance against the standard). Results are ordered by framework id. Use the offset and limit parameters to page through large sets; the total field in the response reports the full count of matching frameworks before pagination is applied. Filter by status to return only frameworks in a particular state; omit the parameter to return frameworks in any state.'
operationId: listComplianceFrameworksOptions
tags:
- Compliance Intelligence
x-scalar-ignore: true
parameters:
- in: query
name: status
schema:
description: 'Filter results to only frameworks with this status. Accepted values: disabled, implementing, monitoring. Omit to return frameworks in any state.'
example: monitoring
type: string
enum:
- disabled
- implementing
- monitoring
description: 'Filter results to only frameworks with this status. Accepted values: disabled, implementing, monitoring. Omit to return frameworks in any state.'
- in: query
name: offset
schema:
description: Number of items to skip before collecting results. Use with limit to page through results. Defaults to 0.
example: 0
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of items to skip before collecting results. Use with limit to page through results. Defaults to 0.
- in: query
name: limit
schema:
description: Maximum number of items to return in a single response. Minimum 1, maximum 100. Defaults to 25.
example: 25
type: integer
minimum: 1
maximum: 100
description: Maximum number of items to return in a single response. Minimum 1, maximum 100. Defaults to 25.
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 framework
description: Creates a new compliance framework in your Qualio instance. Provide a name and an optional description. The framework is created with a disabled status and must be activated in the Qualio application before requirements can be tracked against it. The id returned in the response can be used to retrieve or update the framework via the other Compliance Intelligence endpoints.
operationId: createComplianceFramework
tags:
- Compliance Intelligence
security:
- api_key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
description: The display name of the new compliance framework.
example: ISO 13485
description:
description: An optional human-readable description of the framework.
example: 'Medical devices: Quality management systems'
anyOf:
- type: string
- type: 'null'
required:
- name
description: The framework to create.
example:
name: ISO 13485
description: 'Medical devices: Quality management systems'
ref: createComplianceFrameworkRequest
responses:
'201':
description: Framework created successfully.
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:
type: object
properties:
id:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The unique numeric identifier of the framework.
example: 1
name:
type: string
description: The display name of the compliance framework.
example: ISO 13485
description:
anyOf:
- type: string
- type: 'null'
description: An optional human-readable description of the framework.
example: 'Medical devices: Quality management systems'
status:
type: string
enum:
- disabled
- implementing
- monitoring
description: 'The current status of the framework. disabled: not currently in use. implementing: controls are being set up. monitoring: actively tracking compliance.'
example: monitoring
stats:
anyOf:
- type: object
properties:
total_requirements:
type: integer
minimum: 0
maximum: 9007199254740991
description: Total number of requirements in the framework.
example: 42
passed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements with a met assessment.
example: 30
failed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements flagged as attention required.
example: 5
not_assessed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements that have not yet been fully assessed. Includes requirements in not_started and in_progress states.
example: 7
required:
- total_requirements
- passed
- failed
- not_assessed
additionalProperties: false
- type: 'null'
required:
- id
- name
- description
- status
additionalProperties: false
description: The newly created framework.
example:
id: 10
name: ISO 13485
description: 'Medical devices: Quality management systems'
status: disabled
stats: null
ref: createdComplianceFramework
'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/compliance/frameworks/{frameworkId}:
put:
summary: Update a framework
description: 'Updates a compliance framework identified by its numeric id. This is a partial update: include only the fields you want to change. Omitting a field leaves its current value unchanged. Pass null for description to clear it. To change the framework lifecycle status, use PATCH /v1/compliance/frameworks/{frameworkId}/status.'
operationId: updateComplianceFramework
tags:
- Compliance Intelligence
security:
- api_key: []
parameters:
- in: path
name: frameworkId
schema:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The numeric id of the compliance framework.
example: 1
required: true
description: The numeric id of the compliance framework.
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
description: New display name for the framework. Omit to leave unchanged.
example: ISO 13485 (2016)
type: string
minLength: 1
description:
description: New description for the framework. Omit to leave unchanged. Pass null to clear an existing description.
example: 'Medical devices: Quality management systems'
anyOf:
- type: string
- type: 'null'
description: Fields to update on the framework.
example:
name: ISO 13485 (2016)
description: 'Medical devices: Quality management systems'
ref: updateComplianceFrameworkRequest
responses:
'200':
description: Framework updated successfully.
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:
type: object
properties:
id:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The unique numeric identifier of the framework.
example: 1
name:
type: string
description: The display name of the compliance framework.
example: ISO 13485
description:
anyOf:
- type: string
- type: 'null'
description: An optional human-readable description of the framework.
example: 'Medical devices: Quality management systems'
status:
type: string
enum:
- disabled
- implementing
- monitoring
description: 'The current status of the framework. disabled: not currently in use. implementing: controls are being set up. monitoring: actively tracking compliance.'
example: monitoring
stats:
description: Assessment statistics for the framework. Populated when the framework status is implementing or monitoring. null or absent when the framework is disabled.
example: null
anyOf:
- type: object
properties:
total_requirements:
type: integer
minimum: 0
maximum: 9007199254740991
description: Total number of requirements in the framework.
example: 42
passed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements with a met assessment.
example: 30
failed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements flagged as attention required.
example: 5
not_assessed:
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of requirements that have not yet been fully assessed. Includes requirements in not_started and in_progress states.
example: 7
required:
- total_requirements
- passed
- failed
- not_assessed
additionalProperties: false
- type: 'null'
required:
- id
- name
- description
- status
additionalProperties: false
description: The updated framework.
example:
id: 1
name: ISO 13485 (2016)
description: 'Medical devices: Quality management systems'
status: monitoring
stats: null
ref: updatedComplianceFramework
'400':
description: The request has malformed path 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/genericBadRequest400PathResponse'
'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'
'404':
description: Framework not found.
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/generic404'
'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: 'Updates a compliance framework identified by its numeric id. This is a partial update: include only the fields you want to change. Omitting a field leaves its current value unchanged. Pass null for description to clear it. To change the framework lifecycle status, use PATCH /v1/compliance/frameworks/{frameworkId}/status.'
operationId: updateComplianceFrameworkOptions
tags:
- Compliance Intelligence
x-scalar-ignore: true
parameters:
- in: path
name: frameworkId
schema:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The numeric id of the compliance framework.
example: 1
required: true
description: The numeric id of the compliance framework.
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
get:
summary: Get a framework
description: 'Returns the details of a single compliance framework identified by its numeric id. The stats field is populated when the framework status is implementing or monitoring, and is null when the framework is disabled. Stats break down the framework requirements by assessment outcome: passed counts requirements with a met assessment, failed counts requirements flagged as attention required, and not_assessed counts requirements that are not_started or in_progress. The sum of passed, failed, and not_assessed equals total_requirements.'
operationId: getComplianceFramework
tags:
- Compliance Intelligence
security:
- api_key: []
parameters:
- in: path
name: frameworkId
schema:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
description: The numeric id of the compliance framework.
example: 1
required: true
description: The numeric id of the compliance framework.
responses:
'200':
description: Successful retrieval of the compliance framework.
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:
# --- truncated at 32 KB (189 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qualio/refs/heads/main/openapi/qualio-compliance-intelligence-api-openapi.yml