---
title: "Create compliance control"
method: POST
path: "/v1/controls"
tags: ["Controls"]
---

# Create compliance control

`POST /v1/controls`

Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.

## Request body

- CreateControlDto
  - `name` string, required — Control name
  - `description` string, required — Control description
  - `policyIds` string[] — Policy IDs to connect
  - `taskIds` string[] — Task IDs to connect
  - `requirementMappings` RequirementMappingDto[] — Requirement mappings
    - `requirementId` string — Platform requirement ID (exactly one of requirementId / customRequirementId must be set)
    - `customRequirementId` string — Org-custom requirement ID (exactly one of requirementId / customRequirementId must be set)
    - `frameworkInstanceId` string, required — Framework instance ID
  - `documentTypes` string[] — Evidence form types to require on this control

## Response `201`

## Changes

- **2026-06-11** `a87e7c0c5c25` — 1 info
  - added the new `account_types` enum value to the request property `documentTypes/items/`
- **2026-04-17** `7c099840b198` — 3 info
  - added the new optional request property `documentTypes`
  - added the new optional request property `requirementMappings/items/customRequirementId`
  - the request property `requirementMappings/items/requirementId` became optional

[Change history](https://skmtc.dev/trycompai/apis/comp-ai-api/changes/v1/controls/post.md)

---

[API](https://skmtc.dev/trycompai/apis/comp-ai-api.md) · [All operations](https://skmtc.dev/trycompai/apis/comp-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trycompai/comp-ai-api/revisions/726b9523fb22/schema)
