Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Comp AI Controls API
description: Compliance automation API for SOC 2, ISO 27001, HIPAA, GDPR, evidence collection, policy workflows, Trust Access, security questionnaires, integrations, cloud checks, and device compliance.
version: '1.0'
contact: {}
servers:
- url: https://api.trycomp.ai
description: Production API Server
tags:
- name: Controls
description: Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
paths:
/v1/controls:
get:
operationId: ControlsController_findAll_v1
parameters:
- name: page
required: false
in: query
schema:
type: string
- name: perPage
required: false
in: query
schema:
type: string
- name: name
required: false
in: query
description: Filter by name (case-insensitive contains)
schema:
type: string
- name: sortBy
required: false
in: query
description: 'Field to sort by (default: name)'
schema:
type: string
- name: sortDesc
required: false
in: query
description: Sort descending (true/false)
schema:
type: string
responses:
'200':
description: ''
security:
- bearer: []
summary: List compliance controls
tags:
- Controls
description: List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs.
x-mint:
metadata:
title: List compliance controls | Comp AI API
sidebarTitle: List compliance controls
description: List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs.
og:title: List compliance controls | Comp AI API
og:description: List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs.
x-speakeasy-mcp:
name: controls-find-all
post:
operationId: ControlsController_create_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateControlDto'
responses:
'201':
description: ''
security:
- bearer: []
summary: Create compliance control
tags:
- Controls
description: Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.
x-mint:
metadata:
title: Create compliance control | Comp AI API
sidebarTitle: Create compliance control
description: Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.
og:title: Create compliance control | Comp AI API
og:description: Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.
x-speakeasy-mcp:
name: create
/v1/controls/options:
get:
operationId: ControlsController_getOptions_v1
parameters: []
responses:
'200':
description: ''
security:
- bearer: []
summary: Get dropdown options for creating controls
tags:
- Controls
description: Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Get dropdown options for creating controls | Comp AI API
sidebarTitle: Get dropdown options for creating controls
description: Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
og:title: Get dropdown options for creating controls | Comp AI API
og:description: Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
x-speakeasy-mcp:
name: get-options
/v1/controls/{id}:
get:
operationId: ControlsController_findOne_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: frameworkInstanceId
required: true
in: query
schema:
type: string
responses:
'200':
description: ''
security:
- bearer: []
summary: Get control detail with progress
tags:
- Controls
description: Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Get control detail with progress | Comp AI API
sidebarTitle: Get control detail with progress
description: Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track.
og:title: Get control detail with progress | Comp AI API
og:description: Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track.
x-speakeasy-mcp:
name: controls-find-one
delete:
operationId: ControlsController_delete_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
security:
- bearer: []
summary: Delete a control
tags:
- Controls
description: Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Delete a control | Comp AI API
sidebarTitle: Delete a control
description: Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation.
og:title: Delete a control | Comp AI API
og:description: Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation.
x-speakeasy-mcp:
name: controls-delete
/v1/controls/{id}/policies/link:
post:
operationId: ControlsController_linkPolicies_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: frameworkInstanceId
required: true
in: query
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinkPoliciesDto'
responses:
'201':
description: ''
security:
- bearer: []
summary: Link policies to control
tags:
- Controls
description: Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence.
x-mint:
metadata:
title: Link policies to control | Comp AI API
sidebarTitle: Link policies to control
description: Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence.
og:title: Link policies to control | Comp AI API
og:description: Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence.
x-speakeasy-mcp:
name: link-policies
/v1/controls/{id}/tasks/link:
post:
operationId: ControlsController_linkTasks_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: frameworkInstanceId
required: true
in: query
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinkTasksDto'
responses:
'201':
description: ''
security:
- bearer: []
summary: Link tasks to control
tags:
- Controls
description: Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected.
x-mint:
metadata:
title: Link tasks to control | Comp AI API
sidebarTitle: Link tasks to control
description: Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected.
og:title: Link tasks to control | Comp AI API
og:description: Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected.
x-speakeasy-mcp:
name: link-tasks
/v1/controls/{id}/requirements/link:
post:
operationId: ControlsController_linkRequirements_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinkRequirementsToControlDto'
responses:
'201':
description: ''
security:
- bearer: []
summary: Link existing requirements to a control
tags:
- Controls
description: Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Link existing requirements to a control | Comp AI API
sidebarTitle: Link existing requirements to a control
description: Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
og:title: Link existing requirements to a control | Comp AI API
og:description: Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
x-speakeasy-mcp:
name: controls-link-requirements
/v1/controls/{id}/document-types/link:
post:
operationId: ControlsController_linkDocumentTypes_v1
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: frameworkInstanceId
required: true
in: query
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinkDocumentTypesDto'
responses:
'201':
description: ''
security:
- bearer: []
summary: Link required document types to a control
tags:
- Controls
description: Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Link required document types to a control | Comp AI API
sidebarTitle: Link required document types to a control
description: Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
og:title: Link required document types to a control | Comp AI API
og:description: Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.
x-speakeasy-mcp:
name: link-document-types
/v1/controls/{id}/document-types/{formType}:
delete:
operationId: ControlsController_unlinkDocumentType_v1
parameters:
- name: id
required: true
in: path
description: Unique control identifier
schema:
example: ctl_abc123def456
type: string
- name: formType
required: true
in: path
description: Evidence form type to unlink from the control
schema:
enum:
- board_meeting
- it_leadership_meeting
- risk_committee_meeting
- meeting
- access_request
- whistleblower_report
- penetration_test
- rbac_matrix
- infrastructure_inventory
- employee_performance_evaluation
- network_diagram
- tabletop_exercise
- account_types
type: string
- name: frameworkInstanceId
required: true
in: query
schema:
type: string
responses:
'200':
description: ''
security:
- bearer: []
summary: Remove a required document type from a control
tags:
- Controls
description: Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.
x-mint:
metadata:
title: Remove a required document type from a control | Comp AI API
sidebarTitle: Remove a required document type from a control
description: Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document.
og:title: Remove a required document type from a control | Comp AI API
og:description: Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document.
x-speakeasy-mcp:
name: unlink-document-type
components:
schemas:
LinkRequirementMappingDto:
type: object
properties:
requirementId:
type: string
description: Platform requirement ID
customRequirementId:
type: string
description: Org-custom requirement ID
frameworkInstanceId:
type: string
description: Framework instance ID
required:
- frameworkInstanceId
RequirementMappingDto:
type: object
properties:
requirementId:
type: string
description: Platform requirement ID (exactly one of requirementId / customRequirementId must be set)
customRequirementId:
type: string
description: Org-custom requirement ID (exactly one of requirementId / customRequirementId must be set)
frameworkInstanceId:
type: string
description: Framework instance ID
required:
- frameworkInstanceId
LinkTasksDto:
type: object
properties:
taskIds:
description: Task IDs to link to the control
type: array
items:
type: string
required:
- taskIds
LinkPoliciesDto:
type: object
properties:
policyIds:
description: Policy IDs to link to the control
type: array
items:
type: string
required:
- policyIds
LinkDocumentTypesDto:
type: object
properties:
formTypes:
type: array
description: Evidence form types to require for this control
items:
type: string
enum:
- board_meeting
- it_leadership_meeting
- risk_committee_meeting
- meeting
- access_request
- whistleblower_report
- penetration_test
- rbac_matrix
- infrastructure_inventory
- employee_performance_evaluation
- network_diagram
- tabletop_exercise
- account_types
required:
- formTypes
LinkRequirementsToControlDto:
type: object
properties:
requirements:
description: Requirement + framework instance pairs to link
type: array
items:
$ref: '#/components/schemas/LinkRequirementMappingDto'
required:
- requirements
CreateControlDto:
type: object
properties:
name:
type: string
description: Control name
example: Access Control
description:
type: string
description: Control description
example: Manages user access to systems
policyIds:
description: Policy IDs to connect
type: array
items:
type: string
taskIds:
description: Task IDs to connect
type: array
items:
type: string
requirementMappings:
description: Requirement mappings
type: array
items:
$ref: '#/components/schemas/RequirementMappingDto'
documentTypes:
type: array
description: Evidence form types to require on this control
items:
type: string
enum:
- board_meeting
- it_leadership_meeting
- risk_committee_meeting
- meeting
- access_request
- whistleblower_report
- penetration_test
- rbac_matrix
- infrastructure_inventory
- employee_performance_evaluation
- network_diagram
- tabletop_exercise
- account_types
required:
- name
- description
securitySchemes:
apikey:
type: apiKey
in: header
name: X-API-Key
description: API key for authentication
x-speakeasy-timeout: 120000