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

# Create tool

> Create a new tool



## OpenAPI

````yaml https://api.getcargo.io/openapi.json post /orchestration/tools
openapi: 3.1.0
info:
  title: Cargo API
  version: 1.0.0
  description: Cargo Platform API v1
servers:
  - url: https://api.getcargo.io/v1
    description: Cargo API
security:
  - bearerAuth: []
paths:
  /orchestration/tools:
    post:
      tags:
        - Orchestration - Tools
      summary: Create tool
      description: Create a new tool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  title: Name
                  description: Tool name.
                icon:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: raw
                        data:
                          type: string
                      required:
                        - kind
                        - data
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: emoji
                        emojiSlug:
                          type: string
                      required:
                        - kind
                        - emojiSlug
                  title: Icon
                  description: Tool icon.
                description:
                  title: Description
                  description: Tool description.
                  type: string
                triggers:
                  title: Triggers
                  description: Tool cron triggers.
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      description:
                        anyOf:
                          - type: string
                          - type: 'null'
                      type:
                        type: string
                        const: cron
                      cron:
                        type: string
                      data:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - name
                      - description
                      - type
                      - cron
                      - data
                folderUuid:
                  title: Folder UUID
                  description: Folder identifier.
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$
              required:
                - name
                - icon
              additionalProperties: false
              title: Request body
              description: Request body schema.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tool:
                    type: object
                    properties:
                      uuid:
                        type: string
                      icon:
                        anyOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: raw
                              data:
                                type: string
                            required:
                              - kind
                              - data
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: emoji
                              emojiSlug:
                                type: string
                            required:
                              - kind
                              - emojiSlug
                            additionalProperties: false
                      workspaceUuid:
                        type: string
                      workflowUuid:
                        type: string
                      userUuid:
                        type: string
                      name:
                        type: string
                      folderUuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      creditsCost:
                        anyOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: minMax
                            required:
                              - kind
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: sum
                            required:
                              - kind
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                const: custom
                              min:
                                type: number
                              max:
                                type: number
                            required:
                              - kind
                              - min
                              - max
                            additionalProperties: false
                      description:
                        anyOf:
                          - type: string
                          - type: 'null'
                      isReadOnly:
                        type: boolean
                      triggers:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            description:
                              anyOf:
                                - type: string
                                - type: 'null'
                            type:
                              type: string
                              const: cron
                            cron:
                              type: string
                            temporalScheduleWorkflowId:
                              type: string
                            data:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                          required:
                            - name
                            - description
                            - type
                            - cron
                            - temporalScheduleWorkflowId
                            - data
                          additionalProperties: false
                      publicForm:
                        anyOf:
                          - type: object
                            properties:
                              isEnabled:
                                type: boolean
                              allowedOrigins:
                                type: array
                                items:
                                  type: string
                              spam:
                                type: object
                                properties:
                                  captchaProvider:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - turnstile
                                          - hcaptcha
                                      - type: 'null'
                                  captchaSiteKey:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                  captchaSecret:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                  minFillMillis:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                required:
                                  - captchaProvider
                                  - captchaSiteKey
                                  - captchaSecret
                                  - minFillMillis
                                additionalProperties: false
                              presentation:
                                default: null
                                anyOf:
                                  - type: object
                                    properties:
                                      theme:
                                        anyOf:
                                          - type: object
                                            properties:
                                              preset:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - light
                                                      - dark
                                                  - type: 'null'
                                              primaryColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              primaryTextColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              primaryHoverColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              textColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              mutedColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              backgroundColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              borderColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              borderFocusColor:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              radius:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                              fontFamily:
                                                anyOf:
                                                  - type: string
                                                  - type: 'null'
                                            required:
                                              - preset
                                              - primaryColor
                                              - primaryTextColor
                                              - primaryHoverColor
                                              - textColor
                                              - mutedColor
                                              - backgroundColor
                                              - borderColor
                                              - borderFocusColor
                                              - radius
                                              - fontFamily
                                            additionalProperties: false
                                          - type: 'null'
                                    required:
                                      - theme
                                    additionalProperties: false
                                  - type: 'null'
                            required:
                              - isEnabled
                              - allowedOrigins
                              - spam
                              - presentation
                            additionalProperties: false
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      deletedAt:
                        anyOf:
                          - type: string
                          - type: 'null'
                    required:
                      - uuid
                      - icon
                      - workspaceUuid
                      - workflowUuid
                      - userUuid
                      - name
                      - folderUuid
                      - creditsCost
                      - description
                      - isReadOnly
                      - triggers
                      - publicForm
                      - createdAt
                      - updatedAt
                      - deletedAt
                    additionalProperties: false
                    title: Tool
                    description: Created tool details.
                required:
                  - tool
                additionalProperties: false
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '500':
          description: Internal server error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````