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

# update tool

> Update an existing tool



## OpenAPI

````yaml https://api.anam.ai/swagger.json put /v1/tools/{id}
openapi: 3.1.0
info:
  title: Anam AI API
  version: '1.0'
servers:
  - url: https://api.anam.ai
    description: Anam API
security:
  - BearerAuth: []
tags:
  - name: Sessions
  - name: Avatar Videos
  - name: Meetings
  - name: Personas
  - name: Avatars
  - name: Voices
  - name: Pronunciation Dictionaries
  - name: LLMs
  - name: Knowledge
  - name: Tools
  - name: Share Links
  - name: Engine
paths:
  /v1/tools/{id}:
    put:
      tags:
        - Tools
      summary: update tool
      description: Update an existing tool
      operationId: updateTool
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            format: uuid
          description: Tool ID
          example: 00000000-0000-0000-0000-000000000000
      requestBody:
        description: >-
          Fields to change; fields left out keep their values. `config` replaces
          the whole stored config. System tools can't be changed, and a tool
          can't become `SYSTEM`.
        required: true
        content:
          application/json:
            examples:
              default:
                $ref: '#/components/examples/ToolUpdate'
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                  description: >-
                    New name for the tool, saved as on create (characters other
                    than letters, digits, `_`, `.` and `-` become `_`). A stored
                    `config.name` that matches the old name is renamed too;
                    sessions use the tool's own `name`.
                  example: search_products
                description:
                  type: string
                  minLength: 1
                  maxLength: 1024
                  description: Updated description of what the tool does
                  example: Search the product catalog
                type:
                  type: string
                  enum:
                    - CLIENT
                    - SERVER_RAG
                    - SERVER_WEBHOOK
                  description: Updated tool type
                disableInterruptions:
                  type: boolean
                  description: >-
                    The user can't interrupt the persona while this tool runs.
                    Defaults to false.
                  default: false
                  example: false
                expectedUpdatedAt:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: >-
                    The tool's `updatedAt` from your last read, or null if it
                    was null. When the tool has changed since, the update is
                    refused with 409 instead of overwriting that change.
                config:
                  $ref: '#/components/schemas/ToolConfigInput'
      responses:
        '200':
          description: Successfully updated tool
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tool'
              examples:
                default:
                  $ref: '#/components/examples/ToolResponse'
        '400':
          description: Bad request - Invalid tool data
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: >-
            Forbidden - System tools cannot be modified, or the API key lacks
            the required permission
        '404':
          description: Tool not found
        '409':
          description: >-
            The tool changed since `expectedUpdatedAt`; read it again and
            reapply the change
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - code
                properties:
                  error:
                    type: string
                    example: >-
                      The tool changed since you read it. Read it again and
                      reapply your change.
                  code:
                    type: string
                    enum:
                      - TOOL_CHANGED
                    description: Why the update was refused.
        '500':
          description: Server error
        '503':
          description: >-
            The API key could not be checked because of a temporary server
            problem. The key may be valid; retry after `Retry-After` seconds.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
components:
  examples:
    ToolUpdate:
      summary: Rename a tool
      value:
        name: open_scheduler
    ToolResponse:
      summary: A single tool definition
      value:
        id: 00000000-0000-0000-0000-000000000000
        name: open_calendar
        description: Open the calendar UI in the client app.
        type: CLIENT
        config:
          parameters:
            type: object
            properties:
              date:
                type: string
                description: Date to jump to, in YYYY-MM-DD format.
        createdAt: '2026-04-20T10:00:00.000Z'
        updatedAt: null
        usageCount: 0
  schemas:
    ToolConfigInput:
      description: >-
        Settings in the shape for the tool's `type`; fields of other shapes are
        stored but not used. `null` saves an empty config.
      anyOf:
        - title: CLIENT
          type: object
          description: For `CLIENT`, the client SDK receives the call as an event.
          properties:
            parameters:
              type: object
              description: JSON Schema of the arguments the model passes to the client.
            awaitResult:
              type: boolean
              description: Wait for the client to send a result back. Defaults to false.
            toolTimeoutSeconds:
              type: number
              minimum: 1
              maximum: 600
              description: >-
                Seconds to wait for the result when `awaitResult` is true.
                Defaults to 10.
        - title: SERVER_RAG
          type: object
          description: >-
            For `SERVER_RAG`. The model passes only a search query; these
            settings are fixed, and omitted or null ones use the defaults.
          properties:
            documentFolderIds:
              type: array
              items:
                type: string
                format: uuid
              description: Knowledge folder IDs to search.
              example:
                - 67d27a9f-0ce1-4432-848b-8ab2b97f024b
            topK:
              type:
                - integer
                - 'null'
              minimum: 1
              maximum: 100
              description: Most matching chunks to retrieve.
              example: 5
            minScore:
              type:
                - number
                - 'null'
              minimum: 0
              maximum: 1
              description: Lowest relevance score a chunk needs. Zero is valid.
              example: 0.5
            maxContextTokens:
              type:
                - integer
                - 'null'
              minimum: 1
              maximum: 200000
              description: >-
                Token budget for retrieved text, excluding metadata and prompt
                formatting.
              example: 4000
            neighborChunks:
              type:
                - integer
                - 'null'
              minimum: 0
              maximum: 10
              description: >-
                Chunks to add after each match, plus the one before it, for
                context. 0 (the default) returns matches only. On update,
                omitting it keeps the stored value and null sets 0.
              example: 0
        - title: SERVER_WEBHOOK
          type: object
          description: >-
            For `SERVER_WEBHOOK`. The engine calls `url` when the model decides
            to.
          required:
            - url
          properties:
            url:
              type: string
              format: uri
              description: Public HTTPS URL to call.
              example: https://api.example.com/webhook
            method:
              type: string
              enum:
                - GET
                - POST
                - PUT
                - DELETE
                - PATCH
              default: POST
              description: HTTP method.
            headers:
              type: object
              additionalProperties:
                type: string
              description: Headers sent with each request, such as `Authorization`.
            parameters:
              type: object
              description: >-
                JSON Schema (`type` `object` with `properties`) of the JSON body
                the model fills in; each property's `description` tells it what
                to send.
            queryParameters:
              type: object
              description: JSON Schema of the query string values the model fills in.
            awaitResponse:
              type: boolean
              default: true
              description: >-
                Wait for the response and give it to the model. Defaults to
                true.
            bodyTemplate:
              type: string
              description: >-
                Stored but not sent. The body is the JSON of the values the
                model fills in for `parameters`.
        - type: 'null'
    Tool:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the tool
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          description: Name of the tool
          example: search_knowledge_base
        description:
          type: string
          description: Description of what the tool does
          example: Search the knowledge base for product information
        type:
          type: string
          enum:
            - CLIENT
            - SERVER_RAG
            - SERVER_WEBHOOK
            - SYSTEM
          description: Type of tool
        config:
          type: object
          description: Type-specific configuration
        disableInterruptions:
          type: boolean
          description: When true, interruptions are disabled while this tool is executing
          default: false
        createdAt:
          type: string
          format: date-time
          description: When the tool was created
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: When the tool was last updated
        usageCount:
          type: integer
          description: Number of the organization's live personas using this tool
    ServiceUnavailableError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          example: Service temporarily unavailable
        message:
          type: string
          example: We could not check your API key. Please retry shortly.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.