Drata Control Library API

The Control Library is a catalog of pre-built Control Templates that can be provisioned into a Workspace. Each item carries default mappings to Tests, Policies, Evidence, and Framework Requirements.

Operations 3

GET /control-library List Control Library #
GET /control-library/{templateId} Get Control Library Item #
POST /control-library/action-import Import Control Library Controls #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/drata-control-library-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

drata-control-library-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Drata Control Library API
  version: V2
  contact: {}
  description: 'Operations tagged Control Library across 2 of this provider''s published API definitions: drata-api-v2-openapi.json, drata-api-v2-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public-api.drata.com/public/v2
- url: https://public-api.eu.drata.com/public/v2
- url: https://public-api.apac.drata.com/public/v2
tags:
- name: Control Library
  description: The Control Library is a catalog of pre-built Control Templates that can be provisioned into a Workspace. Each item carries default mappings to Tests, Policies, Evidence, and Framework Requirements.
paths:
  /control-library:
    get:
      description: 'Returns a paginated list of Control Templates with optional field and relational filters.


        🔒 Requires **Controls: List Controls** permission.


        💎 Requires your account have the **Custom Frameworks** feature. Contact your CSM for help upgrading.'
      operationId: ControlLibraryPublicV2Controller_listControlLibrary
      parameters:
      - name: cursor
        required: false
        in: query
        description: This parameter is used to paginate through results. No value is needed for the first request. If there are additional results, the response will contain a `pagination.cursor` value that can be used in the subsequent request to retrieve the next page of results
        schema:
          type: string
      - name: size
        required: false
        in: query
        description: Number of results to return
        schema:
          minimum: 1
          maximum: 500
          default: 50
          type: number
      - name: sort
        required: false
        in: query
        description: Field to sort by.
        schema:
          $ref: '#/components/schemas/ControlLibrarySortEnum'
      - name: sortDir
        required: false
        in: query
        description: The direction to sort the data
        schema:
          $ref: '#/components/schemas/SortDirectionEnum'
      - name: includeTotalCount
        required: false
        in: query
        description: Include total count of all matching records in response. Only honored on first page (when cursor is null).
        schema:
          default: false
          example: false
          type: boolean
      - name: search
        required: false
        in: query
        description: Prefix search across Control name AND code. Matches Controls where either the name OR the code starts with the provided value.
        schema:
          example: DCF-
          type: string
      - name: codes[]
        required: false
        in: query
        description: Filter by **exact** Control codes (not prefix). Returns only Controls whose code matches one of the provided values. Use `search` for prefix matching.
        schema:
          example:
          - DCF-1
          - DCF-42
          type: array
          items:
            type: string
      - name: ids[]
        required: false
        in: query
        description: Filter by Control Template IDs. Returns only Controls whose ID matches one of the provided values.
        schema:
          example:
          - 1
          - 2
          - 3
          type: array
          items:
            type: number
      - name: excludeIds[]
        required: false
        in: query
        description: Exclude Control Templates with these IDs from the response.
        schema:
          example:
          - 99
          type: array
          items:
            type: number
      - name: domain
        required: false
        in: query
        description: Filter by Control Domain. Accepts the Domain name (e.g. `DATA_AND_PRIVACY`).
        schema:
          $ref: '#/components/schemas/ControlDomainEnum'
      - name: category
        required: false
        in: query
        description: Filter by Control Category. Accepts the Category name (e.g. `ACCESS_CONTROL`).
        schema:
          $ref: '#/components/schemas/ControlCategoryEnum'
      - name: frameworkTag
        required: false
        in: query
        description: Filter by Framework. Accepts the Framework Tag name (e.g. `SOC_2`, `ISO27001`, `HIPAA`). Returns Controls mapped to a Requirement on the given Framework.
        schema:
          $ref: '#/components/schemas/FrameworkTagEnum'
      - name: hasTests
        required: false
        in: query
        description: When true, returns only Controls with at least one default Test mapping.
        schema:
          type: boolean
      - name: hasPolicies
        required: false
        in: query
        description: When true, returns only Controls with at least one default Policy mapping.
        schema:
          type: boolean
      - name: hasEvidence
        required: false
        in: query
        description: When true, returns only Controls with at least one default Evidence mapping.
        schema:
          type: boolean
      - name: hasRisks
        required: false
        in: query
        description: When true, returns only Controls mapped to at least one Risk in the Risk Library.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlLibraryResponsePublicV2Dto'
        '400':
          description: Malformed data and/or validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponsePublicV2Dto'
        '401':
          description: Invalid Authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '402':
          description: You must upgrade your plan to use this feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '403':
          description: You are not allowed to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '412':
          description: You must accept the Drata terms and conditions to use the API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
      security:
      - bearer: []
      summary: List Control Library
      tags:
      - Control Library
      x-drata-entitlement:
      - CUSTOM_FRAMEWORKS
      x-drata-permissions:
      - controls-get
      x-product-area:
      - CONTROL_LIBRARY
    servers:
    - url: https://public-api.drata.com/public/v2
    - url: https://public-api.eu.drata.com/public/v2
    - url: https://public-api.apac.drata.com/public/v2
  /control-library/{templateId}:
    get:
      description: 'Returns a single Control Template by id with optional expand-gated relations.


        🔒 Requires **Controls: List Controls** permission.


        💎 Requires your account have the **Custom Frameworks** feature. Contact your CSM for help upgrading.'
      operationId: ControlLibraryPublicV2Controller_getControlLibraryItem
      parameters:
      - name: templateId
        required: true
        in: path
        schema:
          type: number
      - name: expand[]
        required: false
        in: query
        description: List of subcollections and sub-objects to expand.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ControlLibraryDetailExpandEnum'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlLibraryDetailResponsePublicV2Dto'
        '400':
          description: Malformed data and/or validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponsePublicV2Dto'
        '401':
          description: Invalid Authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '402':
          description: You must upgrade your plan to use this feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '403':
          description: You are not allowed to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponsePublicV2Dto'
        '412':
          description: You must accept the Drata terms and conditions to use the API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
      security:
      - bearer: []
      summary: Get Control Library Item
      tags:
      - Control Library
      x-drata-entitlement:
      - CUSTOM_FRAMEWORKS
      x-drata-permissions:
      - controls-get
      x-product-area:
      - CONTROL_LIBRARY
    servers:
    - url: https://public-api.drata.com/public/v2
    - url: https://public-api.eu.drata.com/public/v2
    - url: https://public-api.apac.drata.com/public/v2
  /control-library/action-import:
    post:
      description: 'Provisions one or more tenant Controls from Control Library templates. All-or-nothing semantics: any invalid spec rejects the whole request with no writes. Each provisioned Control includes the template default mappings (tests, policies, evidence, requirements).


        🔒 Requires **Controls: Create Control** permission.


        💎 Requires your account have the **Custom Frameworks** feature. Contact your CSM for help upgrading.'
      operationId: ControlLibraryPublicV2Controller_importControlLibrary
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ControlLibraryImportRequestPublicV2Dto'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlLibraryImportResponsePublicV2Dto'
        '400':
          description: Malformed data and/or validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlLibraryImportErrorResponsePublicV2Dto'
        '401':
          description: Invalid Authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '402':
          description: You must upgrade your plan to use this feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '403':
          description: You are not allowed to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '412':
          description: You must accept the Drata terms and conditions to use the API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
      security:
      - bearer: []
      summary: Import Control Library Controls
      tags:
      - Control Library
      x-drata-entitlement:
      - CUSTOM_FRAMEWORKS
      x-drata-permissions:
      - controls-post
      x-product-area:
      - CONTROL_LIBRARY
    servers:
    - url: https://public-api.drata.com/public/v2
    - url: https://public-api.eu.drata.com/public/v2
    - url: https://public-api.apac.drata.com/public/v2
components:
  schemas:
    ControlLibraryImportValidationErrorPublicV2Dto:
      type: object
      properties:
        inputIndex:
          type: number
          description: Index of the offending input in the request's `data` array.
        workspaceId:
          type: number
          description: Workspace the offending input targeted.
        templateIdentifier:
          oneOf:
          - type: number
          - type: string
          description: Template identifier echoed from the offending input.
        reason:
          type: string
          description: Human-readable explanation of the validation failure.
        code:
          enum:
          - CUSTOM_TASK_UNAUTHORIZED_ROLE
          - UNDEFINED
          - HEALTH_CHECK
          - INTERNAL_SERVER_ERROR
          - VALIDATION
          - ORM_VALIDATION
          - COMPANY_EXISTS
          - ENTRY_EXISTS
          - JWT_EMPTY_ENTRY
          - JWT_EMPTY_SITE_ADMIN
          - JWT_EMPTY_ACCOUNT
          - JWT_EMPTY_PAYLOAD
          - JWT_EMPTY_PAYLOAD_DATA
          - JWT_EMPTY_AUTHORIZATION
          - JWT_INVALID_SIGNATURE
          - JWT_INVALID_PAYLOAD
          - JWT_MISSING_USER
          - JWT_MISSING_ROLES
          - JWT_MISSING_PRODUCT_ROLE
          - JWT_MISSING_ACCOUNT
          - JWT_MISSING_SITE_ADMIN
          - ENTITY_NOT_FOUND
          - MONITOR_TEST_NOT_FOUND
          - BAD_CODE
          - BAD_ACCESS_TOKEN
          - CONFLICT_SELF
          - CONFLICT_PERSONNEL_OK
          - VERSION_NOT_FOUND
          - CONFLICT_DEPENDENCY
          - AGENT_MISSING_BODY
          - AGENT_MISSING_FIELDS
          - AGENT_EMPTY_ACCOUNT
          - ACCOUNT_NOT_FOUND
          - ACCOUNT_PENDING
          - ACCOUNT_MAINTENANCE
          - ACCOUNT_NON_PAYMENT
          - ACCOUNT_ADMIN_DISABLED
          - ACCOUNT_USER_DELETED
          - ACCOUNT_UNKNOWN_STATUS
          - ACCOUNT_CREATION_FAILED
          - ACCOUNT_SITE_ADMIN_DELETED
          - ACCOUNT_DISABLED_LEGAL_HOLD
          - CONNECTION_NOT_FOUND
          - ACCOUNT_DISABLED_NO_DELETE
          - ACCOUNT_MIGRATED
          - CONNECTION_CAN_NOT_BE_DELETED
          - USER_NOT_FOUND
          - USER_ROLES_NOT_FOUND
          - PERSONNEL_NOT_FOUND
          - PERSONNEL_PROPERTIES_NOT_FOUND
          - PERSONNEL_IS_FUTURE_HIRE
          - PERSONNEL_IS_FORMER_SPECIAL
          - PERSONNEL_NOT_ACTIVE
          - PERSONNEL_IS_FORMER
          - PERSONNEL_IS_OUT_OF_SCOPE
          - PERSONNEL_SELF_STATUS_TO_FORMER_STATUS
          - PERSONNEL_ALREADY_HAS_SAME_STATUS
          - CONFLICT_SEPARATION_DATE_WITH_UNKNOWN_STATUS
          - CONFLICT_UNKNOWN_STATUS_AND_HRIS
          - PERSONNEL_IS_ON_HRIS
          - SEPARATION_DATE_IS_REQUIRED
          - INVALID_SEPARATION_DATE_FOR_CURRENT_DATE
          - TOKEN_EXPIRED
          - TOKEN_REVOKED
          - TOKEN_ALREADY_USED
          - TOKEN_NOT_FOUND
          - DRATA_TERMS_NOT_AGREED_TO
          - BACKGROUND_CHECK_ALREADY_STARTED
          - BACKGROUND_CHECK_MISSING_PACKAGES
          - BACKGROUND_CHECK_PACKAGES_REQUEST
          - BACKGROUND_CHECK_UNAUTHORIZED
          - CONFLICT_MONITOR_CHECK_STATUS
          - CONFLICT_USER_IDENTITY_VERSION_CONTROL_LINK
          - CONFLICT_USER_IDENTITY_ACCESS_REVIEW_LINK
          - CONFLICT_MONITOR_CUSTOM_CONNECTION_DELETED
          - CONFLICT_USER_INFRASTRUCTURE_CONTROL_LINK
          - PUBLISH_FRAMEWORK_MISSING_ELEMENT
          - CONFLICT_DUPLICATE_PROVIDER_CONNECTION
          - CONFLICT_MISMATCHED_EMAIL_DOMAIN
          - CONFLICT_COMMENT_AUTHOR
          - NONEXISTENT_COMMENT_THREAD
          - CONFLICT_COMMENT_EXISTS
          - SECURITY_REPORT_NOT_SHAREABLE
          - SECURITY_REPORT_SHARE_TOKEN_MISMATCH
          - RIPPLING_SERVICE_ERROR
          - ONBOARDING_STEP_LOCKED
          - ONBOARDING_NOT_COMPLETE
          - POLICY_NAME_UNAVAILABLE
          - MERGEDEV_LINK_TOKEN_FAILED
          - MERGEDEV_ACCESS_TOKEN_FAILED
          - REFRESH_TOKEN_NOT_FOUND
          - MAGIC_TOKEN_NOT_FOUND
          - POLICY_VERSION_TOO_LOW
          - FAILED_TO_UPLOAD_POLICY_VERSION_HTML
          - POLICY_ALREADY_APPROVED
          - POLICY_NOT_FOUND
          - NO_ENABLED_FRAMEWORKS_FOR_POLICY
          - POLICY_VERSION_NOT_APPROVED_OR_PUBLISHED
          - POLICY_VERSION_NOT_CURRENT
          - JWT_EMPTY_AUDITOR
          - JWT_MISSING_AUDITOR
          - AUDITOR_CLIENT_FORBIDDEN
          - JWT_AUDITOR_MISSING_CLIENT
          - CONFLICT_DUPLICATE_CLIENT_ID_CONNECTION
          - CONFLICT_CONNECTION_CLIENTID
          - CONFLICT_CONNECTION_CLIENT_ALIAS
          - CONFLICT_CONNECTION_AUTOPOPULATED_CLIENTID
          - CONFLICT_CONNECTION_AUTOPOPULATED_CLIENT_ALIAS
          - CONFLICT_CONNECTION_MULTIPLE_PROVIDER_TYPE
          - CONFLICT_MULTIPLE_CONNECTION_FEATURE
          - CONFLICT_MULTIPLE_IDPS
          - CONFLICT_CONNECTION_JIRA_EXTRANEOUS_ACCOUNT
          - FAILED_DEPENDENCY_JIRA
          - AUTHENTICATION_ERROR_WORK_OS
          - AUTHENTICATION_ERROR_SOCKET
          - AUTHENTICATION_ERROR_WORK_OS_MISSING_PROFILE
          - AUTHENTICATION_ERROR_WORK_OS_MISSING_EMAIL
          - PAYMENT_REQUIRED
          - NO_CONTROLS_FOUND
          - CONFLICT_CONTROL_NEEDS_REQUIREMENT
          - CONFLICT_CONTROL_PRODUCT_MISMATCH
          - INVALID_DOMAIN
          - CONFLICT_DUPLICATED_AUDITOR
          - CONFLICT_MISMATCH_DATA
          - EMPLOYEE_AUDITOR_CONFLICT
          - CUSTOMER_AUDITOR_CONFLICT
          - CUSTOMER_UNAUTHORIZED
          - IDP_CLIENT_UNAUTHORIZED
          - INVALID_CODE_PREFIX
          - DUPLICATE_CONTROL_CODE
          - REQUIREMENT_DOES_NOT_EXIST
          - NO_REQUIREMENTS_FOUND
          - SSO_ENFORCED
          - IDP_ENFORCED
          - SETTING_NOT_FOUND
          - CANNOT_CHANGE_DCF_CONTROL_CODE
          - CANNOT_CHANGE_OTHER_USER_SETTING
          - DUPLICATED_FRAMEWORK
          - FRAMEWORK_NOT_RELATED
          - POLICY_VERSION_NOT_FOUND
          - FRAMEWORK_NOT_FOUND
          - FRAMEWORK_DISABLED
          - FRAMEWORKS_NOT_PROVISIONED
          - POLICY_VERSION_WITHOUT_KEY
          - INVALID_FILE_NAME
          - JWT_MISSING_TOKEN
          - CONFLICT_DUPLICATE_CLIENT_CONNECTION
          - DIFFERENT_DEVICE_OWNER
          - CONFLICT_DEVICE_ALREADY_IN_USE
          - CANNOT_ENABLE_ACCOUNT_ENTITLEMENT
          - CANNOT_DISABLE_ACCOUNT_ENTITLEMENT
          - ACCOUNT_FEATURE_TOGGLE_INVALID_FEATURE_TYPE
          - TRUST_CENTER_CNAME
          - TRUST_CENTER_CRM_DELETE
          - TRUST_CENTER_POLICY_NOT_FOUND
          - TRUST_CENTER_SECURITY_REPORT_NOT_FOUND
          - TRUST_CENTER_REPORT_NOT_FOUND
          - TRUST_CENTER_NDA_NOT_FOUND
          - TRUST_CENTER_NDA_DOWNLOAD
          - TRUST_CENTER_REQUEST_FILES_DOWNLOAD
          - TRUST_CENTER_REQUEST_NOT_FOUND
          - CRM_NO_DATA
          - CRM_INVALID_FIELD
          - CRM_INVALID_FIELD_TYPE
          - CRM_QUERY_FAILED
          - TRUST_CENTER_REQUEST_CRM_CONNECTION_FAILED
          - CRM_NO_OPPORTUNITY
          - TRUST_CENTER_CRM_CONNECTION_NOT_FOUND
          - TRUST_CENTER_REQUEST_INVALID
          - TRUST_CENTER_REQUEST_ZIP_NOT_FOUND
          - TRUST_CENTER_COMPANY_INFO_NOT_FOUND
          - TRUST_CENTER_EMAIL_DOMAIN_NOT_FOUND
          - TRUST_CENTER_ANNOUNCEMENT_NOT_FOUND
          - TRUST_CENTER_DISMISSAL_DUPLICATED
          - TRUST_CENTER_EMAIL_ADDRESS_NOT_FOUND
          - FEATURE_ANNOUNCEMENT_DISMISSAL_DUPLICATED
          - CONFLICT_CROSS_TENANT_ENTRY
          - CONFLICT_CROSS_ENTRY_EMAIL
          - TRUST_CENTER_FORBIDDEN
          - TRUST_CENTER_SUB_PROCESSORS_INFO_NOT_FOUND
          - MULTIPLE_PRODUCT_SUPPORT_PRODUCT_NOT_FOUND
          - CONFLICT_USER_OBSERVABILITY_CONTROL_LINK
          - NOTIFICATION_CONNECTION_NOT_AVAILABLE
          - NOTIFICATIONS_NOT_FOUND
          - CUSTOM_FRAMEWORK_NOT_SAVED
          - CUSTOM_REQUIREMENT_NOT_SAVED
          - CONFLICT_DUPLICATE_REQUIREMENT_CODE
          - CONFLICT_REQUIREMENT_ALREADY_EXISTS
          - CONFLICT_INVALID_REQUIREMENT
          - CREATE_TICKET_DATATYPE_NOT_SUPPORTED
          - CREATE_TICKET_FIELD_NOT_VALID
          - TICKET_STRUCTURE_NOT_SUPPORTED
          - TICKET_NOT_FOUND
          - CONNECTION_WITH_WRITE_ACCESS_NOT_FOUND
          - SDLC_INVALID_QUERY
          - SDLC_SERVICE_UNAVAILABLE
          - CONFLICT_AUDITOR_LOGIN
          - CONFLICT_MULTI_DOMAIN_DISABLED
          - CONFLICT_MULTI_DOMAIN_ENABLED
          - BEARER_TOKEN_NOT_FOUND
          - PUBLIC_API_KEY_NOT_FOUND
          - PUBLIC_API_KEY_ACCOUNT_NOT_FOUND
          - PUBLIC_API_KEY_FORBIDDEN
          - MERGEDEV_ACCOUNT_NEEDS_RELINK
          - ENDPOINT_NOT_FOUND
          - DATADOG_LOGS_READ_ARCHIVES_PERMISSION
          - DATADOG_USAGE_READ_PERMISSION
          - DATADOG_SECURITY_NOTIFICATION_PERMISSION
          - DATADOG_CONNECTION_REQUEST_INVALID
          - WORKSPACE_NAME_ALREADY_EXISTS
          - WORKSPACE_IS_PRIMARY
          - GOOGLE_IDP_ACCESS_DENIED
          - GOOGLE_OAUTH_IDP_ACCESS_DENIED
          - GOOGLE_IDP_INVALID_GRANT
          - GOOGLE_OAUTH_IDP_INVALID_GRANT
          - GITHUB_ORGANIZATION_NOT_FOUND
          - AWS_CONNECTION_ACCESS_DENIED
          - MICROSOFT_365_INVALID_DOMAIN
          - MICROSOFT_365_ACCESS_DENIED
          - MICROSOFT_365_INVALID_GRANT
          - GCP_INVALID_GRANT
          - GCP_PROJECTS_INVALID_PROJECT_IDS
          - GCP_ACCESS_DENIED
          - AZURE_ACCESS_DENIED
          - OKTA_ACCESS_DENIED
          - OKTA_OAUTH_ACCESS_DENIED
          - JIRA_ACCESS_DENIED
          - CLOUDFLARE_ACCESS_DENIED
          - CLOUDFLARE_NO_ACCOUNTS
          - GITLAB_ACCESS_DENIED
          - GITLAB_NOT_FOUND
          - BITBUCKET_ACCESS_DENIED
          - DOCUSIGN_BAD_CLIENT_ID
          - SITE_ADMIN_MISSING_ADMIN_ROLE
          - SITE_ADMIN_NOT_FOUND
          - AUDITOR_INVALID_DATA
          - AUDITOR_FRAMEWORK_WRONG_AUDIT_TYPE
          - TICKET_MONITORING_NOT_FOUND
          - AUTOMATE_TICKETING_CONNECTION_NOT_FOUND
          - TICKET_MONITORING_FIELD_NOT_FOUND
          - FIELDS_NOT_FOUND
          - PRODUCT_NOT_FOUND
          - TICKET_STRUCTURE_MISSING_SUMMARY
          - MICROSOFT_GRAPH_ACCESS_DENIED
          - MICROSOFT_GRAPH_BAD_REQUEST
          - MICROSOFT_GRAPH_RESOURCE_NOT_FOUND
          - MICROSOFT_GRAPH_THROTTLED
          - MICROSOFT_GRAPH_UNAVAILABLE
          - MICROSOFT_GRAPH_REQUEST_FAILED
          - MICROSOFT_GRAPH_CLIENT_ERROR
          - MTLS_CLIENT_CERT_MISSING
          - MTLS_UNAUTHORIZED_CN
          - MTLS_NOT_ENABLED
          - MTLS_ACCOUNT_HEADER_MISSING
          - ROLE_PERMISSION_FORBIDDEN
          - MDM_UNAUTHORIZED
          - SERVICE_PROVIDER_DUPLICATED
          - SERVICE_PROVIDER_NOT_ALLOWED_DOMAIN
          - SERVICE_GROUP_DUPLICATED_DOMAIN
          - JWT_MISSING_SERVICE_USER
          - JWT_EMPTY_SERVICE_USER
          - AUDITOR_EXISTS
          - SERVICE_USER_NOT_FOUND
          - SERVICE_PROVIDER_AUDITOR_CONFLICT
          - DOCUMENT_LIBRARY_NOT_FOUND
          - CONTROL_DOCUMENT_NOT_FOUND
          - DOCUMENT_VERSION_NOT_FOUND
          - DOCUMENT_WORKFLOW_TYPE_NOT_SUPPORTED
          - REQUEST_MESSAGE_NOT_FOUND
          - POLICY_VERSION_EXIST
          - POLICY_IS_NOT_CUSTOM_POLICY
          - EXTERNAL_POLICY_NOT_FOUND
          - EXTERNAL_POLICY_FILE_NOT_FOUND
          - EXTERNAL_POLICY_FILE_ID_NOT_FOUND
          - PROCESS_NOT_SUPPORTED
          - RAPID7_INVALID_LICENSE_STATUS
          - RAPID7_UNAUTHORIZED_CREDENTIALS
          - RAPID7_INVALID_DOMAIN
          - AUTOPILOT_RECIPE_BAD_SCHEMA
          - AUTOPILOT_NO_AP2_TESTS_ENABLED
          - AUTOPILOT_NO_AP2_MONITOR_STATUS
          - AUTOPILOT_MONITOR_RECIPE_NOT_FOUND
          - AUTOPILOT_WORKFLOW_LIST_NOT_FOUND
          - AUTOPILOT_TEMPORAL_CLUSTER_DATA_NOT_FOUND
          - AUTOPILOT_MONITOR_CONNECTIONS_NOT_FOUND
          - CUSTOM_TASK_WRONG_WORKSPACE_ID
          - CUSTOM_TASK_WRONG_ASSIGNEE_ID
          - INVALID_RECURRING_SCHEDULE
          - USER_MISSING_ROLES
          - CUSTOM_TASK_CONFIGURATION_WRONG_ID
          - CUSTOM_TASK_SCHEDULE_REQUIRED
          - CUSTOM_TASK_WRONG_TASK_TYPE
          - CUSTOM_TASK_WRONG_ID
          - CUSTOM_RISK_NOT_FOUND
          - CONFLICT_ADMIN_SERVICE_USER
          - SCANNER_ACCESS_DENIED
          - FILES_NOT_SCANNABLE
          - ZIP_INTERNAL_FILES_NOT_SUPPORTED
          - SCANNER_FILE_MAX_SIZE_REACHED
          - SCANNER_FILE_NOT_OK
          - ZIP_FILE_EMPTY
          - CSV_INVALID_FORMAT
          - CSV_INVALID_FILETYPE
          - CSV_INVALID_FILE_EXTENSION
          - CSV_INVALID_FILE_SIZE
          - CSV_INVALID_FILE_FORMAT
          - CSV_MISSING_COLUMNS
          - CSV_MISSING_REQUIRED_VALUES
          - CSV_DUPLICATED_CODES
          - CSV_INVALID_DATA
          - CSV_INVALID_FIELD_SCHEMA
          - CSV_DUPLICATED_NAMES
          - CSV_NO_RECORDS
          - CSV_EMPTY_ROW
          - CSV_DUPLICATED_REQUIREMENT
          - CSV_CONTROL_NOT_ENABLED
          - CSV_MAX_LENGTH_EXCEEDED
          - CSV_DUPLICATED_REQUEST_IDS
          - CSV_DUPLICATED_TITLES
          - CSV_DUPLICATED_CUSTOMER_REQUESTS
          - CSV_MAX_ROWS_EXCEEDED
          - CSV_DUPLICATED_ROWS
          - INVALID_ARGUMENT
          - DOCUMENT_NOT_FOUND
          - DOCUMENT_VERSION_MISMATCH
          - EVIDENCE_NOT_FOUND
          - INVALID_EVIDENCE
          - EVIDENCE_LIBRARY_MISSING_RENEWAL_DATE_FOR_NOT_NONE_TYPE
          - CONTROL_NOT_FOUND
          - CONTROL_NOT_FROM_WORKSPACE
          - FEATURE_FLAG_DISABLED
          - INVALID_SCAN_METADATA
          - SCAN_PROCESS_NOT_FOUND
          - GITLAB_PAT_EXPIRED
          - RISK_THRESHOLD_INVALID_LOWEST_THRESHOLD_VALUE
          - RISK_THRESHOLD_INVALID_HIGHEST_THRESHOLD_VALUE
          - RISK_THRESHOLD_INVALID_THRESHOLD_RANGES
          - RISK_INVALID_SCORE_VALUE
          - RISK_INVALID_IMPACT_VALUE
          - RISK_INVALID_LIKELIHOOD_VALUE
          - SENTINEL_ONE_INVALID_DOMAIN
          - SENTINEL_ONE_UNAUTHORIZED_CREDENTIALS
          - RISK_NOT_FOUND
          - AUDIT_API_KEY_NOT_FOUND
          - AUDIT_API_KEY_ACCOUNT_NOT_FOUND
          - AUDIT_API_KEY_FORBIDDEN
          - AUDIT_API_KEY_FIRM_NOT_FOUND
          - AUDITOR_NOT_FOUND
          - TENANT_AUDITOR_FORBIDDEN
          - AUDIT_AUDITOR_FORBIDDEN
          - AUDIT_ACCOUNT_MISMATCH
          - AUDIT_ASSIGNED_AUDITOR_FORBIDDEN
          - AUDIT_SAMPLE_NOT_FOUND
          - SWITCH_REQUIREMENT_PROFILE_PRODUCT_ID_NOT_FOUND
          - SWITCH_REQUIREMENT_PROFILE_REQUIREMENT_NOT_FOUND
          - SWITCH_REQUIREMENT_PROFILE_CONTROL_MAPPING_NOT_FOUND
          - SWITCH_REQUIREMENT_PROFILE_FRAMEWORK_NOT_FOUND
          - SWITCH_REQUIREMENT_PROFILE_LOWER_BASELINE
          - SWITCH_FRAMEWORK_PROFILE_FRAMEWORK_NOT_FOUND
          - SWITCH_FRAMEWORK_PROFILE_PROFILE_DETAILS_NOT_FOUND
          - TICKET_ATTACHMENT_SIZE_LIMIT
          - APIDECK_FAILED
          - INVALID_TICKET_STATUS
          - CSPM_RULE_URL_ERROR
          - CSPM_RISK_TYPE_CONFLICT
          - CSPM_CONTROLS_NOT_ENABLED
          - OKTA_NO_MATCHING_DOMAINS
          - OKTA_SOURCE_MISSING_ID
          - OKTA_SOURCE_MISSING_EMAIL
          - OKTA_SOURCE_MISSING_FIRSTNAME
          - OKTA_SOURCE_MISSING_LASTNAME
          - OKTA_DOMAINS_MISMATCH
          - OKTA_USER_NO_IDENTITIES
          - OKTA_IDENTITY_MISMATCH
          - OKTA_BAD_CODE
          - OKTA_NO_ROUTER_MD_MATCH
          - OKTA_NO_ROUTER_ACCOUNT_MATCH
          - OKTA_BAD_GET_USER_INFO_RESPONSE
          - OKTA_MISSING_METADATA
          - OKTA_MISSING_PAYLOAD
          - OKTA_GET_USER_INFO_RESPONSE_INVALID_URL
          - OKTA_SOURCE_MISSING_DOMAIN
          - OKTA_MULTIPLE_ROUTER_KEYS_ON_LOGIN
          - OKTA_MULTIPLE_ACCOUNTS_WITH_SAME_EMAIL_AND_TENANT_ROUTER_KEY
          - CONNECTION_GROUP_NOT_FOUND
          - PROVIDER_CATALOG_PROVIDER_NOT_AVAILABLE
          - PROVIDER_CATALOG_RESOURCE_NOT_AVAILABLE
          - PROVIDER_CATALOG_PROVIDER_TYPE_NOT_AVAILABLE
          - PROVIDER_CATALOG_SERVICE_RESOURCES_NOT_AVAILABLE
          - PROVIDER_CATALOG_SERVICE_RESOURCE_NOT_AVAILABLE
          - PROVIDER_CATALOG_MISSING_CLIENT_ALIAS
          - PROVIDER_CATALOG_MISSING_WORKSPACE_ID
          - LLM_ERROR
          - LLM_EMPTY_RESPONSE
          - LLM_NOT_FOUND
          - LLM_FAIL
          - CONTROL_TEST_STATUS_INVALID
          - CONTROL_TEST_DRAFT_ALREADY_EXIST
          - CONTROL_TEST_INSTANCE_NOT_FOUND
          - CONTROL_TEST_INSTANCE_DRAFT_FORBIDDEN
          - CONTROL_TEST_INSTANCE_CHECK_TYPE_FORBIDDEN
          - ORG_UNITS_SUB_ACCOUNTS_LIMIT_EXCEEDED
          - ORG_UNITS_INVALID_ROOT_ID
          - ORG_UNITS_INVALID_ACCOUNT_IDS
          - VENDOR_DISCOVERED_NOT_FOUND
          - VENDOR_FEATURE_DISMISSAL_DUPLICATED
          - VENDOR_CURATED_EDIT_RESTRICTED
          - CONTROL_TEST_IS_NOT_DRAFT
          - CONTROL_TEST_IS_NOT_PUBLISHED
          - RESTRICTED_VIEW_ENABLED
          - CONTROL_IS_CUSTOM_CANNOT_RESET_REQUIREMENT_MAPPINGS
          - CONTROL_IS_CUSTOM_CANNOT_RESET_TEST_MAPPINGS
          - CONTROL_IS_CUSTOM_CANNOT_RESET_POLICY_MAPPINGS
          - REQUIREMENT_IS_CUSTOM_CANNOT_RESET_REQUIREMENT_MAPPINGS
          - FRAMEWORK_IS_CUSTOM_CANNOT_RESET_CONTROL_MAPPINGS
          - CONFLICT_CONTROL_NEEDS_WORKSPACE
          - CONTROL_TEST_IS_NOT_CUSTOM
          - POLICY_RESPONSIBILITY_NOT_FOUND
          - CUSTOM_TEST_LIMIT_NOT_FOUND
          - FEATURE_NOT_FOUND
          - FEATURE_METADATA_NOT_ENABLED
          - FEATURE_METADATA_NOT_VALID
          - FEATURE_METADATA_NOT_FOUND
          - CUSTOM_TEST_LIMIT_REACHED
          - ADAPTIVE_AUTOMATION_METADATA_NOT_FOUND
          - SYNC_IS_IN_PROGRESS
          - CROWDSTRIKE_INVALID_CONNECTION_DATA
          - MAX_CUSTOM_FIELDS_PER_TENANT
          - MAX_CUSTOM_FIELDS_PLACEMENTS_LIMIT_REACHED
          - NOTION_UNAUTHORIZED_WORKSPACE
          - NOTION_INVALID_GRANT
          - NOTION_UNAUTHORIZED_TOKEN
          - RUN_MODE_NOT_SUPPORTED
          - OPPORTUNITY_NOT_FOUND
          - AI_FORBIDDEN
          - AI_DOCUMENT_NOT_FOUND
          - TYPEFORM_FORM_NOT_FOUND
          - CUSTOM_FIELD_SECTION_LIMIT
          - CUSTOM_FIELD_MAX_PER_TENANT
          - CUSTOM_FIELD_MAX_PLACEMENTS
          - CUSTOM_FIELD_PROHIBITED_TYPE_CHANGE
          - CUSTOM_FIELD_TYPE_RESTRICTION
          - CUSTOM_FIELD_AUTHORIZED_DATA_OBJECT
          - CUSTOM_FIELD_CURRENCY_CODE_EDITING
          - CUSTOM_FIELD_GENERAL_ERROR
          - CUSTOM_FIELD_INVALID_FORMAT
          - CUSTOM_FIELD_NAME_EXIST
          - POLICY_IMAGE_SIZE_EXCEEDED
          - POLICY_IMAGE_LIMIT_EXCEEDED
          - POLICY_FILE_SIZE_EXCEEDED
          - FAILED_TO_GET_FILE_SIZE
          - POLICY_IMAGE_UNSUPPORTED_MIMETYPE
          - GITHUB_ENTERPRISE_CONVERSION_ERROR
          - GITHUB_ENTERPRISE_CONVERSION_EMPTY
          - GITHUB_ENTERPRISE_CONNECTION_EMPTY
          - CUSTOM_FIELDS_PROHIBITED_LOCATION_CHANGE
          - AZURE_ORG_UNITS_MAX_SUBSCRIPTIONS
          - AZURE_ORG_UNITS_TENANT_EXISTS
          - POLICY_VERSION_CONTENT_NOT_FOUND
          - POLICY_VERSION_APPENDIX_NOT_FOUND
          - AUDIT_HUB_AUDITOR_NOT_AUTHORIZED_IN_ACCOUNT
          - AUDIT_HUB_AUDITOR_EXISTS_FOR_ACCOUNT
          - AUDIT_NOT_FOUND
          - AUDIT_WITH_NO_AUDITORS
          - CUSTOM_FIELD_LOCATION_ENTITY_EDITING
          - CUSTOM_FORMULA_LOCATION
          - CUSTOM_FORMULA_MAX_PER_TENANT
          - CUSTOM_FIELD_NAME_EDITING
          - CUSTOM_FIELD_IS_HIDDEN_EDITING
          - CUSTOM_FIELD_DELETING
          - SECURITY_QUESTIONNAIRE_INVALID_STATUS
          - AWS_IDENTITY_CENTER_FORBIDDEN
          - AWS_IDENTITY_CENTER_UNAUTHORIZED
          - VULNERABILITY_CONNECTION_UNAUTHORIZED
          - SLACK_CONNECTION_MISSING_CLIENT_ID
          - EXTERNAL_CLIENT_ROUTER_CLIENT_ID_MULTIPLE_TENANTS
          - AWS_ACTIONS_DENIED_BY_CONFIGURATION
          - CUSTOM_FIELD_FRAMEWORK_ASSOCIATION_REQUIRED
          - LEEN_MISSING_LEEN_RESOURCE
          - AWS_IDENTITY_CENTER_SERVICE_UNAVAILABLE
          - SUPPORT_USER_NOT_SUPPORTED
          - INVALID_AUTHORIZATION_CONTEXT
          - BITBUCKET_CODE

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/drata/refs/heads/main/openapi/drata-control-library-api-openapi.yml