Skip to main content
PUT
/
user
/
tools
/
{id}
Update mid call tool
curl --request PUT \
  --url https://app.autocalls.ai/api/user/tools/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "<string>",
  "description": "<string>",
  "endpoint": "<string>",
  "method": "<string>",
  "timeout": 123,
  "headers": [
    {
      "name": "<string>",
      "value": "<string>"
    }
  ],
  "schema": [
    {
      "name": "<string>",
      "type": "<string>",
      "description": "<string>"
    }
  ]
}'
{
  "message": "Tool updated successfully",
  "data": {
    "id": 1,
    "name": "update_customer_info",
    "description": "Use this tool to update customer information in the system.",
    "endpoint": "https://api.yourcompany.com/customers/update",
    "method": "POST",
    "timeout": 15,
    "headers": [
      {
        "name": "Content-Type",
        "value": "application/json"
      }
    ],
    "schema": [
      {
        "name": "customer_name",
        "type": "string",
        "description": "Full name of the customer"
      },
      {
        "name": "customer_age",
        "type": "number",
        "description": "Age of the customer"
      },
      {
        "name": "newsletter_subscription",
        "type": "boolean",
        "description": "Whether customer wants to subscribe to newsletter"
      }
    ],
    "created_at": "2025-10-10T12:00:00.000000Z",
    "updated_at": "2025-10-10T14:30:00.000000Z"
  }
}
This endpoint allows you to update an existing mid call tool. All fields are optional - only provide the fields you want to update.

Path Parameters

id
integer
required
The unique identifier of the tool to update

Body Parameters

name
string
Tool name - must contain only lowercase letters and underscores, and start with a letter
description
string
Detailed explanation of when and how the AI should use this tool (max 255 characters)
endpoint
string
Valid URL of the API endpoint to call
method
string
HTTP method: GET, POST, PUT, PATCH, or DELETE
timeout
integer
Request timeout in seconds (1-30)
headers
array
HTTP headers to send with the request (replaces existing headers)
schema
array
Parameters schema (replaces existing schema)

Response fields

message
string
Success message
data
object
The updated tool object with all current values
{
  "message": "Tool updated successfully",
  "data": {
    "id": 1,
    "name": "update_customer_info",
    "description": "Use this tool to update customer information in the system.",
    "endpoint": "https://api.yourcompany.com/customers/update",
    "method": "POST",
    "timeout": 15,
    "headers": [
      {
        "name": "Content-Type",
        "value": "application/json"
      }
    ],
    "schema": [
      {
        "name": "customer_name",
        "type": "string",
        "description": "Full name of the customer"
      },
      {
        "name": "customer_age",
        "type": "number",
        "description": "Age of the customer"
      },
      {
        "name": "newsletter_subscription",
        "type": "boolean",
        "description": "Whether customer wants to subscribe to newsletter"
      }
    ],
    "created_at": "2025-10-10T12:00:00.000000Z",
    "updated_at": "2025-10-10T14:30:00.000000Z"
  }
}

Managing Tool Assignments

To attach or detach this tool from assistants, use the Assistant API:
  • Create Assistant - Use the tool_ids parameter to attach tools when creating an assistant
  • Update Assistant - Use the tool_ids parameter to manage which tools are assigned to an assistant
I