Drata Risks API

Risks are potential events that could impact the security, reputation, and financial health of a company.

Business capability
Risk Identification & Assessment BC-120.20

Operations 8

GET /risk-registers/{riskRegisterId}/risks List Risks #
POST /risk-registers/{riskRegisterId}/risks Create Risk #
GET /risk-registers/{riskRegisterId}/risks-search Search Risks by Risk Register #
GET /risks-search Search Risks #
GET /risk-registers/{riskRegisterId}/risks/{riskId} Get Risk #
PUT /risk-registers/{riskRegisterId}/risks/{riskId} Update Risk #
DELETE /risk-registers/{riskRegisterId}/risks/{riskId} Delete Risk #
GET /risk-registers/{riskRegisterId}/insights Get Risk Insights #

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-risks-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-risks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Drata Risks API
  version: V2
  contact: {}
  description: 'Operations tagged Risks 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: Risks
  description: Risks are potential events that could impact the security, reputation, and financial health of a company.
paths:
  /risk-registers/{riskRegisterId}/risks:
    get:
      description: 'Find Risks matching the provided filters.


        🔒 Requires **Risk Management: List Risks** permission.'
      operationId: RiskManagementPublicV2Controller_listRisks
      parameters:
      - name: riskRegisterId
        required: true
        in: path
        description: The Risk Register ID
        schema:
          example: 1
          type: number
      - 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: Which field to sort by
        schema:
          $ref: '#/components/schemas/SortTypeLimitedEnum'
      - 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: expand[]
        required: false
        in: query
        description: List of subcollections and sub-objects to expand
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskExpandV2Enum'
      - name: title
        required: false
        in: query
        description: Filter Risks by title. Performs a case-insensitive partial match on the Risk title field.
        schema:
          example: Activity Log Evaluation - Unauthorized System Access
          type: string
      - name: status
        required: false
        in: query
        description: Filter Risks by status
        schema:
          $ref: '#/components/schemas/RiskStatusTypeEnum'
      - name: treatmentPlan
        required: false
        in: query
        description: 'Filter Risks by their treatment strategy. Treatment plans define how the organization addresses each Risk: ACCEPT (acknowledge and monitor), AVOID (eliminate the Risk source), MITIGATE (reduce impact/likelihood), TRANSFER (shift to third party via insurance/contracts), or UNTREATED (no action taken yet).'
        schema:
          $ref: '#/components/schemas/RiskTreatmentPlanEnum'
      - name: minScore
        required: false
        in: query
        description: Filter Risks by minimum calculated Risk score (impact × likelihood). Score range depends on organization settings (1-25 with thresholds 1-4=low, 5-9=medium, 10-16=high, 17-25=critical)
        schema:
          minimum: 1
          maximum: 25
          example: 5
          type:
          - number
          - 'null'
      - name: maxScore
        required: false
        in: query
        description: Filter Risks by maximum calculated Risk score (impact × likelihood). Score range depends on organization settings (1-25 with thresholds 1-4=low, 5-9=medium, 10-16=high, 17-25=critical)
        schema:
          minimum: 1
          maximum: 25
          example: 16
          type:
          - number
          - 'null'
      - name: vendorId
        required: false
        in: query
        description: Filter Risks by vendor/third-party provider. Specify the unique vendor identifier to return only Risks associated with that specific vendor, such as Risks related to vendor security assessments, data processing agreements, or third-party service dependencies.
        schema:
          example: 1
          type:
          - number
          - 'null'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RisksResponsePublicV2Dto'
        '400':
          description: Malformed data and/or validation errors
        '401':
          description: Invalid Authorization
          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 Risks
      tags:
      - Risks
      x-drata-permissions:
      - risk-management-get
      x-product-area:
      - RISK_MANAGEMENT
    post:
      description: 'Create a new custom Risk in the Risk Register.


        🔒 Requires **Risk Management: Create Risk** permission.'
      operationId: RiskManagementPublicV2Controller_createRisk
      parameters:
      - name: riskRegisterId
        required: true
        in: path
        description: The Risk Register ID
        schema:
          example: 1
          type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RiskCreateRequestPublicV2Dto'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskResponsePublicV2Dto'
        '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'
        '403':
          description: You are not allowed to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '409':
          description: There is a conflict in the business rules with this request
          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'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponsePublicV2Dto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
      security:
      - bearer: []
      summary: Create Risk
      tags:
      - Risks
      x-drata-permissions:
      - risk-management-post
      x-product-area:
      - RISK_MANAGEMENT
    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
  /risk-registers/{riskRegisterId}/risks-search:
    get:
      description: 'Search Risks in a Risk Register with rich filtering, sorting, faceting, and expand. Supports cursor-based pagination.


        🔒 Requires **Risk Management: List Risks** permission.'
      operationId: RiskManagementPublicV2Controller_searchRisks
      parameters:
      - name: riskRegisterId
        required: true
        in: path
        description: The Risk Register ID
        schema:
          example: 1
          type: number
      - 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: Which field to sort by. Highest residual risk first (with `sortDir=DESC`, the default) is the natural default view for a risk register.
        schema:
          $ref: '#/components/schemas/RiskSortEnum'
      - 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: expand[]
        required: false
        in: query
        description: List of subcollections and sub-objects to expand.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskSearchExpandEnum'
      - name: facets[]
        required: false
        in: query
        description: Filter dimensions for which to return value counts in the response. Only honored on the first page (when `cursor` is null). Each requested facet adds one terms aggregation to the search query. Bounded enum facets (`status`, `treatmentPlan`, `type`) are enriched with zero-count entries; unbounded facets (`categories`, `controls`, `ownerEmails`, `reviewerEmails`, `vendorNames`) return only values present in the result set.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskSearchInRegisterFacetEnum'
      - name: q
        required: false
        in: query
        description: Free-text search across `title`, `description`, `riskId`, and `vendorName`. Fuzzy, prefix-aware, and relevance-ranked.
        schema:
          maxLength: 191
          example: unauthorized access
          type: string
      - name: status[]
        required: false
        in: query
        description: Filter Risks by one or more workflow statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskStatusTypeEnum'
      - name: treatmentPlan[]
        required: false
        in: query
        description: Filter Risks by treatment plan.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskTreatmentPlanEnum'
      - name: type[]
        required: false
        in: query
        description: Filter Risks by version type.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskVersionTypeEnum'
      - name: inherentScoreGte
        required: false
        in: query
        description: Filter Risks by minimum inherent (pre-mitigation) score (inclusive).
        schema:
          type: number
      - name: inherentScoreLte
        required: false
        in: query
        description: Filter Risks by maximum inherent (pre-mitigation) score (inclusive).
        schema:
          type: number
      - name: residualScoreGte
        required: false
        in: query
        description: Filter Risks by minimum residual (post-mitigation) score (inclusive).
        schema:
          type: number
      - name: residualScoreLte
        required: false
        in: query
        description: Filter Risks by maximum residual (post-mitigation) score (inclusive).
        schema:
          type: number
      - name: anticipatedCompletionDateGte
        required: false
        in: query
        description: Filter Risks with anticipated completion date on or after this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: anticipatedCompletionDateLte
        required: false
        in: query
        description: Filter Risks with anticipated completion date on or before this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: completedDateGte
        required: false
        in: query
        description: Filter Risks with actual completion date on or after this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: completedDateLte
        required: false
        in: query
        description: Filter Risks with actual completion date on or before this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: categories[]
        required: false
        in: query
        description: Filter Risks by exact category name membership.
        schema:
          type: array
          items:
            type: string
      - name: controls[]
        required: false
        in: query
        description: Filter Risks by exact control code membership (e.g. `AC-04`).
        schema:
          type: array
          items:
            type: string
      - name: ownerEmails[]
        required: false
        in: query
        description: Filter Risks by owner email membership.
        schema:
          type: array
          items:
            type: string
      - name: reviewerEmails[]
        required: false
        in: query
        description: Filter Risks by reviewer email membership.
        schema:
          type: array
          items:
            type: string
      - name: vendorNames[]
        required: false
        in: query
        description: Filter Risks by exact vendor name membership. Each Risk is indexed with a single vendor name (the first associated vendor), so a Risk matches if that vendor name is in the supplied list.
        schema:
          type: array
          items:
            type: string
      - name: customFields
        required: false
        in: query
        description: Filter Risks by Custom Field equality. Repeat the parameter with bracketed indices, e.g. `customFields[0][customFieldId]=42&customFields[0][value]=Financial` (or `customFields[0][name]=Category` in place of `customFieldId`). Multiple entries are AND-ed.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldFilterPublicV2Dto'
      - name: customRangeFields
        required: false
        in: query
        description: Filter Risks by Custom Field range. Repeat the parameter with bracketed indices, e.g. `customRangeFields[0][customFieldId]=99&customRangeFields[0][gte]=5&customRangeFields[0][lte]=10` (or `customRangeFields[0][name]=Score` in place of `customFieldId`). At least one of `gte` / `lte` must be supplied per entry. Multiple entries are AND-ed.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CustomRangeFieldFilterPublicV2Dto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskSearchResponsePublicV2Dto'
        '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'
        '403':
          description: You are not allowed to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseDto'
        '404':
          description: The specified Risk Register does not exist or is not accessible to the caller.
          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: Search Risks by Risk Register
      tags:
      - Risks
      x-drata-permissions:
      - risk-management-get
      x-product-area:
      - RISK_MANAGEMENT
    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
  /risks-search:
    get:
      description: 'Search Risks across every Risk Register the caller can access, with rich filtering, sorting, faceting, and expand.


        🔒 Requires **Risk Management: List Risks** permission.'
      operationId: RiskManagementPublicV2Controller_searchRisksAcrossRegisters
      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: Which field to sort by. Highest residual risk first (with `sortDir=DESC`, the default) is the natural default view for a risk register.
        schema:
          $ref: '#/components/schemas/RiskSortEnum'
      - 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: expand[]
        required: false
        in: query
        description: List of subcollections and sub-objects to expand.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskSearchExpandEnum'
      - name: facets[]
        required: false
        in: query
        description: Filter dimensions for which to return value counts in the response. Only honored on the first page (when `cursor` is null). Each requested facet adds one terms aggregation to the search query. Bounded enum facets (`status`, `treatmentPlan`, `type`) are enriched with zero-count entries; unbounded facets (`categories`, `controls`, `ownerEmails`, `reviewerEmails`, `vendorNames`, `riskRegisterId`) return only values present in the result set.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskSearchFacetEnum'
      - name: q
        required: false
        in: query
        description: Free-text search across `title`, `description`, `riskId`, and `vendorName`. Fuzzy, prefix-aware, and relevance-ranked.
        schema:
          maxLength: 191
          example: unauthorized access
          type: string
      - name: status[]
        required: false
        in: query
        description: Filter Risks by one or more workflow statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskStatusTypeEnum'
      - name: treatmentPlan[]
        required: false
        in: query
        description: Filter Risks by treatment plan.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskTreatmentPlanEnum'
      - name: type[]
        required: false
        in: query
        description: Filter Risks by version type.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskVersionTypeEnum'
      - name: inherentScoreGte
        required: false
        in: query
        description: Filter Risks by minimum inherent (pre-mitigation) score (inclusive).
        schema:
          type: number
      - name: inherentScoreLte
        required: false
        in: query
        description: Filter Risks by maximum inherent (pre-mitigation) score (inclusive).
        schema:
          type: number
      - name: residualScoreGte
        required: false
        in: query
        description: Filter Risks by minimum residual (post-mitigation) score (inclusive).
        schema:
          type: number
      - name: residualScoreLte
        required: false
        in: query
        description: Filter Risks by maximum residual (post-mitigation) score (inclusive).
        schema:
          type: number
      - name: anticipatedCompletionDateGte
        required: false
        in: query
        description: Filter Risks with anticipated completion date on or after this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: anticipatedCompletionDateLte
        required: false
        in: query
        description: Filter Risks with anticipated completion date on or before this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: completedDateGte
        required: false
        in: query
        description: Filter Risks with actual completion date on or after this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: completedDateLte
        required: false
        in: query
        description: Filter Risks with actual completion date on or before this ISO 8601 timestamp.
        schema:
          format: date-time
          type: string
      - name: categories[]
        required: false
        in: query
        description: Filter Risks by exact category name membership.
        schema:
          type: array
          items:
            type: string
      - name: controls[]
        required: false
        in: query
        description: Filter Risks by exact control code membership (e.g. `AC-04`).
        schema:
          type: array
          items:
            type: string
      - name: ownerEmails[]
        required: false
        in: query
        description: Filter Risks by owner email membership.
        schema:
          type: array
          items:
            type: string
      - name: reviewerEmails[]
        required: false
        in: query
        description: Filter Risks by reviewer email membership.
        schema:
          type: array
          items:
            type: string
      - name: vendorNames[]
        required: false
        in: query
        description: Filter Risks by exact vendor name membership. Each Risk is indexed with a single vendor name (the first associated vendor), so a Risk matches if that vendor name is in the supplied list.
        schema:
          type: array
          items:
            type: string
      - name: customFields
        required: false
        in: query
        description: Filter Risks by Custom Field equality. Repeat the parameter with bracketed indices, e.g. `customFields[0][customFieldId]=42&customFields[0][value]=Financial` (or `customFields[0][name]=Category` in place of `customFieldId`). Multiple entries are AND-ed.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldFilterPublicV2Dto'
      - name: customRangeFields
        required: false
        in: query
        description: Filter Risks by Custom Field range. Repeat the parameter with bracketed indices, e.g. `customRangeFields[0][customFieldId]=99&customRangeFields[0][gte]=5&customRangeFields[0][lte]=10` (or `customRangeFields[0][name]=Score` in place of `customFieldId`). At least one of `gte` / `lte` must be supplied per entry. Multiple entries are AND-ed.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CustomRangeFieldFilterPublicV2Dto'
      - name: riskRegisterId[]
        required: false
        in: query
        description: Narrow results to Risks in this subset of Risk Registers. Each ID must be a Risk Register the caller can access; unknown or inaccessible IDs are silently filtered out. Omit to search every Risk Register accessible to the caller.
        schema:
          type: array
          items:
            type: number
            minimum: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskSearchResponsePublicV2Dto'
        '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'
        '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: Search Risks
      tags:
      - Risks
      x-drata-permissions:
      - risk-management-get
      x-product-area:
      - RISK_MANAGEMENT
    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
  /risk-registers/{riskRegisterId}/risks/{riskId}:
    get:
      description: 'Get detail for a Risk item.


        🔒 Requires **Risk Management: Get Risk** permission.'
      operationId: RiskManagementPublicV2Controller_getRisk
      parameters:
      - name: riskRegisterId
        required: true
        in: path
        description: The Risk Register ID
        schema:
          example: 1
          type: number
      - name: riskId
        required: true
        in: path
        description: An integer Risk ID or string risk identifier (e.g., "RISK-001")
        schema:
          oneOf:
          - type: number
            description: Risk ID
            example: 123
          - type: string
            description: Risk identifier
            example: RISK-001
      - name: expand[]
        required: false
        in: query
        description: List of subcollections and sub-objects to expand
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RiskExpandEnum'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskResponsePublicV2Dto'
        '400':
          description: Malformed data and/or validation errors
        '401':
          description: Invalid Authorization
          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
        '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 Risk
      tags:
      - Risks
      x-drata-permissions:
      - risk-management-get-risk-details
      x-product-area:
      - RISK_MANAGEMENT
    put:
      description: 'Update an existing Risk.


        🔒 Requires **Risk Management: Update Risk** permission.'
      operationId: RiskManagementPublicV2Controller_updateRisk
      parameters:
      - name: riskRegisterId
        required: true
        in: path
        description: The Risk Register ID
        schema:
          example: 1
          type: number
      - name: riskId
        required: true
        in: path
        description: An integer Risk ID or string risk identifier (e.g., "RISK-001")
        schema:
          oneOf:
          - type: number
            description: Risk ID
            example: 123
          - type: string
            description: Risk identifier
            example: RISK-001
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RiskUpdateRequestPublicV2Dto'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskResponsePublicV2Dto'
        '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'
        '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:
  

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