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

# Get Finding Transformation Rule

> Retrieve a single finding transformation rule by ID.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples get /api/v1/findings/transformation-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/transformation-rules/{id}:
    get:
      tags:
        - Finding Transformation Rules
      summary: Get Finding Transformation Rule
      description: Retrieve a single finding transformation rule by ID.
      operationId: >-
        c1.api.finding.v1.FindingTransformationRuleService.GetFindingTransformationRule
      parameters:
        - in: path
          name: id
          required: true
          schema:
            description: The ID of the finding transformation rule to retrieve.
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.finding.v1.GetFindingTransformationRuleResponse
          description: Successful response
      x-codeSamples:
        - lang: go
          label: GetFindingTransformationRule
          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.FindingTransformationRule.GetFindingTransformationRule(ctx, operations.C1APIFindingV1FindingTransformationRuleServiceGetFindingTransformationRuleRequest{\n        ID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.GetFindingTransformationRuleResponse != nil {\n        // handle response\n    }\n}"
components:
  schemas:
    c1.api.finding.v1.GetFindingTransformationRuleResponse:
      description: The GetFindingTransformationRuleResponse message.
      properties:
        transformationRule:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.FindingTransformationRule'
            - type: 'null'
      title: Get Finding Transformation Rule Response
      type: object
      x-speakeasy-name-override: GetFindingTransformationRuleResponse
    c1.api.finding.v1.FindingTransformationRule:
      description: >-
        FindingTransformationRule transforms a finding at processing time,
        before
         routing runs. Rules fall through: every matching rule applies its transforms
         in ascending evaluation_order; the last rule to write a given field wins.
      properties:
        appId:
          description: The appId field.
          type: string
        condition:
          description: >-
            CEL boolean over the Finding object; empty matches all. Evaluated
            over
             base/immutable inputs only (see the transformation env).
          type: string
        createdAt:
          format: date-time
          type:
            - string
            - 'null'
        description:
          description: The description field.
          type: string
        displayName:
          description: The displayName field.
          type: string
        enabled:
          description: The enabled field.
          type: boolean
        evaluationOrder:
          description: >-
            Application order (ascending; last-applied rule wins per field). A
            sequence,
             not a precedence rank.
          format: int32
          type: integer
        id:
          description: The id field.
          type: string
        templateId:
          description: The templateId field.
          type: string
        transforms:
          description: Ordered transforms applied when the rule matches.
          items:
            $ref: '#/components/schemas/c1.api.finding.v1.FindingTransform'
          type:
            - array
            - 'null'
        updatedAt:
          format: date-time
          type:
            - string
            - 'null'
      title: Finding Transformation Rule
      type: object
      x-speakeasy-name-override: FindingTransformationRule
    c1.api.finding.v1.FindingTransform:
      description: >
        FindingTransform is a single mutation applied to a finding by a matched
         transformation rule. Structured ops are the v1 authoring surface; a future
         raw-CEL arm continues numbering at 103.

        This message contains a oneof named kind. Only a single field of the
        following list may be set at a time:
          - setSeverity
          - setTags
          - removeTags
      properties:
        removeTags:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.RemoveTags'
            - type: 'null'
        setSeverity:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.SetSeverity'
            - type: 'null'
        setTags:
          oneOf:
            - $ref: '#/components/schemas/c1.api.finding.v1.SetTags'
            - type: 'null'
      title: Finding Transform
      type: object
      x-speakeasy-name-override: FindingTransform
    c1.api.finding.v1.RemoveTags:
      description: The RemoveTags message.
      properties:
        keys:
          description: The keys field.
          items:
            type: string
          type:
            - array
            - 'null'
      title: Remove Tags
      type: object
      x-speakeasy-name-override: RemoveTags
    c1.api.finding.v1.SetSeverity:
      description: The SetSeverity message.
      properties:
        severity:
          description: The severity field.
          enum:
            - FINDING_SEVERITY_UNSPECIFIED
            - FINDING_SEVERITY_INFO
            - FINDING_SEVERITY_LOW
            - FINDING_SEVERITY_MEDIUM
            - FINDING_SEVERITY_HIGH
            - FINDING_SEVERITY_CRITICAL
          type: string
          x-speakeasy-unknown-values: allow
      title: Set Severity
      type: object
      x-speakeasy-name-override: SetSeverity
    c1.api.finding.v1.SetTags:
      description: The SetTags message.
      properties:
        tags:
          additionalProperties:
            type: string
          description: The tags field.
          type: object
      title: Set Tags
      type: object
      x-speakeasy-name-override: SetTags
  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

````