v1

latestOpenAPI 3.0.12026-07-226992320.0 KB
Integration Tools

Update Tool

Partially updates an existing tool by toolId. Only fields provided in the request body are updated — omitted fields remain unchanged. Returns the updated tool record.

patch/v1/integrations/{integrationId}/tools/{toolId}

Path parameters

integrationIdstring required

Unique identifier of the integration to which the tool belongs.

toolIdstring required

Unique identifier of the tool to update.

Request body

namestring

Replacement tool name. Must be snake_case and action-oriented. AI agents use this name to identify and select the correct tool when deciding which operation to invoke. Must remain unique within the integration. Omit to leave the existing name unchanged.

descriptionstring

Replacement description of what this tool does and when an agent should invoke it. Agents rely on this to match a task to the correct tool — be specific about the action, the resource it operates on, and required inputs. Omit to leave the existing description unchanged.

accessType'local' | 'community'

Visibility scope of this tool. 'local' means the tool is private to your account and only accessible within your integrations. 'community' means the tool is shared and discoverable by other accounts. Omit to leave the existing scope unchanged. Corresponds to the 'scope' field returned in IntegrationToolResponse.

method'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'

Replacement HTTP method for the underlying API call. GET retrieves a resource without side effects. POST creates a new resource. PUT fully replaces an existing resource. PATCH partially updates an existing resource. DELETE removes a resource. Omit to leave the existing method unchanged.

endpointstring

Replacement full URL of the API endpoint this tool calls. Supports {{variable}} placeholders for path segments the agent resolves at runtime. Updating this field automatically re-extracts all {{variable}} placeholders and refreshes the tool's variable list. Omit to leave the existing endpoint unchanged.

bodyParamsobject

Replacement request body payload, as a JSON object. Values support {{variable}} placeholders the agent resolves at runtime. Pass a non-null map to overwrite the entire existing body. To remove the body entirely, pass an empty map {}. Omit this field (leave it null) to leave the existing body unchanged. Applicable only for POST, PUT, and PATCH tools — ignored for GET and DELETE. Updating this field triggers automatic re-extraction of {{variable}} placeholders.

Example request

{
  "name": "get_customer_with_orders",
  "description": "Fetches a Shopify customer including their recent orders. Use when full customer context including purchase history is needed.",
  "accessType": "local",
  "method": "GET",
  "endpoint": "https://my-store.myshopify.com/admin/api/2024-01/customers/{{customerId}}/orders.json",
  "headers": [
    {
      "key": "Content-Type",
      "value": "application/json"
    }
  ],
  "queryParams": [
    {
      "key": "status",
      "value": "{{status}}"
    }
  ],
  "bodyParams": {
    "first_name": "{{firstName}}",
    "email": "{{email}}"
  }
}

Response

OK

toolIdstring

Unique identifier for this tool. Use this value as toolId when executing, updating, or deleting this tool.

integrationIdstring

Unique identifier of the integration this tool belongs to. Use this value as integrationId when making requests scoped to the parent integration.

namestring

Action-oriented name for this tool that identifies the operation it performs. AI agents use this name to match a task to the correct tool. Follows snake_case convention (e.g., 'get_customer', 'create_order').

descriptionstring

Explanation of what this tool does and when an AI agent should invoke it. Agents rely on this description to decide whether this tool matches the current task. A good description names the action, the resource it operates on, and required inputs.

method'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'

HTTP method used when invoking this tool's endpoint. GET retrieves a resource without side effects. POST creates a new resource. PUT fully replaces an existing resource. PATCH partially updates an existing resource. DELETE removes a resource.

urlstring

Full URL of the API endpoint this tool calls, including any {{variable}} placeholders that the agent resolves at runtime using the declared parameters. Path segments wrapped in {{}} (e.g., {{orderId}}) are substituted before the request is sent.

scope'local' | 'community'

Visibility scope of this tool. 'local' means the tool is private to your account and only accessible within your integrations. 'community' means the tool is shared and discoverable by other users.

headersJsonNode

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

queryParamsJsonNode

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

bodyParamsJsonNode

Dynamic key-value pairs that were passed to the agent at call start for personalisation. Keys correspond to variable names defined in the agent's configuration (e.g., 'customer_name', 'account_id'). Null or empty if no dynamic variables were provided when the call was created.

createdAtstring date-time

UTC timestamp when this tool was created, in ISO 8601 format. Use for auditing or determining how long the tool has been active.

updatedAtstring date-time

UTC timestamp when this tool was last modified, in ISO 8601 format. Use to detect configuration changes or invalidate cached tool definitions.

Example response

{
  "toolId": "tool_X9pLm2Wq8Rt3",
  "integrationId": "intg_AuUKK371Spr5",
  "name": "get_order_details",
  "description": "Fetches order details from Shopify by order ID. Call this tool when you need to retrieve order status, line items, or shipping info.",
  "method": "GET",
  "url": "https://my-store.myshopify.com/admin/api/2024-01/orders/{{orderId}}.json",
  "scope": "local",
  "headers": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "queryParams": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "bodyParams": {
    "customer_name": "Michael",
    "account_id": "ACC-001"
  },
  "createdAt": "2024-04-20T10:00:00.000Z",
  "updatedAt": "2024-04-21T08:30:00.000Z"
}