# Inserts new controls up to 20 at a time Endpoint: POST /api/v1/controls Version: 1.0.0 Security: x-api-key ## Request fields (application/json): - `controlId` (string) The identifying name this control should use - `programId` (string) Example: "61d325c84a9f97631731a690" - `processId` (string) Example: "61d325c84a9f97631731a690" - `title` (string) The title of the control - `description` (string) The description of the control - `isKeyControl` (boolean) - `isManual` (boolean) - `assertions` (array) Enum: "existence-or-occurrence", "completeness", "valuation-or-allocation", "rights-and-obligation", "presentation-and-disclosure" - `owners` (array) Information about the users that own this control - `owners.type` (string) Enum: "primary", "secondary" - `owners.isGuest` (boolean) - `owners.userId` (string) Example: "61d325c84a9f97631731a690" - `assignees` (array) Information about the users assigned to this control for sign-off - `assignees.dueDateType` (string) Enum: "NONE", "DAYS_RELATIVE_TO_END_OF_PERIOD" - `assignees.dueDateOffsetDays` (integer) Must be 0 if dueDateType is NONE. Must be -99 to 99 excluding 0 if dueDateType is DAYS_RELATIVE_TO_END_OF_PERIOD. - `assignees.frequency` (integer) Integer from 1-4 where the numbers correspond as follows: Monthly, Quarterly, Annual, Custom Enum: 1, 2, 3, 4 - `assignees.frequencyMonths` (array) Array of months that may only be provided when assignee frequency is set to Custom Enum: "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" - `assignees.group` (string) Enum: "reviewer", "preparer" - `frequency` (number) Integer from 1-12 where the numbers correspond as follows: Monthly, Quarterly, Annual, Custom, Weekly, Every 2 weeks, Twice per month, As needed, Multiple times per day, Daily, Automated, Continuous Enum: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 - `frequencyMonths` (array) Enum: "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" - `requiredEvidenceFrequency` (number) Number value from 0-4 where the numbers correspond as follows: None, Monthly, Quarterly, Annual, Custom Enum: 0, 1, 2, 3, 4 - `requiredEvidenceFrequencyMonths` (array) Enum: "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" - `customFields` (array) - `customFields.customFieldId` (string) Example: "61d325c84a9f97631731a690" - `customFields.values` (array) ## Response 200 fields (application/json): - `data` (array) Example: ["61d325c84a9f97631731a690"] ## Response 400 fields (application/json): - `message` (string) Reason for the errors related to incorrect query keys or values that are out of bound Example: "filter[month] is required" - `name` (string) BadRequest Example: "BadRequest" - `status` (integer) The HTTP status code. Example: 400 ## Response 401 fields (application/json): - `message` (string) Reason for the unauthorized error. Example: "Token is invalid." - `name` (string) Unauthorized Example: "Unauthorized" - `status` (integer) The HTTP status code. Example: 401 ## Response 403 fields (application/json): - `message` (string) Reason for the forbidden error. Example: "User does not have permission to access requested project." - `name` (string) Forbidden Example: "Forbidden" - `status` (integer) The HTTP status code. Example: 403 ## Response 404 fields (application/json): - `message` (string) Description of the missing resource or reason for the 404 error. Example: "Resource not found." - `name` (string) NotFound Example: "NotFound" - `status` (integer) The HTTP status code. Example: 404 ## Response 413 fields (application/json): - `message` (string) Response size is greater than 1MB Example: "Payload too large." - `name` (string) PayloadTooLarge Example: "PayloadTooLarge" - `status` (integer) The HTTP status code. Example: 413 ## Response 500 fields (application/json): - `message` (string) Reason for the internal server error. Example: "An unexpected error occurred." - `name` (string) InternalServerError Example: "InternalServerError" - `status` (integer) The HTTP status code. Example: 500