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

# Delete Tool

> Delete a tool.



## OpenAPI

````yaml delete /api/v1/tools/{tool_id}
openapi: 3.1.0
info:
  title: Voicebot Public API
  description: Public API for Voicebot Assistant Management
  version: 1.0.0
servers: []
security: []
paths:
  /api/v1/tools/{tool_id}:
    delete:
      tags:
        - tools
      summary: Delete Tool
      description: Delete a tool.
      operationId: delete_tool_api_v1_tools__tool_id__delete
      parameters:
        - name: tool_id
          in: path
          required: true
          schema:
            type: string
            title: Tool Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    ToolResponse:
      properties:
        id:
          type: string
          title: Id
        type:
          type: string
          title: Type
        function:
          anyOf:
            - $ref: '#/components/schemas/OpenAIFunction-Output'
            - type: 'null'
        server:
          anyOf:
            - $ref: '#/components/schemas/Server'
            - type: 'null'
        messages:
          anyOf:
            - items:
                anyOf:
                  - $ref: '#/components/schemas/ToolMessageStart-Output'
                  - $ref: '#/components/schemas/ToolMessageComplete-Output'
                  - $ref: '#/components/schemas/ToolMessageFailed-Output'
                  - $ref: '#/components/schemas/ToolMessageDelayed-Output'
              type: array
            - type: 'null'
          title: Messages
        organizationId:
          type: string
          title: Organizationid
        createdBy:
          type: string
          title: Createdby
        createdAt:
          type: string
          title: Createdat
        updatedAt:
          type: string
          title: Updatedat
      type: object
      required:
        - id
        - type
        - organizationId
        - createdBy
        - createdAt
        - updatedAt
      title: ToolResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    OpenAIFunction-Output:
      properties:
        strict:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Strict
          description: >-
            This is a boolean that controls whether to enable strict schema
            adherence when generating the function call. If set to true, the
            model will follow the exact schema defined in the parameters field.
            Only a subset of JSON Schema is supported when strict is true. Learn
            more about Structured Outputs in the [OpenAI
            guide](https://openai.com/index/introducing-structured-outputs-in-the-api/).


            @default false
          default: false
        name:
          type: string
          maxLength: 64
          title: Name
          description: >-
            This is the the name of the function to be called.


            Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a
            maximum length of 64.
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Description
          description: >-
            This is the description of what the function does, used by the AI to
            choose when and how to call the function.
        parameters:
          anyOf:
            - $ref: '#/components/schemas/OpenAIFunctionParameters-Output'
            - type: 'null'
          description: >-
            These are the parameters the functions accepts, described as a JSON
            Schema object.


            See the [OpenAI
            guide](https://platform.openai.com/docs/guides/function-calling) for
            examples, and the [JSON Schema
            reference](https://json-schema.org/understanding-json-schema) for
            documentation about the format.


            Omitting parameters defines a function with an empty parameter list.
      type: object
      required:
        - name
      title: OpenAIFunction
    Server:
      properties:
        timeoutSeconds:
          anyOf:
            - type: number
              maximum: 120
              minimum: 1
            - type: 'null'
          title: Timeoutseconds
          description: >-
            This is the timeout in seconds for the request to your server.
            Defaults to 20 seconds.


            @default 20
          examples:
            - 20
        url:
          type: string
          maxLength: 2083
          minLength: 1
          format: uri
          title: Url
          description: >-
            API endpoint to send requests to. Must match specific domains and
            structure.
        secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Secret
          description: >-
            This is the secret you can set that voicebot will send with every
            request to your server. Will be sent as a header called
            x-voicebot-secret.


            Same precedence logic as server.
        headers:
          anyOf:
            - type: object
            - type: 'null'
          title: Headers
          description: >-
            These are the custom headers to include in the request sent to your
            server.


            Each key-value pair represents a header name and its value.
      type: object
      required:
        - url
      title: Server
    ToolMessageStart-Output:
      properties:
        contents:
          anyOf:
            - items:
                $ref: '#/components/schemas/TextContent'
              type: array
            - type: 'null'
          title: Contents
          description: >-
            This is an alternative to the `content` property. It allows to
            specify variants of the same content, one per language.


            Usage:

            - If your assistants are multilingual, you can provide content for
            each language.

            - If you don't provide content for a language, the first item in the
            array will be automatically translated to the active language at
            that moment.


            This will override the `content` property.
        type:
          $ref: '#/components/schemas/Type1'
          description: >-
            This message is triggered when the tool call starts.


            This message is never triggered for async tools.


            If this message is not provided, one of the default filler messages
            "Hold on a sec", "One moment", "Just a sec", "Give me a moment" or
            "This'll just take a sec" will be used.
        content:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Content
          description: >-
            This is the content that the assistant says when this message is
            triggered.
        conditions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Condition'
              type: array
            - type: 'null'
          title: Conditions
          description: >-
            This is an optional array of conditions that the tool call arguments
            must meet in order for this message to be triggered.
      type: object
      required:
        - type
      title: ToolMessageStart
    ToolMessageComplete-Output:
      properties:
        contents:
          anyOf:
            - items:
                $ref: '#/components/schemas/TextContent'
              type: array
            - type: 'null'
          title: Contents
          description: >-
            This is an alternative to the `content` property. It allows to
            specify variants of the same content, one per language.


            Usage:

            - If your assistants are multilingual, you can provide content for
            each language.

            - If you don't provide content for a language, the first item in the
            array will be automatically translated to the active language at
            that moment.


            This will override the `content` property.
        type:
          $ref: '#/components/schemas/Type2'
          description: >-
            This message is triggered when the tool call is complete.


            This message is triggered immediately without waiting for your
            server to respond for async tool calls.


            If this message is not provided, the model will be requested to
            respond.


            If this message is provided, only this message will be spoken and
            the model will not be requested to come up with a response. It's an
            exclusive OR.
        role:
          anyOf:
            - $ref: '#/components/schemas/Role'
            - type: 'null'
          description: >-
            This is optional and defaults to "assistant".


            When role=assistant, `content` is said out loud.


            When role=system, `content` is passed to the model in a system
            message. Example:
                system: default one
                assistant:
                user:
                assistant:
                user:
                assistant:
                user:
                assistant: tool called
                tool: your server response
                <--- system prompt as hint
                ---> model generates response which is spoken
            This is useful when you want to provide a hint to the model about
            what to say next.
        endCallAfterSpokenEnabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Endcallafterspokenenabled
          description: >-
            This is an optional boolean that if true, the call will end after
            the message is spoken. Default is false.


            This is ignored if `role` is set to `system`.


            @default false
          examples:
            - false
        content:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Content
          description: >-
            This is the content that the assistant says when this message is
            triggered.
        conditions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Condition'
              type: array
            - type: 'null'
          title: Conditions
          description: >-
            This is an optional array of conditions that the tool call arguments
            must meet in order for this message to be triggered.
      type: object
      required:
        - type
      title: ToolMessageComplete
    ToolMessageFailed-Output:
      properties:
        contents:
          anyOf:
            - items:
                $ref: '#/components/schemas/TextContent'
              type: array
            - type: 'null'
          title: Contents
          description: >-
            This is an alternative to the `content` property. It allows to
            specify variants of the same content, one per language.


            Usage:

            - If your assistants are multilingual, you can provide content for
            each language.

            - If you don't provide content for a language, the first item in the
            array will be automatically translated to the active language at
            that moment.


            This will override the `content` property.
        type:
          $ref: '#/components/schemas/Type3'
          description: >-
            This message is triggered when the tool call fails.


            This message is never triggered for async tool calls.


            If this message is not provided, the model will be requested to
            respond.


            If this message is provided, only this message will be spoken and
            the model will not be requested to come up with a response. It's an
            exclusive OR.
        endCallAfterSpokenEnabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Endcallafterspokenenabled
          description: >-
            This is an optional boolean that if true, the call will end after
            the message is spoken. Default is false.


            @default false
          examples:
            - false
        content:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Content
          description: >-
            This is the content that the assistant says when this message is
            triggered.
        conditions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Condition'
              type: array
            - type: 'null'
          title: Conditions
          description: >-
            This is an optional array of conditions that the tool call arguments
            must meet in order for this message to be triggered.
      type: object
      required:
        - type
      title: ToolMessageFailed
    ToolMessageDelayed-Output:
      properties:
        contents:
          anyOf:
            - items:
                $ref: '#/components/schemas/TextContent'
              type: array
            - type: 'null'
          title: Contents
          description: >-
            This is an alternative to the `content` property. It allows to
            specify variants of the same content, one per language.


            Usage:

            - If your assistants are multilingual, you can provide content for
            each language.

            - If you don't provide content for a language, the first item in the
            array will be automatically translated to the active language at
            that moment.


            This will override the `content` property.
        type:
          $ref: '#/components/schemas/Type4'
          description: >-
            This message is triggered when the tool call is delayed.


            There are the two things that can trigger this message:

            1. The user talks with the assistant while your server is processing
            the request. Default is "Sorry, a few more seconds."

            2. The server doesn't respond within `timingMilliseconds`.


            This message is never triggered for async tool calls.
        timingMilliseconds:
          anyOf:
            - type: number
              maximum: 120000
              minimum: 100
            - type: 'null'
          title: Timingmilliseconds
          description: >-
            The number of milliseconds to wait for the server response before
            saying this message.
          examples:
            - 1000
        content:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Content
          description: >-
            This is the content that the assistant says when this message is
            triggered.
        conditions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Condition'
              type: array
            - type: 'null'
          title: Conditions
          description: >-
            This is an optional array of conditions that the tool call arguments
            must meet in order for this message to be triggered.
      type: object
      required:
        - type
      title: ToolMessageDelayed
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    OpenAIFunctionParameters-Output:
      properties:
        type:
          $ref: '#/components/schemas/Type6'
          description: >-
            This must be set to 'object'. It instructs the model to return a
            JSON object containing the function call properties.
        properties:
          additionalProperties:
            $ref: '#/components/schemas/JsonSchema'
          type: object
          title: Properties
          description: >-
            This provides a description of the properties required by the
            function.

            JSON Schema can be used to specify expectations for each property.

            Refer to [this
            doc](https://ajv.js.org/json-schema.html#json-data-type) for a
            comprehensive guide on JSON Schema.
        required:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Required
          description: This specifies the properties that are required by the function.
      type: object
      required:
        - type
        - properties
      title: OpenAIFunctionParameters
    TextContent:
      properties:
        type:
          $ref: '#/components/schemas/Type'
        text:
          type: string
          title: Text
        language:
          $ref: '#/components/schemas/Language4'
      type: object
      required:
        - type
        - text
        - language
      title: TextContent
    Type1:
      type: string
      enum:
        - request-start
      title: Type1
    Condition:
      properties:
        operator:
          $ref: '#/components/schemas/Operator'
          description: >-
            This is the operator you want to use to compare the parameter and
            value.
        param:
          type: string
          maxLength: 1000
          title: Param
          description: This is the name of the parameter that you want to check.
        value:
          type: object
          title: Value
          description: This is the value you want to compare against the parameter.
      type: object
      required:
        - operator
        - param
        - value
      title: Condition
    Type2:
      type: string
      enum:
        - request-complete
      title: Type2
    Role:
      type: string
      enum:
        - assistant
        - system
      title: Role
    Type3:
      type: string
      enum:
        - request-failed
      title: Type3
    Type4:
      type: string
      enum:
        - request-response-delayed
      title: Type4
    Type6:
      type: string
      enum:
        - object
      title: Type6
    JsonSchema:
      properties:
        type:
          $ref: '#/components/schemas/Type5'
          description: >-
            This is the type of output you'd like.


            `string`, `number`, `integer`, `boolean` are the primitive types and
            should be obvious.


            `array` and `object` are more interesting and quite powerful. They
            allow you to define nested structures.


            For `array`, you can define the schema of the items in the array
            using the `items` property.


            For `object`, you can define the properties of the object using the
            `properties` property.
        items:
          anyOf:
            - type: object
            - type: 'null'
          title: Items
          description: >-
            This is required if the type is "array". This is the schema of the
            items in the array.


            This is of type JsonSchema. However, Swagger doesn't support
            circular references.
        properties:
          anyOf:
            - type: object
            - type: 'null'
          title: Properties
          description: >-
            This is required if the type is "object". This specifies the
            properties of the object.


            This is a map of string to JsonSchema. However, Swagger doesn't
            support circular references.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            This is the description to help the model understand what it needs
            to output.
        required:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Required
          description: |-
            This is a list of properties that are required.

            This only makes sense if the type is "object".
      type: object
      required:
        - type
      title: JsonSchema
    Type:
      type: string
      enum:
        - text
      title: Type
    Language4:
      type: string
      enum:
        - aa
        - ab
        - ae
        - af
        - ak
        - am
        - an
        - ar
        - as
        - av
        - ay
        - az
        - ba
        - be
        - bg
        - bh
        - bi
        - bm
        - bn
        - bo
        - br
        - bs
        - ca
        - ce
        - ch
        - co
        - cr
        - cs
        - cu
        - cv
        - cy
        - da
        - de
        - dv
        - dz
        - ee
        - el
        - en
        - eo
        - es
        - et
        - eu
        - fa
        - ff
        - fi
        - fj
        - fo
        - fr
        - fy
        - ga
        - gd
        - gl
        - gn
        - gu
        - gv
        - ha
        - he
        - hi
        - ho
        - hr
        - ht
        - hu
        - hy
        - hz
        - ia
        - id
        - ie
        - ig
        - ii
        - ik
        - io
        - is
        - it
        - iu
        - ja
        - jv
        - ka
        - kg
        - ki
        - kj
        - kk
        - kl
        - km
        - kn
        - ko
        - kr
        - ks
        - ku
        - kv
        - kw
        - ky
        - la
        - lb
        - lg
        - li
        - ln
        - lo
        - lt
        - lu
        - lv
        - mg
        - mh
        - mi
        - mk
        - ml
        - mn
        - mr
        - ms
        - mt
        - my
        - na
        - nb
        - nd
        - ne
        - ng
        - nl
        - nn
        - 'no'
        - nr
        - nv
        - ny
        - oc
        - oj
        - om
        - or
        - os
        - pa
        - pi
        - pl
        - ps
        - pt
        - qu
        - rm
        - rn
        - ro
        - ru
        - rw
        - sa
        - sc
        - sd
        - se
        - sg
        - si
        - sk
        - sl
        - sm
        - sn
        - so
        - sq
        - sr
        - ss
        - st
        - su
        - sv
        - sw
        - ta
        - te
        - tg
        - th
        - ti
        - tk
        - tl
        - tn
        - to
        - tr
        - ts
        - tt
        - tw
        - ty
        - ug
        - uk
        - ur
        - uz
        - ve
        - vi
        - vo
        - wa
        - wo
        - xh
        - yi
        - yue
        - yo
        - za
        - zh
        - zu
      title: Language4
    Operator:
      type: string
      enum:
        - eq
        - neq
        - gt
        - gte
        - lt
        - lte
      title: Operator
    Type5:
      type: string
      enum:
        - string
        - number
        - integer
        - boolean
        - array
        - object
      title: Type5
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````