---
title: "Update Tool"
method: PATCH
path: "/v1/integrations/{integrationId}/tools/{toolId}"
tags: ["Integration Tools"]
---

# Update Tool

`PATCH /v1/integrations/{integrationId}/tools/{toolId}`

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.

## Path parameters

- `integrationId` string, required
- `toolId` string, required

## Request body

- UpdateIntegrationToolRequest — Request body to partially update an existing integration tool. Only fields included in the request are updated — omitted fields remain unchanged. Updating endpoint, queryParams, or bodyParams automatically re-extracts all {{variable}} placeholders and refreshes the tool's variable list.
  - `name` string — 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.
  - `description` string — 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.
  - `endpoint` string — 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.
  - `headers` HeaderEntry[] — Replacement list of static HTTP headers sent on every request by this tool. Tool-level headers are merged with integration and auth-level headers; tool-level values take precedence on key conflicts. Pass a non-empty list to overwrite all existing headers. Pass an empty list [] to remove all tool-level headers. Omit this field entirely to leave existing headers unchanged.
    - `key` string, required — HTTP header name exactly as expected by the target API.
    - `value` string, required — Static value for this header sent with every request. Must be a fixed string — use queryParams or bodyParams for dynamic values.
  - `queryParams` QueryParam[] — Replacement list of query string parameters appended to the URL on every invocation. Values support {{variable}} placeholders the agent resolves at runtime. Path variables embedded in the endpoint URL using {{variable}} syntax do not need to be listed here. Pass a non-empty list to overwrite all existing query params. Pass an empty list [] to remove all query params. Omit this field entirely to leave existing query params unchanged. Updating this field triggers automatic re-extraction of {{variable}} placeholders.
    - `key` string, required — Query parameter name as expected by the target API.
    - `value` string — Value for this query parameter. Use a {{variable}} placeholder for values the agent supplies at runtime. Static string values are also accepted for fixed parameters.
  - `bodyParams` object — 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.

## Response `200`

OK

- IntegrationToolResponse — Represents a single callable API tool registered under an integration. Each tool maps to one specific API operation (e.g., 'Get Order', 'Create Customer') and carries its full invocation config: HTTP method, endpoint URL, headers, and parameters. AI agents use this response to understand what the tool does and how to invoke it.
  - `toolId` string — Unique identifier for this tool. Use this value as toolId when executing, updating, or deleting this tool.
  - `integrationId` string — Unique identifier of the integration this tool belongs to. Use this value as integrationId when making requests scoped to the parent integration.
  - `name` string — 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').
  - `description` string — 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.
  - `url` string — 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.
  - `headers` JsonNode — 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.
  - `queryParams` JsonNode — 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.
  - `bodyParams` JsonNode — 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.
  - `createdAt` string, 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.
  - `updatedAt` string, date-time — UTC timestamp when this tool was last modified, in ISO 8601 format. Use to detect configuration changes or invalidate cached tool definitions.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/sigmamind/apis/sigmamind-apis.md) · [All operations](https://skmtc.net/sigmamind/apis/sigmamind-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sigmamind/sigmamind-apis/versions/d00f52b5123f/schema)
