> ## Documentation Index
> Fetch the complete documentation index at: https://zeropath.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create custom rule

> Create a new natural language security rule that will be applied during scans



## OpenAPI

````yaml https://zeropath.com/openapi/v1.yaml post /api/v2/rules/create
openapi: 3.1.0
info:
  title: ZeroPath API
  version: 1.0.0
  description: Public API for ZeroPath
servers:
  - url: https://zeropath.com
    description: Production server
    x-fern-server-name: Production
  - url: https://dev.branch.zeropath.com
    description: Development server
    x-fern-server-name: Development
security:
  - apiTokenId: []
    apiTokenSecret: []
tags:
  - name: Organizations
    description: Operations related to organizations
  - name: Stats
    description: Operations related to stats
  - name: Repositories
    description: Operations related to repositories
  - name: Installations
    description: Operations related to installations
  - name: Issues
    description: Operations related to issues
  - name: SCA
    description: Software Composition Analysis
  - name: Scans
    description: Operations related to scans
  - name: Rules
    description: Operations related to custom security rules
  - name: Referrals
    description: Operations related to referrals
paths:
  /api/v2/rules/create:
    post:
      tags:
        - Rules
      summary: Create custom rule
      description: >-
        Create a new natural language security rule that will be applied during
        scans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRuleInput'
      responses:
        '200':
          description: Rule created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CreateRuleInput:
      type: object
      properties:
        organizationId:
          type: string
        name:
          type: string
          description: Name for the custom rule
        rule:
          type: string
          description: Natural language description of the security rule
        globPattern:
          type: string
          default: '**/*'
          description: Glob pattern for files this rule applies to
        sourceTypes:
          type: array
          items:
            type: string
            enum:
              - HTTP_HANDLER
              - FILE_HANDLER
              - STDIN_HANDLER
              - BROWSER_DATA
              - WEBSOCKET
              - SOCKET
              - CLI_ARGUMENT
              - MOBILE_INPUTS
          description: Source types this rule applies to
        repositoryIds:
          type: array
          items:
            type: string
          description: >-
            Specific repository IDs to apply this rule to (if not specified,
            applies to all)
      required:
        - name
        - rule
    Rule:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        rule:
          type: string
          description: Natural language description of the security rule
        globPattern:
          type: string
        sourceTypes:
          type: array
          items:
            type: string
            enum:
              - HTTP_HANDLER
              - FILE_HANDLER
              - STDIN_HANDLER
              - BROWSER_DATA
              - WEBSOCKET
              - SOCKET
              - CLI_ARGUMENT
              - MOBILE_INPUTS
        repositoryIds:
          type: array
          items:
            type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - name
        - rule
        - globPattern
        - sourceTypes
        - repositoryIds
        - createdAt
        - updatedAt
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  securitySchemes:
    apiTokenId:
      type: apiKey
      in: header
      name: X-ZeroPath-API-Token-Id
      x-fern-header:
        name: apiTokenId
        env: ZEROPATH_API_TOKEN_ID
    apiTokenSecret:
      type: apiKey
      in: header
      name: X-ZeroPath-API-Token-Secret
      x-fern-header:
        name: apiTokenSecret
        env: ZEROPATH_API_TOKEN_SECRET

````