> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-hidden-info-by-role.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Finding Routing Rule

> Retrieve a single finding routing rule by ID.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples get /api/v1/findings/routing-rules/{id}
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/findings/routing-rules/{id}:
    get:
      tags:
        - Finding Routing Rules
      summary: Get Finding Routing Rule
      description: Retrieve a single finding routing rule by ID.
      operationId: c1.api.finding.v1.FindingRoutingRuleService.GetFindingRoutingRule
      parameters:
        - in: path
          name: id
          required: true
          schema:
            description: The ID of the finding routing rule to retrieve.
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.finding.v1.GetFindingRoutingRuleResponse
          description: Successful response
      x-codeSamples:
        - lang: go
          label: GetFindingRoutingRule
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.FindingRoutingRule.GetFindingRoutingRule(ctx, operations.C1APIFindingV1FindingRoutingRuleServiceGetFindingRoutingRuleRequest{\n        ID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.GetFindingRoutingRuleResponse != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.findingRoutingRule.getFindingRoutingRule({
                id: "<id>",
              });

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.finding.v1.GetFindingRoutingRuleResponse:
      description: The GetFindingRoutingRuleResponse message.
      properties:
        routingRule:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.FindingRoutingRule'
            - type: 'null'
      title: Get Finding Routing Rule Response
      type: object
      x-speakeasy-name-override: GetFindingRoutingRuleResponse
    c1.api.finding.v1.FindingRoutingRule:
      description: The FindingRoutingRule message.
      properties:
        action:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.FindingRoutingRuleAction'
            - type: 'null'
        appId:
          description: The appId field.
          type: string
        condition:
          description: The condition field.
          type: string
        createdAt:
          format: date-time
          type:
            - string
            - 'null'
        description:
          description: The description field.
          type: string
        dispatchers:
          description: >-
            Dispatchers that fire when the rule matches ("Then dispatch"). Max
            10.
          items:
            $ref: '#/components/schemas/c1.api.finding.v1.FindingDispatcher'
          type:
            - array
            - 'null'
        displayName:
          description: The displayName field.
          type: string
        enabled:
          description: The enabled field.
          type: boolean
        findingType:
          description: The findingType field.
          enum:
            - FINDING_TYPE_UNSPECIFIED
            - FINDING_TYPE_SIMILAR_USERNAME_MATCH
            - FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION
            - FINDING_TYPE_NHI_UNOWNED
            - FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED
            - FINDING_TYPE_DECOY_CREDENTIAL_USED
            - FINDING_TYPE_CUSTOM
            - FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED
            - FINDING_TYPE_DEACTIVATED_OWNER
            - FINDING_TYPE_UNUSED_SECRET
            - FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED
            - FINDING_TYPE_DECOY_PUBLICLY_EXPOSED
          type: string
          x-speakeasy-unknown-values: allow
        id:
          description: The id field.
          type: string
        priority:
          description: The priority field.
          format: int32
          type: integer
        templateId:
          description: The templateId field.
          type: string
        updatedAt:
          format: date-time
          type:
            - string
            - 'null'
      title: Finding Routing Rule
      type: object
      x-speakeasy-name-override: FindingRoutingRule
    c1.api.finding.v1.FindingRoutingRuleAction:
      description: >
        The FindingRoutingRuleAction message.


        This message contains a oneof named action. Only a single field of the
        following list may be set at a time:
          - createTask
          - suppress
          - snooze
          - acceptRisk
      properties:
        acceptRisk:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.AcceptRiskRoutingAction'
            - type: 'null'
        createTask:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.CreateTaskAction'
            - type: 'null'
        snooze:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.SnoozeRoutingAction'
            - type: 'null'
        suppress:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.SuppressRoutingAction'
            - type: 'null'
      title: Finding Routing Rule Action
      type: object
      x-speakeasy-name-override: FindingRoutingRuleAction
    c1.api.finding.v1.FindingDispatcher:
      description: >
        FindingDispatcher is one dispatch that fires when a routing rule matches
        (the
         "Then dispatch" authoring step). A rule carries zero-to-many; every enabled
         dispatcher fires, order-independent.

        This message contains a oneof named kind. Only a single field of the
        following list may be set at a time:
          - triggerAutomation
          - invokeFunction
          - webhook
          - notify
      properties:
        displayName:
          description: Human-facing label. Optional.
          type: string
        enabled:
          description: Per-dispatcher kill switch.
          type: boolean
        invokeFunction:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.InvokeFunctionDispatcher'
            - type: 'null'
        key:
          description: >-
            Stable id within the rule; survives edits, part of the dispatch
            idempotency
             key. Minted server-side when empty.
          type: string
        notify:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.NotifyDispatcher'
            - type: 'null'
        notifyOnOutcome:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.finding.v1.FindingDispatchOutcomeNotify
            - type: 'null'
        tierOverride:
          description: Author tier override; may only tighten the derived tier.
          enum:
            - FINDING_DISPATCH_TIER_UNSPECIFIED
            - FINDING_DISPATCH_TIER_AUTO
            - FINDING_DISPATCH_TIER_REQUIRES_APPROVAL
          type: string
          x-speakeasy-unknown-values: allow
        triggerAutomation:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.finding.v1.TriggerAutomationDispatcher
            - type: 'null'
        webhook:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.WebhookDispatcher'
            - type: 'null'
      title: Finding Dispatcher
      type: object
      x-speakeasy-name-override: FindingDispatcher
    c1.api.finding.v1.AcceptRiskRoutingAction:
      description: |-
        AcceptRiskRoutingAction accepts the risk for a matched finding for a
         relative duration (resolved to risk_acceptance_expires_at = now + duration
         at execution time).
      properties:
        duration:
          format: duration
          type:
            - string
            - 'null'
        reason:
          description: The reason field.
          type: string
      title: Accept Risk Routing Action
      type: object
      x-speakeasy-name-override: AcceptRiskRoutingAction
    c1.api.finding.v1.CreateTaskAction:
      description: The CreateTaskAction message.
      properties:
        policyId:
          description: The policyId field.
          type: string
      title: Create Task Action
      type: object
      x-speakeasy-name-override: CreateTaskAction
    c1.api.finding.v1.SnoozeRoutingAction:
      description: |-
        SnoozeRoutingAction snoozes a matched finding for a relative duration
         (resolved to snooze_until = now + duration at execution time).
      properties:
        duration:
          format: duration
          type:
            - string
            - 'null'
        reason:
          description: The reason field.
          type: string
      title: Snooze Routing Action
      type: object
      x-speakeasy-name-override: SnoozeRoutingAction
    c1.api.finding.v1.SuppressRoutingAction:
      description: The SuppressRoutingAction message.
      properties:
        reason:
          description: The reason field.
          type: string
      title: Suppress Routing Action
      type: object
      x-speakeasy-name-override: SuppressRoutingAction
    c1.api.finding.v1.InvokeFunctionDispatcher:
      description: InvokeFunctionDispatcher runs a published C1 function by id.
      properties:
        args:
          additionalProperties:
            type: string
          description: >-
            Arguments passed to the function, keyed by arg name (v0: verbatim
            values;
             CEL evaluation is a later phase).
          type: object
        functionCommitId:
          description: >-
            Optional pinned function commit; empty floats to the published
            commit.
          type: string
        functionId:
          description: ID of the published function to invoke.
          type: string
      title: Invoke Function Dispatcher
      type: object
      x-speakeasy-name-override: InvokeFunctionDispatcher
    c1.api.finding.v1.NotifyDispatcher:
      description: |-
        NotifyDispatcher emits a notifications_v2 notification about the matched
         finding. Exactly one of audience / slack_channel is set: audience notifies
         people (each on whichever channels they enabled in their own notification
         settings), slack_channel posts to one channel.
      properties:
        audience:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.FindingAudience'
            - type: 'null'
        batchWindowSeconds:
          description: >-
            Wait-group window in seconds; 0 sends immediately. A quiet-period
            length,
             not a fixed delay — the batcher slides it forward on each arrival.
          format: uint32
          type: integer
        detailLevel:
          description: How much the notification reveals. Defaults to SUMMARY.
          enum:
            - FINDING_NOTIFY_DETAIL_LEVEL_UNSPECIFIED
            - FINDING_NOTIFY_DETAIL_LEVEL_SUMMARY
            - FINDING_NOTIFY_DETAIL_LEVEL_FULL_DETAIL
          type: string
          x-speakeasy-unknown-values: allow
        slackChannel:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.SlackChannelTarget'
            - type: 'null'
      title: Notify Dispatcher
      type: object
      x-speakeasy-name-override: NotifyDispatcher
    c1.api.finding.v1.FindingDispatchOutcomeNotify:
      description: >-
        FindingDispatchOutcomeNotify notifies recipients once a dispatch
        settles.
      properties:
        onDone:
          description: The onDone field.
          type: boolean
        onError:
          description: The onError field.
          type: boolean
        recipients:
          description: The recipients field.
          items:
            type: string
          type:
            - array
            - 'null'
      title: Finding Dispatch Outcome Notify
      type: object
      x-speakeasy-name-override: FindingDispatchOutcomeNotify
    c1.api.finding.v1.TriggerAutomationDispatcher:
      description: >-
        TriggerAutomationDispatcher runs a C1 automation by id (the "Run now"
        path).
      properties:
        automationId:
          description: ID of the C1 automation/workflow to run.
          type: string
        inputMapping:
          additionalProperties:
            type: string
          description: >-
            Inputs passed to the automation, keyed by input name (v0: verbatim
            values;
             CEL evaluation is a later phase).
          type: object
      title: Trigger Automation Dispatcher
      type: object
      x-speakeasy-name-override: TriggerAutomationDispatcher
    c1.api.finding.v1.WebhookDispatcher:
      description: WebhookDispatcher POSTs to a registered webhook (webhooks v3).
      properties:
        payloadTemplate:
          description: Optional payload template; empty uses the default finding payload.
          type: string
        webhookId:
          description: ID of a registered webhook to POST to.
          type: string
      title: Webhook Dispatcher
      type: object
      x-speakeasy-name-override: WebhookDispatcher
    c1.api.finding.v1.FindingAudience:
      description: >
        FindingAudience resolves to a set of identity user IDs to notify.
        Step-less:
         notifications have no escalation ladder. An empty resolution falls back to
         enabled system owners rather than notifying nobody.

        This message contains a oneof named typ. Only a single field of the
        following list may be set at a time:
          - users
      properties:
        users:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.FindingAudienceUsers'
            - type: 'null'
      title: Finding Audience
      type: object
      x-speakeasy-name-override: FindingAudience
    c1.api.finding.v1.SlackChannelTarget:
      description: >-
        SlackChannelTarget names one Slack channel. Exactly one of channel_name
        /
         channel_id is set; a name is resolved at send time, so an unresolvable name
         fails the dispatch rather than the rule edit.
      properties:
        channelId:
          description: The channelId field.
          type: string
        channelName:
          description: The channelName field.
          type: string
      title: Slack Channel Target
      type: object
      x-speakeasy-name-override: SlackChannelTarget
    c1.api.finding.v1.FindingAudienceUsers:
      description: The FindingAudienceUsers message.
      properties:
        userIds:
          description: The userIds field.
          items:
            type: string
          type:
            - array
            - 'null'
      title: Finding Audience Users
      type: object
      x-speakeasy-name-override: FindingAudienceUsers
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````