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

# Create a new tool

> Registers a new security assessment tool in the system with specified configuration and capabilities.



## OpenAPI

````yaml /api-reference/openapi.json post /api/tools
openapi: 3.0.0
info:
  title: Open Attack Surface Management
  description: Open-source platform for cybersecurity Attack Surface Management (ASM)
  version: '1.0'
  contact: {}
servers:
  - url: https://{baseUrl}/api/v1
    variables:
      baseUrl:
        default: localhost:3000
        description: API server hostname with port (e.g. localhost:3000, api.example.com)
security: []
tags: []
externalDocs:
  description: Authentication Docs
  url: auth/docs
paths:
  /api/tools:
    post:
      tags:
        - Tools
      summary: Create a new tool
      description: >-
        Registers a new security assessment tool in the system with specified
        configuration and capabilities.
      operationId: ToolsController_createTool
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateToolDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tool'
                allOf:
                  - $ref: '#/components/schemas/AppResponseSerialization'
components:
  schemas:
    CreateToolDto:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
          enum:
            - subdomains
            - http_probe
            - ports_scanner
            - vulnerabilities
            - screenshot
            - classifier
            - assistant
        version:
          type: string
        logoUrl:
          type: string
          nullable: true
        providerId:
          type: string
          description: The ID of the provider
      required:
        - name
        - description
        - category
        - version
        - providerId
    Tool:
      type: object
      properties:
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        name:
          type: string
        description:
          type: string
        command:
          type: string
        category:
          type: string
          enum:
            - subdomains
            - http_probe
            - ports_scanner
            - vulnerabilities
            - screenshot
            - classifier
            - assistant
        version:
          type: string
        logoUrl:
          type: string
          nullable: true
        isBuiltIn:
          type: boolean
        isInstalled:
          type: boolean
        isOfficialSupport:
          type: boolean
        type:
          type: string
          enum:
            - built_in
            - provider
        providerId:
          type: string
        availableWorkersCount:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - name
        - description
        - command
        - category
        - version
        - isBuiltIn
        - isInstalled
        - isOfficialSupport
        - type
        - providerId

````